iptables 路由本地网络流量

iptables 路由本地网络流量

我的路由器是这样工作的

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`

相关内容