Linux 如何编辑主机文件以连接到给定ip的本地主机端口?

Linux 如何编辑主机文件以连接到给定ip的本地主机端口?,linux,ports,Linux,Ports,我需要欺骗我的计算机,使其在连接到本地端口时认为它正在连接到外部ip: 例如,10.12.43.5:9000变为127.0.0.1:9000 但10.12.43.5的所有其他请求将转到10.12.43.5 如何做到这一点?您可以使用(也称为iptables)来做到这一点 要损坏发送到另一台主机的数据包,请使用netfilter/iptables的nat表 下面的示例将获取发往主机10.11.12.13上TCP端口9001的任何数据包,并将它们转向本地主机中的端口9002。请注意,这仅适用于将数据

我需要欺骗我的计算机,使其在连接到本地端口时认为它正在连接到外部ip:

例如,10.12.43.5:9000变为127.0.0.1:9000 但10.12.43.5的所有其他请求将转到10.12.43.5

如何做到这一点?

您可以使用(也称为iptables)来做到这一点

要损坏发送到另一台主机的数据包,请使用netfilter/iptables的
nat

下面的示例将获取发往主机10.11.12.13上TCP端口9001的任何数据包,并将它们转向本地主机中的端口9002。请注意,这仅适用于将数据包重定向回本地主机(由于nat表中的
输出链的性质)

您可以使用以下步骤来测试这一点

  • 在本地主机的端口9002上以侦听模式启动(
    nc-v-l 127.0.0.1 9002
    )。这个过程只是停留在那里,等待数据包到达
  • 应用上面的iptables规则
  • 执行另一个Netcat,这次是针对远程主机(
    nc-v 10.11.12.13 9001
    )。这个过程将只是坐在那里,等待标准输入中出现一些东西
  • 无论您现在键入什么,都应该可以在正在收听的Netcat上看到


    如果您有现有的netfilter/iptables筛选功能,则很可能会失败。答案只是一个如何做这件事的示例,将其集成到您可能已经存在的任何防火墙规则中超出了此处答案的范围。

    使用代理。例如:像nginx这样的web服务器。您能提供一个示例吗?我看了一下,但我不知道我的情况下该怎么办很酷。这正是我需要的。我能在mac电脑上做同样的事情吗?我想任何事情都是可能的,因为它需要更多的痛苦。你可能必须禁用苹果自己的防火墙(不推荐,说真的)。由于Darwin上的一个不错的奖励包过滤器不支持传出接口上的重定向,因此一些
    路由到
    magic必须伴随
    rdr
    技巧。
    iptables -t nat -A OUTPUT -p tcp --dport 9001 -d 10.11.12.13 -j DNAT --to-destination 127.0.0.1:9002