![为什么 ICMP 路由不能与 iptables nat 路由一起使用](https://linux22.com/image/504138/%E4%B8%BA%E4%BB%80%E4%B9%88%20ICMP%20%E8%B7%AF%E7%94%B1%E4%B8%8D%E8%83%BD%E4%B8%8E%20iptables%20nat%20%E8%B7%AF%E7%94%B1%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8.png)
我在 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
。