SOCKSプロキシ(Tor)を介してeth1とeth2間ですべてのトラフィック(UDPとTCP)をリダイレクトしてからeth0を通過する方法はありますか?
eth0:インターネット入力 - デフォルトのルーターに接続し、ケーブルモデムに接続します。
eth1:モデムに設定されたUSBイーサネットポート(私が探している単語のようですね?)
eth2: WiFi ホットスポットに設定された USB WiFi アンテナ
iptablesのようなものを使ってTorを直接ルーティングできますか、それともPrivoxyのようなアダプタが必要ですか?
答え1
まず、あなたが必要ですtun2socks(通常「badvpn」パッケージの一部)tun2socksはトラフィックをルーティングするための仮想インターフェイスを設定し、トラフィックはターゲットソックスプロキシを介して送信されます。
トンネルを介して特定のトラフィックだけをルーティングしようとしているため、設定は少し面倒です。
このスクリプトしなければならない好きなように:
#!/bin/bash
socks_server=127.0.0.1:8080
id="$RANDOM"
tun="$(printf 'tun%04x' "$id")"
ip tuntap add dev $tun mode tun
ip link set $tun up
ip addr add 169.254.1.1/30 dev $tun
sysctl -w net.ipv4.conf.$tun.forwarding=1
ip rule add fwmark $id lookup $id
ip route add default via 169.254.1.2 table $id
iptables -t mangle -I PREROUTING -i eth1 -p tcp -j MARK --set-mark $id
iptables -t mangle -I PREROUTING -i eth2 -p tcp -j MARK --set-mark $id
badvpn-tun2socks --tundev $tun --netif-ipaddr 169.254.1.2 --netif-netmask 255.255.255.252 --socks-server-addr $socks_server
iptables -t mangle -D PREROUTING -i eth2 -p tcp -j MARK --set-mark $id
iptables -t mangle -D PREROUTING -i eth1 -p tcp -j MARK --set-mark $id
ip route del default via 169.254.1.2 table $id
ip rule del from fwmark $id lookup $id
ip tuntap del dev $tun mode tun
説明する:
socks_server=127.0.0.1:8080
これが私たちが使うソックスサーバーです。
id="$RANDOM"
tun="$(printf 'tun%04x' "$id")"
トンネルに使用されるランダムIDを生成します。システムに異なるトンネルがある可能性があるため、tun0
またはのみ使用できませんtun1
。 99%の場合、これはうまく機能します。しかし、それに応じて調整してください。
ip tuntap add dev $tun mode tun
ip link set $tun up
ip addr add 169.254.1.1/30 dev $tun
sysctl -w net.ipv4.conf.$tun.forwarding=1
これらの設定はtun2socks
トンネルインターフェイスに使用されます。
ip rule add fwmark $id lookup $id
ip route add default via 169.254.1.2 table $id
$id
トンネルを介してファイアウォールタグ(次に説明)を含むすべてのトラフィックを送信する単一のルールを使用してルーティングテーブルを作成します。
iptables -t mangle -I PREROUTING -i eth1 -p tcp -j MARK --set-mark $id
iptables -t mangle -I PREROUTING -i eth2 -p tcp -j MARK --set-mark $id
$id
これはeth1
着信または発信TCPパケットにファイアウォール表示を設定しますeth2
。私たちはTCPだけを一致させたいです。 SocksはUDPまたはICMPを処理できません(tun2socksにはUDPを渡す方法がありますが、より複雑なので省略します)。
badvpn-tun2socks --tundev $tun --netif-ipaddr 169.254.1.2 --netif-netmask 255.255.255.252 --socks-server-addr $socks_server
これで tun2socks が起動します。終了するまで前景に配置します。
iptables -t mangle -D PREROUTING -i eth2 -p tcp -j MARK --set-mark $id
iptables -t mangle -D PREROUTING -i eth1 -p tcp -j MARK --set-mark $id
ip route del default via 169.254.1.2 table $id
ip rule del from fwmark $id lookup $id
ip tuntap del dev $tun mode tun
インストール中に作成したすべてのエントリが削除されます。終了時にのみ実行されますbadvpn-tun2socks
。
答え2
$ badvpn-tun2socks --tundev $tun --netif-ipaddr 169.254.1.2 \
--netif-netmask 255.255.255.252 --socks-server-addr $socks_server \
--udpgw-transparent-dns
メモ:--udpgw-transparent-dns
DNS要求を追加する必要があります。