我想将对特定 ip 的所有请求重定向到 localhost (127.0.0.1)。我需要它,因为我有一个服务器的本地副本并且想要测试一些东西
我怎样才能写一个 iptables 规则来做到这一点?
谢谢
您的意思是“我希望从机器 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
iptables -t mangle -A PREROUTING -p tcp ''otherconditions'' -j TPROXY --on-port ''dst''
引用手册页:此目标仅在 mangle 表、PREROUTING 链和仅从此链调用的用户定义链中有效。它将数据包重定向到本地套接字,而不以任何方式更改数据包头。
我知道这是一个非常古老的线程......但仍然没有答案。所需的主要更改是附加一个 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