阿里云VPC网络内网实例通过SNAT上外网

场景:

1、有多个ESC实例,其中A实例(linux)有外网IP,可以上外网
其它实例没有公网IP,不能上外网
2、整个实例在一个交换机,也就是一个网络(192.168.0.0/24)
A实例(linux)
ip:192.168.0.158

需求:

实现其它不能上外网实例可以通过A实例上外网

提示:做这个上外网的前提,就是至少有一个可以上外网的ESC实例。以下命令配置都是在A实例(可以上外网,已有EIP的实例)操作,就最后添加路由条目在阿里云控制台,需要上网的实例,不用做任何操作

1、禁用firewalld,安装iptables
如果是centos6操作这些就够了
systemctl start iptables
systemctl enable iptables
iptables -F
service iptables save

如果是centos7要先操作如下步骤,在操作上面的步骤
systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services
2、修改内核参数,开启转发功能
临时生效:
echo "1" > /proc/sys/net/ipv4/ip_forward

永久生效,需要修改sysctl.conf:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p
注:执行sysctl -p 是让配置马上生效

可以查看是否生效
cat /proc/sys/net/ipv4/ip_forward
如果值是1,表示已开启转发
3、配置iptables
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 192.168.0.158    注:(为绑定EIP实例的私有ip)
iptables -L -n -t nat
image.png
配置完,记得保存配置永久生效
service iptables save


查看所有itables规则
service iptables status
image.png
删除POSTROUTING规则
iptables -t nat -D POSTROUTING 1
4、在阿里云后台的vpc添加路由

点击--专有网络VPC---->路由表---->选择所属专有网络(192.168.0.0/24)所在路由实例,点击管理---->添加路由条目--->目标网端:0.0.0.0/0,下一跳:ESC实例,资源组:全部,ESC实例:选A实例的实例ID---->确定

image.png

image.png

image.png

image.png
5、测试

在其它不能上外网的实例,什么都不用配置,直接测试,是可以直接上外网了,外网IP就是A实例的公网IP。测试就不列举了。