为什么 ICMP 路由不能与 iptables nat 路由一起使用

为什么 ICMP 路由不能与 iptables nat 路由一起使用

我在 Ubuntu 服务器上使用 iptables 将公共 IP 路由到私有 IP。我想对所有流量进行 nat,包括 80、443 和 ICMP。

但是,ICMP 似乎没有路由。我对公共 IP 进行了稳定的 ping,即使 NAT 指向虚假 IP,它也从未停止过。

以下是我使用的规则:

iptables -t nat -I PREROUTING -d 206.72.119.76 -j DNAT --to-destination 10.240.5.5  
iptables -t nat -I POSTROUTING  -s 10.240.5.5 -j SNAT --to-source 206.72.119.76

我专门尝试了针对 ICMP 的规则,但没有那么幸运:

iptables -t nat -I PREROUTING -d 206.72.119.76 - icmp --icmp-type echo-request -j DNAT --to-destination 10.240.5.5

有任何想法吗?

答案1

您是否执行过任何 pcapping 来查看 icmp 数据包是否被 NAT 并再次发送出去?也许它们只是被您正在运行的盒子所接受iptables

相关内容