我需要将特定的传出连接(从我的系统上的 任何 Web客户端)重定向到特定的IP。是的,可以通过在/etc/hosts
文件中添加此行来完成:
123.456.789.012 www.mydomain.com
是否可以在没有编辑/etc/hosts
的情况下进行重定向?实际上,我暂时需要这种重定向。此外,我无法修改我的系统上的任何配置文件,所以我应该只通过命令行中的一些工具进行这样的重定向。我已经阅读了tsocks
,但它可以仅从特定应用程序而不是从任何应用程序将传出连接重定向到SOCKS服务器。
那么,有可能吗?
答案 0 :(得分:2)
好的,我找到了解决方案。我们可以使用iptables
。此规则通过80
端口将所有传出请求重定向到0.0.0.0:3010
:
$ sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 0.0.0.0:3010
要删除此规则,只需将-A
替换为-D
:
$ sudo iptables -t nat -D OUTPUT -p tcp --dport 80 -j DNAT --to-destination 0.0.0.0:3010
如果我们想通过80
端口仅重定向特定请求,我们可以使用此命令:
$ sudo iptables -t nat -A OUTPUT -p tcp -d google.com --dport 80 -j DNAT --to-destination 0.0.0.0:3010
在这种情况下,只有google.com
的请求才会被重定向到0.0.0.0:3010
。