今天公司扩充了几台阿里云的ECS服务器,由于内部所有的服务器都在内网环境中,所以不需要公网IP,但是阿里云的ECS无公网IP的机器默认是连接不到公网的。难道是为了让用户购买阿里云的NAT网关?价格死贵的。那么还有其它方式让这些内网服务器访问道外网的网络吗?
需要准备一台有公网IP的ECS服务器(可以访问到公网)作为路由器(跳板)
一、有公网网络的机器上执行
1
2
3
4
5
6
7
8
9
10
11
12
13
#打开端口转发
echo “1” > /proc/sys/net/ipv4/ip_forward
#重新加载配置,使配置生效
sysctl -p
#配置iptables做SNAT,设置转发规则
iptables -t nat -I POSTROUTING -s 10.2.12.0/24 -j SNAT --to-source 10.2.12.228
#保存更改
service iptables save
#重启防火墙
service iptables restart
这里需要注意改成自己的IP,将10.2.12.0网段的网络请求转发到10.2.12.228。 若没有iptables可使用以下命令安装
1
yum install iptables-services
配置VPC路由规则
阿里云ECS若要路由成功,还需要配置VPC路由规则,打开阿里云VPC控制台,添加路由表,新增一条0.0.0.0/0(默认路由)的规则
这里要吐槽一下阿里云不能按照普通网关一下配置,必须要结合VPC配置0.0.0.0/0来进行下一跳,不然你在ECS怎么设置都无法成功,在这一步奏耽误了点时间。
非ECS环境可参考,直接配置网关: https://www.cnblogs.com/EasonJim/p/10206728.html
测试网络
可以直接 ping 一个外网的ip进行测试,或者 curl https://myip.ipip.net/