我有一堆 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