Tim*_*olf 8 routing proxy socks tor
有没有办法重定向所有流量,UDP 和 TCP,通过 SOCKS 代理(Tor)进出 eth1 和 eth2,然后通过 eth0 传递它?
eth0: Internet in - 连接到主路由器,然后是电缆调制解调器
eth1:设置为调制解调器的 USB 以太网端口(我认为这就是我要找的词,对吧?)
eth2:作为 WiFi 热点的 USB WiFi 天线设置
我可以使用 iptables 之类的东西直接通过 Tor 路由,还是需要像 Privoxy 这样的适配器?
首先,您需要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
Run Code Online (Sandbox Code Playgroud)
socks_server=127.0.0.1:8080
Run Code Online (Sandbox Code Playgroud)
这是我们将使用的袜子服务器。
id="$RANDOM"
tun="$(printf 'tun%04x' "$id")"
Run Code Online (Sandbox Code Playgroud)
这些会生成一个随机 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
Run Code Online (Sandbox Code Playgroud)
这些设置隧道接口时tun2socks
会用到。
ip rule add fwmark $id lookup $id
ip route add default via 169.254.1.2 table $id
Run Code Online (Sandbox Code Playgroud)
这些创建了一个具有单个规则的路由表,该规则$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
Run Code Online (Sandbox Code Playgroud)
这些设置防火墙标记$id
进入的任何 TCP 数据包eth1
或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
Run Code Online (Sandbox Code Playgroud)
这将启动 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
Run Code Online (Sandbox Code Playgroud)
这些会拆除我们在设置过程中创建的所有内容。它们只会在badvpn-tun2socks
退出时运行。
归档时间: |
|
查看次数: |
12993 次 |
最近记录: |