如何编辑hosts文件以连接到给定ip的localhost端口?

时间:2014-03-27 04:51:13

标签: linux ports

我需要欺骗我的电脑,以便在连接到本地端口时连接到外部IP:

例如,10.12.43.5:9000转到127.0.0.1:9000   但是对10.12.43.5的所有其他请求将转到10.12.43.5。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用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

您可以使用以下步骤进行测试。

  1. 在本地主机(nc -v -l 127.0.0.1 9002)的端口9002上以侦听模式启动Netcat。这个过程只会停留在那里,等待数据包到达。
  2. 应用上面的iptables规则。
  3. 执行另一个Netcat,这次是针对远程主机(nc -v 10.11.12.13 9001)。这个过程只会坐在那里,等待标准输入显示的内容。
  4. 无论你现在输入什么,都应该在听Netcat上看到。

    如果你有现有的netfilter / iptables过滤,这很可能会失败。答案只是一个如何做这样的事情的例子,将它集成到你可能已经拥有的任何防火墙规则中都超出了答案的范围。