目的需求:
SNAT:实现没有公网IP的ECS实例借助有公网的ECS访问外网
环境需求:
首先有公网的主机与没有公网的主机必须同一个VPC安全组(确保两个主机内网互通才可以)
配置:
注意:全程都是在有公网的主机上操作。
第一步:开启ECS的ip转发功能
vim /etc/sysctl.conf
添加或者修改
net.ipv4.ip_forward = 1
保存退出,然后使用 sysctl -p
命令使上面的修改生效。
第二步:设置VPC路由条目
参照文档
添加自定义路由条目
这一步需要在阿里云控制台操作,添加一条VPC的路由条目,操作步骤如下:
1、登录VPC控制台,找到对应的主机的VPC右侧管理
点击路由表进入
找到对应的路由表右侧,管理
添加路由条目,目标网段必须是0.0.0.0/0,下一跳选择带有公网的ECS实例ID信息
第三步:设置iptables 的NAT转发规则
iptables -t nat -I POSTROUTING -s VPC的IP段 -j SNAT --to-source 有公网IP的ECS内网IP
例如
iptables -t nat -I POSTROUTING -s 192.168.0.0/16 -j SNAT --to-source 192.168.0.1
现在没有内网的ECS就可以访问公网了。