准备环境

VPC网段: 192.168.0.0/16
NAT服务器的IP:8.136.4.180(弹性)、192.168.7.105(私有
测试连接外网服务器的IP:192.168.7.104


路由表配置NAT路由

目标网段:0.0.0.0/0
ECS实例:配置NAT网关的服务器


开启防火墙


防火墙常用指令:
启动:systemctl start firewalld
停止:systemctl stop firewalld
重启:systemctl restart firewalld
查状态:systemctl status firewalld
查看运行状态:firewall-cmd --state //running 表示运行
设置开机自启:systemctl enable firewalld.service

允许数据包转发

网卡默认是在public的zone内,也是默认zone。永久添加源地址转换功能,首先开启IP转发功能,默认是关闭的。
临时修改

echo 1 >/proc/sys/net/ipv4/ip_forward

修改过后就马上生效,但如果系统重启后则又恢复为默认值0。
永久修改

# 找到下面的值并将net.ipv4.ip_forward = 0改成1,如果没有直接加这一行
vi /etc/sysctl.conf
# sysctl -p(使之立即生效)
net.ipv4.ip_forward = 1

或则直接指令追加
开启转发

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf


默认值0是禁止ip转发,修改为1即开启ip转发功能。


配置SNAT

就一条命令搞定,别直接复制啊,需要根据你的实际情况改一下IP地址:

firewall-cmd --zone=public --permanent --add-mas
firewall-cmd --zone=public --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -s 192.168.0.0/16 -j SNAT --to-source 192.168.7.105
systemctl restart firewalld


结果测试

远程登陆:192.168.7.104 没有公网IP的服务器,测试是可以连接外网的,说明SNAT配置成功了。