前回の構築のリプレース。
Raspbian Buster Lite を balenaEtcher で書き込む
root に ssh
という空ファイルを置く
Downstream 側用に USB ethernet dongle を追加する
apt-get dist-upgrade -y
apt-get install
しておく
-
firmware-linux-free
: USB ethernet dongle のため -
iptables-persistent
: nat rule を保存したい -
dnsmasq
: Downstream 向け -
screen
: 作業用
raspbian では最終的には dhcpcd の制御下にあるので、dhcpcd で eth1 を static 割り当てにする
dhcpcd.conf
interface eth1
static ip_address=192.168.0.2/24
static routers=192.168.0.2
static domain_name_servers=192.168.0.2
ip routing を有効にする
/etc/sysctl.d/98-nat.conf
net.ipv4.ip_forward=1
masquerade のルールを入れる。
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
/etc/init.d/iptables-persistent save
で保存しておく。
再起動してここまでの設定が反映されることを確認する。
golang-go
をインストールして、github.com/wadahiro/go-transproxy
をビルドする
systemd unit を書いて enable する
[Unit]
Description=transproxy
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Environment=http_proxy=http://proxy.server:8080
Environment=https_proxy=http://proxy.server:8080
ExecStart=/home/pi/go/bin/transproxy -private-dns 192.168.0.2 -public-dns 8.8.8.8
KillMode=process
Restart=on-failure
だめだった。IPv6->IPv4 fallback が待っていられない。DNS も透過 proxy したいという気持ちは理解した気がする。
どうしようかな。