说明:html
一、必需要有一台机器具备外网IP的ECS。tcp
二、若是不想配置具备外网IP的ECS时,能够购买NAT网关,但须要钱,贵。下面会说明NAT网关的配置。阿里云
三、最后吐槽一下阿里云VPC网关致使不能按照配置普通网关同样配置(参考:http://www.javashuo.com/article/p-klavowym-hp.html),必须结合VPC配置0.0.0.0/0来进行下一跳,否则你在ECS怎么设置都没法成功。其实这个问题是因为VPC自己最上层作了NAT,并经过route查看会发现253这个地址有VPC占用,不管怎么配置0.0.0.0的下一跳都会先转到253这个地址。spa
下面是具体的配置:code
环境:htm
ECS1(没外网IP):172.18.6.247blog
ECS2(有外网IP,实际上是VPC作了NAT):172.18.6.248ip
一、具备外网IP的ECS2配置网关:get
# 开启转发 echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf # 生效 sysctl -p # 配置iptables作SNAT iptables -t nat -I POSTROUTING -s 172.18.6.0/24 -j SNAT --to-source 172.18.6.248
# 上述能够理解成:iptables -t nat -I POSTROUTING -s VPC的IP段 -j SNAT --to-source 有公网IP的ECS内网IP
二、在VPC增长0.0.0.0/0的下一跳为ECS2实例table
那么此时在登陆ECS1时,不用设置网关或者设置了网关均可以访问外网。
三、若是要作DNAT时,以下操做便可:
iptables -t nat -I PREROUTING -p tcp --dport 50022 -j DNAT --to 172.18.6.247:22
# 能够这样理解: iptables -t nat -I PREROUTING -p tcp --dport 外网IP的ECS端口 -j DNAT --to 只有内网IP的ECS的IP:端口
四、若是想要换成够买NAT网关来实现时,上面的配置基本不用,直接在VPC上这样配置便可实现上面SNAT和DNAT的所有功能。
参考: