一对一虚拟IP转换

一对一虚拟IP转换

我有一堆 WAN IP,我想将其转换为一堆 LAN IP,但只打开一些端口。我想要转换的 WAN IP 都不是路由器用于连接到互联网的主要 WAN IP。

例如,我想将 WAN IP 216.58.216.238 转换为 LAN IP 10.10.10.10 并打开端口 80 和 443

最初ifconfig显示以下界面:br0, eth0, eth1, eth2, lo, vlan1, vlan2

vlan2已分配给我的外部 IP 地址。

我该如何进行翻译?

这是我到目前为止所尝试过的:

ifconfig eth0:1 216.58.216.238 netmask 255.255.255.0 up
iptables -t nat -A PREROUTING -i eth0 -d 216.58.216.238 -p tcp --dport 80 -j DNAT --to-destination 10.10.10.10:80
iptables -t nat -I POSTROUTING -s 10.10.10.10 -j SNAT --to 216.58.216.238

但这似乎不起作用。我无法使用端口 216.58.216.238:80 从外部网络访问 10.10.10.10:80 上的服务。

重新启动后运行ifconfig我会显示一些额外的界面。例如:eth0:1。它具有与eth0和相同的 HWaddr vlan2,并且分配了正确的外部 IP 地址inet addr,但我仍然看不到网络外部的设备。

如果我运行iptables -t nat -vnL它似乎已经注册了一些东西。例如我有:

Chain PREROUTING (policy ACCEPT 5212 packets, 475K bytes)
pkts bytes target prot opt in    out  source      destination
...
0    0     DNAT   tcp  --  eth0  *    0.0.0.0/0   216.58.216.238     tcp dpt:80 to 10.10.10.10:80
...

关于我需要更改什么才能允许访问有什么想法吗?

编辑。

我可以使用以下命令让我的服务正常工作,但它们允许所有端口通过。 iptables 有很多开关和选项...

ifconfig eth0:1 216.58.216.238 netmask 255.255.255.0
iptables -t nat -I PREROUTING -d 216.58.216.238 -j DNAT --to 10.10.10.10
iptables -t nat -I POSTROUTING -s 10.10.10.10 -j SNAT --to 216.58.216.238

相关内容