批量端口映射

批量端口映射
內網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第【序號】條規則
相關文章
相關標籤/搜索