利用脚本自动配置iptables的NAT端口映射

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

上篇博客写了如何在VMware ESX和XenServer环境下配置NAT,解决了内网虚拟机访问外网的问题,还没解决外网访问内网的问题。

每增加一台虚拟机就增加几条映射规则太麻烦,实现把端口都映射好了,就不需要每次添加了。

端口映射规则如下:

num是内网IP地址的最后一个数

 ssh端口22映射到 10000+num

比如一个内网地址为192.168.1.5的虚拟机,它的22号端口映射到主机的10005端口。

vnc的590x端口(只提供两个端口)

5901端口映射到 20000+内网地址最后一个数x10+1

5902端口映射到 20000+内网地址最后一个数x10+2

比如192.168.1.20的1号VNC映射到主机的20000+20x10+1=20201

192.168.1.200的5号端口映射到主机的20000+200x10+5=22005

192.168.1.201的2号端口映射到主机的20000+201x10+5=22012

 

windows远程桌面的3389端口映射到30000+num

http的80端口映射到40000+num

利用脚本完成配置:

 
  1. #!/bin/bash 
  2. #remap port 
  3. # i is the last num of the inner address 
  4. for i in $(seq 50) 
  5. do 
  6.         if [ $i -ne 1 ] 
  7.         then 
  8.         #ssh port 22 
  9.         #port 22 is mapped to 10000+i 
  10.         let "mapport=$i + 10000" 
  11.         /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:21 
  12.         echo 10.109.247.169:$mapport mapped to 192.168.1.$i:22 
  13.  
  14.         #vnc port 590x 
  15.         #port 590x is mapped to 20001+ix10+x 
  16.         let "j=$i * 10" 
  17.         let "mapport=$j + 20001" 
  18.         /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:5901 
  19.         echo 10.109.247.169:$mapport mapped to 192.168.1.$i:5901 
  20.         let "mapport=$mapport + 1" 
  21.         /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:5902 
  22.         echo 10.109.247.169:$mapport mapped to 192.168.1.$i:5902 
  23.     
  24.  
  25.         #remote desktop port 3389 
  26.         #port 3389 is mapped to 30000+i 
  27.         let "mapport=$i + 30000" 
  28.         /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:3389 
  29.         echo 10.109.247.169:$mapport mapped to 192.168.1.$i:3389 
  30.  
  31.         #http port 80 
  32.         #port 80 is mapped to 40000+i 
  33.         let "mapport=$i + 40000" 
  34.         /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -d 10.109.247.169 --dport $mapport -j DNAT --to-destination 192.168.1.$i:3389 
  35.         echo 10.109.247.169:$mapport mapped to 192.168.1.$i:80 
  36.         fi 
  37. done 

 

 本文转自nxlhero 51CTO博客,原文链接:http://blog.51cto.com/nxlhero/1082918,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
5月前
|
弹性计算 网络协议 安全
【转】如何配置服务器的端口映射?
本文详解端口映射原理及配置方法,涵盖家庭、企业与云环境,包含静态、动态与双向映射类型,并提供常见问题解决方案。
1475 6
|
7月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
462 11
|
11月前
|
安全 网络协议 网络安全
【Azure APIM】APIM服务配置网络之后出现3443端口不通,Management Endpoint不健康状态
如果没有关联的网络安全组,则阻止所有网络流量通过子网和网络接口。
229 30
|
10月前
|
存储 安全 网络安全
阿里云国际站:阿里云服务器端口配置
悟空云@CloudWuKong阿里云是全球领先的云计算服务提供商,为用户提供弹性计算、数据库、存储、网络安全等一系列云计算服务。在使用阿里云服务器时,合理配置端口非常重要,可以提高服务器安全性和稳定性。
|
安全 网络协议 算法
HTTPS为什么可以穿越NAT端口映射设备
HTTPS能穿越NAT端口映射设备的原因在于,NAT设备仅在IP和端口层面进行地址转换,不对应用层协议(如TLS)的内容进行解析或干预。因此,HTTPS的加密通信可在客户端与服务器间直接建立,NAT设备充当透明中介,确保数据包正确路由,而不涉及加密或认证过程。这样即使没有在NAT设备上配置证书,HTTPS连接也能顺利建立并保持安全。
318 6
|
网络协议 安全 网络安全
Cisco-网络端口地址转换NAPT配置
Cisco-网络端口地址转换NAPT配置
307 1
|
网络协议 Linux Windows
Rsyslog配置不同端口收集不同设备日志
Rsyslog配置不同端口收集不同设备日志
|
安全 网络安全 数据安全/隐私保护
Cisco-交换机配置聚合端口
Cisco-交换机配置聚合端口
403 0
|
5月前
|
SQL Apache Windows
Windows服务器80端口被占用的全面解决方案
在服务管理器中启动apache2服务,即可正常使用80端口。若系统中还安装了其他微软产品如sql等,也可尝试停止其服务进行测试,但请注意,SQL通常不会使用80端口,因此一般不会受到影响。以上就是关于80端口被system占用的详细解决方法,希望对你有所帮助。
|
3月前
|
网络协议
端口最多只有65535个,为什么服务器能承受百万并发
服务器通过四元组(源IP、源端口、目标IP、目标端口)识别不同TCP连接,每条连接对应独立socket。数据包携带四元组信息,服务端据此查找对应socket进行通信。只要四元组任一元素不同,即视为新连接,可创建独立socket。资源充足时,单进程可支持百万级并发连接,socket与端口非一一对应。
203 10
端口最多只有65535个,为什么服务器能承受百万并发