从 Pvt IP 到 PublicIP 的 NAT

从 Pvt IP 到 PublicIP 的 NAT

我有一台带有 2 个 NIC 的网关机器:eth0一个带有公共 IP,一个eth1带有私有 IP。

eth0有 4 个公共 IP 别名,我想将公共 IP NAT 为私有 IP,并且我使用 DNAT 和 iptables 来执行此操作。

1.1.1.2 -> 10.10.10.2
1.1.1.3 -> 10.10.10.3
1.1.1.4 -> 10.10.10.4

规则

-A PREROUTING -d 1.1.1.2 -p tcp -j DNAT --to-destination 10.10.10.2
-A PREROUTING -d 1.1.1.3 -p tcp -j DNAT --to-destination 10.10.10.3
-A PREROUTING -d 1.1.1.4 -p tcp -j DNAT --to-destination 10.10.10.4

现在我可以通过 DNAT 访问内部 IP,但无法从这个私有 IP 连接到外部网络。

我该如何实现?可以对多个 IPS 进行 SNAT 吗?

答案1

似乎你忘了添加伪装规则。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这是 SNAT 的一种。它将数据包中的源 LAN IP 替换为路由器的外部 IP,这些数据包源自 LAN 机器。因此,外部机器知道该将数据包发送给谁。

答案2

我想这是可以做到的。只需指定-s <int ip>--to-source <ext ip>

iptables -t nat -A POSTROUTING -s 10.10.10.2 -i eth1 -j SNAT --to-source 1.1.1.2

相关内容