3.如何配置连线到 NAT 主机某个对外 Port 时,可以转送到内部某主机?

一般语法配置为:

iptables -A PREROUTING -t nat -d 210.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80

这边是假设该 NAT 主机本身对外的 ip 为 210.1.1.1,设定外面连结存取到该 ip 的 port 80 时,将封包转送到 192.168.1.1 的 port 80 上。

不过该配置常谈到的问题就是,也许有人在 192.168.1.0/24 该内部网段连结 210.1.1.1 的 port 80 时,却无法浏览实际 192.168.1.1:80 该服务项目。

该问题牵涉到 icmp 重导的问题,而且目前 netfilter iptables 发展已经不会有该问题。若是还有问题的话,可以考虑如下配置:

iptables -t nat -A POSTROUTING -d 192.168.1.1 -p tcp --dport 80 -s 192.168.1.0/24 -j SNAT --to 192.168.1.254

其中 192.168.1.254 也就是 NAT 主机对内的 ip,这样可以让该内部的192.168.1.1 看到的存取来源为 192.168.1.254,如此可以解决该问题。


相关内容