我的路由器是这样工作的
internet -> 1.2.3.4 eth1 -> Router <- eth0 10.0.0.1 - LAN
并希望将端口 80 从 1.2.3.4 转发到 10.0.0.10
-A FORWARD -d 10.0.0.10 -p tcp -m tcp --dport 80 -j ACCEPT
-A PREROUTING -d 1.2.3.4 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.10:80
这在互联网上运行良好,但在 LAN 网络(例如 IP 10.0.0.2)上却不行,我该如何实现?(我不想为此使用 DNS)
PS:我需要从两个网络访问 1.2.3.4:80
答案1
您需要确保所有流量都通过路由器返回(以便它可以重写它)。
POSTROUTING 规则可以实现这一点。(参见:http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-10.html)
$ iptables -t nat -A POSTROUTING -d 10.0.0.10 -s 10.0.0.0/24 \
-p tcp --dport 80 -j SNAT --to 10.0.0.1`