我在网关机器 (192.168.0.1) 上有以下 iptables 规则。我想将端口 192.168.0.1:80 转发到 192.168.0.2:8080。但我需要保留原始源 IP,以便原始服务器可以获取客户端 IP。我有以下规则,但这会更改客户端的源 IP。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:8080
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.2 --dport 8080 -j SNAT --to-source 192.168.0.1
在这种情况下还有其他规则可以使用吗?
答案1
尝试删除包含 SNAT 规则的第二行。该规则是不需要的。
另外,您有多少个网卡? 192.168.0.2 和 192.168.0.1 这两台机器是否在同一个网络上? 如果是这种情况,机器 192.168.0.2 将使用什么路由转发在其 TCP 端口 8080 上接收到的数据包? 它将如何路由此数据包?