【问题标题】:How to redirect an outgoing traffic to another address?如何将传出流量重定向到另一个地址?
【发布时间】:2016-12-04 08:40:23
【问题描述】:
我想将特定的传出 TCP 流量重定向到另一个地址。
假设我有一个应用程序尝试与服务器 aaa.bbb.ccc.ddd:99999 建立连接。
我要做的是将应用程序的传出流量重定向到另一个地址(例如,ddd.eee.fff.ggg:88888)而不接触应用程序。这在 Windows 或 Mac OS X 中可行吗?
谢谢
【问题讨论】:
标签:
macos
redirect
networking
tcp
proxy
【解决方案1】:
这里有两种情况:
首先,如果您有 fqdn,您只需通过本地 hosts 文件将其解析为不同的 ip。
其次,如果应用程序试图访问特定的 IP 地址,这并不是那么简单,我会提到一种在系统上执行此操作的方法,并且无需更改系统上的任何内容。
在系统内你必须修改本地防火墙。我将给你写一个来自iptables 的示例命令,它可以在 linux 系统上运行,但你可以使用 MacOS 软件(pf 看到最后的编辑) 和 Windows 已经安装。
我在下面做的是NAT我想改变的IP,到一个新的IP。
iptables -t nat -A OUTPUT -p tcp -d IP_YOU_WANT_REWRITE --dport PORT -j DNAT --to-destination NEW_IP:NEW_PORT
如果您现在根本不想弄乱主机,您可以在网关/路由器上应用类似的 NAT 规则,您只需在路由器配置中将要更改的 IP NAT 为新的 IP,然后您的主机透明地到达新主机。
编辑:据我所知,osx 等效于 iptables 是 pf,因此您需要使用 nat 命令编写类似的规则。
【讨论】:
-
-
不幸的是,我没有 Mac 来测试解决方案,但这里是 manual,您可以在其中找到 nat 命令。你也可以查看this的答案。