我有用于选择性路由的 iptables 设置。在当前配置中,它会检查目标地址是否在特定链中列出,如果没有,则将流量重定向到我的代理端口(在端口 1080 上处于活动状态)。
这适用于以下设置:
iptables -t nat -N PROXY
# Do not redirect
iptables -t nat -A PROXY -d external.proxy.address.1 -j RETURN
iptables -t nat -A proxy -d external.proxy.address.2 -j RETURN
iptables -t nat -A PROXY -d 211.96.0.0/255.240.0.0 -j RETURN
iptables -t nat -A PROXY -d 211.128.0.0/255.128.0.0 -j RETURN
iptables -t nat -A PROXY -d 218.0.0.0/255.128.0.0 -j RETURN
... [and many more address] ...
# Redirect everything else to the proxy listening on port 1080
iptables -t nat -A PROXY -p tcp -j REDIRECT --to-ports 1080
iptables -t nat -I PREROUTING -p tcp -j PROXY
如前所述,这对于 proxy1 来说效果很好,但我尝试以类似的方式将目标 10.0.0.15 的流量重定向到侦听端口 1088 的不同代理 (proxy2)。
我尝试了多种方法来完成此任务,但没有成功。
我尝试过的配置:
iptables -t nat -A PROXY -d 10.0.0.15 -j REDIRECT --to-ports 1088 # didn't do anything
实现这一目标的最佳方法是什么(如果可能的话)