Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

transproxy 構築メモ

More than 1 year has passed since last update.

前回の構築のリプレース。

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 したいという気持ちは理解した気がする。

どうしようかな。

kwi
iij
日本のインターネットを支えてきたIIJ。現在もその先もイニシアティブをとり続けます。
https://www.iij.ad.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away