我有一台 Windows 机器,它的所有流量都通过 Linux 机器路由,只需更改 Windows 路由即可: Linux 机器的 IP 地址在route add 0.0.0.0 mask 0.0.0.0 192.168.1.48
哪里192.168.1.48
。问题是,我希望流量通过 socks5 代理,我已经知道如何使用它,redsocks
但问题是我不知道如何正确设置iptables
以便一切正常工作。我希望来自 Windows 的流量被“代理”到 socks5 服务器,来自 Linux 本身的流量也是如此。将这些规则添加到 iptables 后,来自 Linux 的流量按预期“代理”,一切正常,但我在 Windows 端丢失了连接。Linux 端启用了 IP 转发。
我所尝试的只是添加这些规则:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
sudo iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDSOCKS
sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDSOCKS
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDSOCKS
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDSOCKS
redsocks 守护进程监听端口 12345