我想将特定的传出 TCP 流量重定向到另一个地址。
假设我有一个应用程序尝试建立与服务器的连接aaa.bbb.ccc.ddd:99999。
我想做的是将应用程序的传出流量重定向到另一个地址(例如,ddd.eee.fff.ggg:88888)而不接触应用程序。这在 Windows 或 Mac OS X 中可能吗?
谢谢
这里有两种情况:
首先,如果您有 fqdn,那么您只需通过本地
hosts
文件将其解析为不同的 ip 即可。
其次,如果应用程序试图到达特定的IP地址,那就没那么简单了,我将提到一种在系统上执行此操作的方法,并且无需更改系统上的任何内容。
在系统内您必须修改本地防火墙。我将为您写一个来自
iptables
的示例命令,它适用于 Linux 系统,但您可以使用 MacOS 软件(pf
请参阅最后的编辑) 和 Windows 来应用等效命令。
下面我要做的就是将我想要更改的 IP NAT 更改为新的 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
命令编写类似的规则。
你发布的答案是linux iptables,而不是macos或windows。