iptables将所有请求重定向到localhost

时间:2011-12-20 22:52:56

标签: debian iptables hosts

我想将对特定ip发出的所有请求重定向到localhost(127.0.0.1)。我需要它,因为我有一个服务器的本地副本,想要测试一些东西

如何编写iptables规则来执行此操作?

由于

3 个答案:

答案 0 :(得分:0)

您的意思是“我希望机器A向机器B发出的所有请求都被重定向到机器A”吗?如果是这样,我相信您正在寻找的命令是

sudo iptalbes -t nat -A PREROUTING -d <DESTINATION_IP> -p <PROTOCOL> --dport <DESTINATION_PORT_NUMBER> -j DNAT --to 127.0.0.1

答案 1 :(得分:0)

iptables -t mangle -A PREROUTING -p tcp ''otherconditions'' -j TPROXY --on-port ''dst''

引用联机帮助页:此目标仅在PREROUTING链中的mangle表中有效        和用户定义的链,只能从这个链中调用。它重新        将数据包重新发送到本地套接字而不更改数据包标头        无论如何。

答案 2 :(得分:0)

我知道这是一个很老的线索...但仍然没有答案。所需的主要更改是附加OUTPUT规则而不是PREROUTING规则。

从手册页:

nat:
    This table is consulted when a packet that creates a new connection is encountered.  It consists of three built-ins: PREROUTING (for altering packets as soon as they come in), OUTPUT (for altering locally-generated packets  before  routing),  and  POSTROUTING  (for altering packets as they are about to go out).

所以,这可能是所需的命令:

iptables -t nat -A OUTPUT -p tcp --src <SOURCE PORT TO BE REDIRECTED> --dst 127.0.0.1 --dport 9090 -j REDIRECT --to-ports 9090