![一对一虚拟IP转换](https://linux22.com/image/97487/%E4%B8%80%E5%AF%B9%E4%B8%80%E8%99%9A%E6%8B%9FIP%E8%BD%AC%E6%8D%A2.png)
我有一堆 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