上篇博客寫了如何在VMware ESX和XenServer環(huán)境下配置NAT,解決了內(nèi)網(wǎng)虛擬機(jī)訪問外網(wǎng)的問題,還沒解決外網(wǎng)訪問內(nèi)網(wǎng)的問題。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供槐蔭企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為槐蔭眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
每增加一臺虛擬機(jī)就增加幾條映射規(guī)則太麻煩,實(shí)現(xiàn)把端口都映射好了,就不需要每次添加了。
端口映射規(guī)則如下:
num是內(nèi)網(wǎng)IP地址的最后一個數(shù)
ssh端口22映射到 10000+num
比如一個內(nèi)網(wǎng)地址為192.168.1.5的虛擬機(jī),它的22號端口映射到主機(jī)的10005端口。
vnc的590x端口(只提供兩個端口)
5901端口映射到 20000+內(nèi)網(wǎng)地址最后一個數(shù)x10+1
5902端口映射到 20000+內(nèi)網(wǎng)地址最后一個數(shù)x10+2
比如192.168.1.20的1號VNC映射到主機(jī)的20000+20x10+1=20201
192.168.1.200的5號端口映射到主機(jī)的20000+200x10+5=22005
192.168.1.201的2號端口映射到主機(jī)的20000+201x10+5=22012
windows遠(yuǎn)程桌面的3389端口映射到30000+num
http的80端口映射到40000+num
利用腳本完成配置:
- #!/bin/bash
- #remap port
- # i is the last num of the inner address
- for i in $(seq 50)
- do
- if [ $i -ne 1 ]
- then
- #ssh port 22
- #port 22 is mapped to 10000+i
- let "mapport=$i + 10000"
- /sbin/iptables -t nat -A PREROUTING -i eth2 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:21
- echo 10.109.247.169:$mapport mapped to 192.168.1.$i:22
- #vnc port 590x
- #port 590x is mapped to 20001+ix10+x
- let "j=$i * 10"
- let "mapport=$j + 20001"
- /sbin/iptables -t nat -A PREROUTING -i eth2 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:5901
- echo 10.109.247.169:$mapport mapped to 192.168.1.$i:5901
- let "mapport=$mapport + 1"
- /sbin/iptables -t nat -A PREROUTING -i eth2 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:5902
- echo 10.109.247.169:$mapport mapped to 192.168.1.$i:5902
- #remote desktop port 3389
- #port 3389 is mapped to 30000+i
- let "mapport=$i + 30000"
- /sbin/iptables -t nat -A PREROUTING -i eth2 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:3389
- echo 10.109.247.169:$mapport mapped to 192.168.1.$i:3389
- #http port 80
- #port 80 is mapped to 40000+i
- let "mapport=$i + 40000"
- /sbin/iptables -t nat -A PREROUTING -i eth2 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:3389
- echo 10.109.247.169:$mapport mapped to 192.168.1.$i:80
- fi
- done