阿里云ECS主机自建SNAT,实现没有公网的主机通过有公网的主机访问外网
第三步:设置iptables 的NAT转发规则
可以这样理解 iptables -t nat -I POSTROUTING -s VPC的IP段 -j SNAT --to-source 有公网IP的ECS内网IP
2、设置DNAT规则
DNAT需要两条命令:
同样不要照搬复制,需要根据你的实际情况修改下IP
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 172.16.93.38
iptables -t nat -I POSTROUTING -p tcp --dport 80 -j MASQUERADE
可以这样理解:
iptables -t nat -I PREROUTING -p tcp --dport 有公网IP的ECS端口号 -j DNAT --to 目标内网ECS的内网IP
iptables -t nat -I POSTROUTING -p tcp --dport 有公网IP的ECS端口号 -j MASQUERADE
比如上面的示例中,是把有公网IP的ECS 80端口映射到了172.16.93.38这个内网实例的80端口。
回车执行后要永久生效,还需要保存在iptables配置文件中:
iptables-save > /etc/sysconfig/iptables
同样的,如果使用vi /etc/sysconfig/iptables命令查看iptables配置文件,就会发现多了两条nat表的dnat转发规则:
前后端口映射不一致怎么办?简单啊,在/etc/sysconfig/iptables内的目标IP后面直接加特定的端口号就行
阿里云教程https://developer.aliyun.com/article/607330?spm=a2c6h.12873639.article-detail.9.283337db8zVcrg


