阿里云多台内网ECS公用一条EIP实现访问外网

第一步:开启ECS的ip转发功能(有公网的ECS上操作)

1、vi /etc/sysctl.conf
找到 net.ipv4.ip_forward = 1 这一条,确保后面的值为1就行,如果没有这一条,手动加进去。
保存退出,然后使用 sysctl -p 命令使上面的修改生效。
2、sysctl -p

问题:执行sysctl -p 报错cannot stat /proc/sys/–p: 没有那个文件或目录错误

1、modprobe br_netfilter
2、ls /proc/sys/net/bridge
3、 sysctl -p

第二步:设置VPC路由条目

阿里云多台内网ECS公用一条EIP实现访问外网_第1张图片
其中目标网段一定要填0.0.0.0/0
ECS实例选择有公网IP的那个实例。

第三步:设置iptables 的NAT转发规则(有公网的ECS上操作)

1、iptables -t nat -I POSTROUTING -s 172.22.58.182/32 -j SNAT --to-source 172.22.58.181
2、iptables -t nat -I POSTROUTING -s 172.22.58.183/32 -j SNAT --to-source 172.22.58.181
3、iptables -t nat -I POSTROUTING -s 172.22.58.184/32 -j SNAT --to-source 172.22.58.181

可以这样理解 iptables -t nat -I POSTROUTING -s VPC的IP段 -j SNAT --to-source 有公网IP的ECS内网IP
4、service iptables save
保存iptables配置文件
5、systemctl restart iptables.service
启iptables使规则生效:

问题:测试没有内网的ECSping不通外网

阿里云多台内网ECS公用一条EIP实现访问外网_第2张图片
执行iptables -t filter --list发现
阿里云多台内网ECS公用一条EIP实现访问外网_第3张图片
执行 iptables -F FORWARD清楚转发策略后无问题

你可能感兴趣的:(阿里云多台内网ECS公用一条EIP实现访问外网)