【问题标题】: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 中可行吗?

谢谢

【问题讨论】:

  • 你问的是所谓的NAT(网络地址转换)。

标签: 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 命令编写类似的规则。

【讨论】:

  • 感谢您的回答。我尝试搜索一些相关帖子并找到了这个apple.stackexchange.com/questions/223944/…,但那里也没有明确的答案:(
  • 不幸的是,我没有 Mac 来测试解决方案,但这里是 manual,您可以在其中找到 nat 命令。你也可以查看this的答案。
猜你喜欢
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
  • 2021-06-24
  • 2015-02-12
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
相关资源
最近更新 更多