如果您打算在阿里云上购买多台服务器,但是仅仅指向购买一个带宽,其他没有购买公网带宽的服务器,统一经过有公网IP的服务器提供出网。阿里云NAT网关这个产品可以满足需求,但是这个产品贵。本文介绍通过服务器自建NAT网关实现SNAT功能。
1、必须要有一台阿里云服务器ECS具有外网IP。
2、如果不想配置具有外网IP的ECS时,可以购买NAT网关,但需要钱,贵!
3、如果某台持有公网IP的ECS实例(比如已经绑定了EIP)发起互联网访问时,会优先使用其持有的公网IP,而不会使用NAT网关服务器。
VPC网段: 192.168.0.0/16
ECS1(Windows服务器 没外网IP):192.168.7.104(私有)
ECS2(Centos 7.9 有外网IP,其实是VPC做了NAT):8.136.4.180(弹性)、192.168.7.105(私有)
防火墙常用指令:
启动:systemctl start firewalld
停止:systemctl stop firewalld
重启:systemctl restart firewalld
查状态:systemctl status firewalld
查看运行状态:firewall-cmd --state //running 表示运行
设置开机自启:systemctl enable firewalld.service
开放端口:firewall-cmd --zone=public --add-port=22/tcp --permanent
# 开启转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
# 使其生效
sysctl -p
# 配置iptables做SNAT
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
# 别直接复制啊,需要根据你的实际情况改一下IP地址。上述可以理解成:firewall-cmd --zone=public --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -s VPC的IP段 -j SNAT --to-source 有公网IP的ECS内网IP
那么此时在登录ECS1时,不用设置网关或者设置了网关都可以访问外网。
远程登陆:192.168.7.104 没有公网IP的服务器,测试是可以连接外网的,说明SNAT配置成功了。