【转】通过配置SNAT实现专有网络下无外网IP的ECS访问外网
in 随笔备忘 with 0 comment

【转】通过配置SNAT实现专有网络下无外网IP的ECS访问外网

in 随笔备忘 with 0 comment

前言

在阿里云中购买服务器,可以免费自建专有网络VPC,就可以将购买的服务器放在一个网段中,成为互通的内网,加快内网中服务器的访问速度。但是专有网络中不是每一台服务器都有公网IP和带宽的,在访问服务器时,我们可以通过nginx,负载均衡等来实现对内网服务器的访问。但反过来,内网服务器要访问外网,就需要有NAT网关,但是阿里云的NAT网关是需要额外花钱购买共享带宽的,也就是专有网络中的服务器可以用购买的共享带宽来上网。但是,这要钱啊!

在我们已经购买了公网IP和带宽的情况下,就可以利用现有的公网ip和带宽,在专有网络内,自建NAT网关,实现专有网络内所有服务器的上网。

注意:在阿里云的传统网络中,是不支持自建NAT网关的。只有在专有网络VPC中,才可以,但是VPC是免费创建的!免费! 很好,都不要钱。

下面我们就记录介绍一下如何在阿里云的的VPC中,自建NAT网关,实现上网。另外,别的云服务,方法类似,可以借鉴参考。

准备

添加路由条目

进入专有网络VPC中,进入路由表,进入路由表管理界面,选择添加路由条目

image-4.png

按如下配置新添加的路由条目,选择有公网IP和带宽的ECS实例作为下一跳。

image-5.png

配置服务器

下面进入你刚才作为下一跳的ECS实例,按照如下进行操作配置

# 开启firewalld防火墙,默认是关闭的。
systemctl enable firewalld
systemctl start firewalld

# 网卡默认是在public的zone内,也是默认zone。永久添加源地址转换功能
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
 
# 添加网卡的ip转发功能,添加如下配置到文件最后
vim /etc/sysctl.conf
----------------------------------------------------------------
net.ipv4.ip_forward=1
----------------------------------------------------------------
  
# 重载网络配置生效
sysctl -p

注:在配置SNAT过程中,我们使用了firewall,这玩意儿就是防火墙,所以大家一定一定记得要配置好端口放行规则,别好好的服务全被防火墙给干了!!!!

常用firewall命令【只有firewall处于运行状态才可以使用firewall-cmd命令】

# 查看所有打开的端口: 
firewall-cmd --zone=public --list-ports

# 添加一个放行端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)

# 删除一个放行端口:
firewall-cmd --zone=public --remove-port=80/tcp --permanent

# 设置端口映射
firewall-cmd --add-forward-port=port=4650:proto=tcp:toaddr=203.205.128.15:toport=465 --permanent

# 重载配置:
firewall-cmd --reload
Comments are closed.