Closed. This question is off-topic. It is not currently accepting answers. Learn more
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
5年前关闭。
我需要欺骗我的计算机,使其认为它连接到外部ip,同时连接到本地端口:
例如,10.12.43.5:9000变为127.0.0.1:9000
但所有其他对10.12.43.5的请求将转到10.12.43.5。
怎么能做到?

最佳答案

您可以使用netfilter(也称为iptables)来实现这一点。
要管理发往另一台主机的数据包,请使用netfilter/iptables的nat表。
下面的示例将以主机10.11.12.13上任何发往TCP端口9001的数据包为例,将它们转到本地主机上的端口9002。注意,这只适用于将数据包重定向回本地主机(由于nat表中的OUTPUT链的性质)。

iptables -t nat -A OUTPUT -p tcp --dport 9001 -d 10.11.12.13 -j DNAT --to-destination 127.0.0.1:9002

您可以通过以下步骤进行测试。
在本地主机(nc -v -l 127.0.0.1 9002)的9002端口上以侦听模式启动Netcat。这个过程将停留在那里,等待数据包到达。
应用上面的iptables规则。
执行另一个Netcat,这次是针对远程主机(nc -v 10.11.12.13 9001)。这个过程将只是坐在那里,等待标准输入显示一些内容。
无论你现在输入什么,都应该在正在收听的Netcat上看到。
如果您现有的NETFIL/IPTABLE过滤,这很可能失败。答案仅仅是一个如何做这样一件事的例子,将它集成到任何你可能已经存在的防火墙规则中都超出了这里的答案范围。

关于linux - 如何编辑主机文件以连接到给定IP的本地主机端口? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22678558/

10-15 00:27
查看更多