阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)

说明:

1、必须要有一台机器具有外网IP的ECS。

2、如果不想配置具有外网IP的ECS时,可以购买NAT网关,但需要钱,贵。下面会说明NAT网关的配置。

3、最后吐槽一下阿里云VPC网关导致不能按照配置普通网关一样配置(参考:https://www.cnblogs.com/EasonJim/p/10206728.html),必须结合VPC配置0.0.0.0/0来进行下一跳,不然你在ECS怎么设置都无法成功。其实这个问题是由于VPC本身最上层做了NAT,并通过route查看会发现253这个地址有VPC占用,无论怎么配置0.0.0.0的下一跳都会先转到253这个地址。

下面是具体的配置:

环境:

ECS1(没外网IP):172.18.6.247

ECS2(有外网IP,其实是VPC做了NAT):172.18.6.248

1、具有外网IP的ECS2配置网关:

# 开启转发
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

2、在VPC增加0.0.0.0/0的下一跳为ECS2实例

阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)

那么此时在登录ECS1时,不用设置网关或者设置了网关都可以访问外网。

3、如果要做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:端口

4、如果想要换成够买NAT网关来实现时,上面的配置基本不用,直接在VPC上这样配置即可实现上面SNAT和DNAT的全部功能。

阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)

参考:

https://yq.aliyun.com/articles/607330

上一篇:Android根据内网外网连接情况配置服务器访问IP


下一篇:利用阿里云搭建frp实现外网远程桌面链接内网电脑