內網ip 10.199.2.12
虛擬機網絡 192.168.10.0/24
內網訪問示例,如訪問ip爲192.168.10.20的虛擬機,
遠程桌面 10.199.2.12:6020
vnc 10.199.2.12:7020linux
#!/bin/bash #該shell爲linux下建立windows虛擬機,使用linux做爲網關時,批量端口映射 #vnc端口映射 let vncport=7020 #網關vnc初始端口,每循環一次加1 let deskport=6020 #網關遠程桌面初始端口,每循環一次加1 let ipnum=20 #windows初始ip末位,每循環一次加1 let ipstop=25 #windows終止ip末位 pub_ip=10.199.2.12 #網關ip nat_ip=192.168.10 #windows私有ip段 nat_vnc_port=5900 #windowsvnc端口 nat_mstsc_port=3389 #windows遠程桌面端口 #iptables -t nat -A POSTROUTING -d $nat_ip.0/24 -p tcp --dport 5900 -j SNAT --to-source $nat_ip.1 #iptables -t nat -A POSTROUTING -d $nat_ip.0/24 -p tcp --dport 3389 -j SNAT --to-source $nat_ip.1 sudo grep net.ipv4.ip_forward=1 /etc/sysctl.conf if [ $? -ne 0 ] then sudo echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sudo sysctl -p fi sudo iptables -t nat -F sudo iptables -t nat -A POSTROUTING -j MASQUERADE sudo echo -e "端口映射狀況以下:\nwindows的ip地址\t\tvnc登陸地址\t\t遠程桌面登陸地址" while [ $ipnum -le $ipstop ];do #vnc端口映射 sudo iptables -t nat -A PREROUTING -d $pub_ip -p tcp --dport $vncport -j DNAT --to-destination $nat_ip.$ipnum:$nat_vnc_port #遠程桌面端口映射 sudo iptables -t nat -A PREROUTING -d $pub_ip -p tcp --dport $deskport -j DNAT --to-destination $nat_ip.$ipnum:$nat_mstsc_port sudo echo -e "$nat_ip.$ipnum\t\t$pub_ip:$vncport\t\t$pub_ip:$deskport" let vncport=vncport+1 let deskport=deskport+1 let ipnum=ipnum+1 done sudo echo -e "help:\niptabes -t nat -vnL --line-number\t查看映射表\niptables -t nat -F\t清空映射表" sudo echo -e "iptables -t nat -D PREROUTING [序號]\t刪除PREROUTING第【序號】條規則" sudo echo -e "iptables -t nat -D POSTROUTING [序號]\t刪除POSTROUTING第【序號】條規則"
執行結果shell
[root@master ~]# sh test.sh net.ipv4.ip_forward=1 端口映射狀況以下: windows的ip地址 vnc登陸地址 遠程桌面登陸地址 192.168.10.20 10.199.2.12:7020 10.199.2.12:6020 192.168.10.21 10.199.2.12:7021 10.199.2.12:6021 192.168.10.22 10.199.2.12:7022 10.199.2.12:6022 192.168.10.23 10.199.2.12:7023 10.199.2.12:6023 192.168.10.24 10.199.2.12:7024 10.199.2.12:6024 192.168.10.25 10.199.2.12:7025 10.199.2.12:6025 help: iptabes -t nat -vnL --line-number 查看映射表 iptables -t nat -F 清空映射表 iptables -t nat -D PREROUTING [序號] 刪除PREROUTING第【序號】條規則 iptables -t nat -D POSTROUTING [序號] 刪除POSTROUTING第【序號】條規則