我的本地机器中有 2 种代理:stunnel 和 TOR-VPN。
- stunnel 正在侦听端口 6666
- TOR-VPN 正在监听端口 9040
我想让网络流量先去stunnel,stunnel的输出流量去tor-vpn。这需要双重重定向。可以用 iptables 来做吗?我的意思是使用“table nat chain OUTPUT”。
因为据我所知,“table nat chain OUTPUT”不能被调用两次。
网络流量 = 浏览器监听 127.0.0.1:6666
这些是我的规则:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 6666
iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner bob -m tcp -j REDIRECT --to-ports 9040
iptables -t nat -A OUTPUT -p udp -m owner --uid-owner bob -m udp --dport 53 -j REDIRECT --to-ports 53
iptables -t filter -A OUTPUT -p tcp --dport 6666 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m owner --uid-owner bob -m tcp --dport 9040 -j ACCEPT
iptables -t filter -A OUTPUT -p udp -m owner --uid-owner bob -m udp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -m owner --uid-owner bob -j DROP
上述规则使 stunnel 独立于 TOR/VPN 工作。我的意思是当浏览器设置了代理时,没有流量会通过 TOR/VPN,但是如果我在浏览器中关闭代理,所有流量都将通过 TOR/VPN。
现在我想让浏览器打开代理,所有网络流量首先进入 stunnel,但传出 stunnel 流量(传出环回流量)重定向到 TOR/VPN(127.0.0.1:9040)
可能吗 ?我怎样才能做到这一点?不知何故,我的意思是系统内部的双重重定向。
所有表的策略是 ACCEPT