一對一虛擬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

相關內容