Loading
0

阿里云ECS自建SNAT实现无公网IP的ECS通过有公网IP的ECS访问网络

技术小学生微信公众号
腾讯云服务器大促销。
华为服务器
前言:在阿里云有多个ECS服务器,但只有一个服务器有公网ip,其他服务器没公网ip没办法访问网络,怎么办?本教程详细介绍自建SNAT网关方式实现无公网ip的ECS通过有公网ip的的ECS访问网络。
本教程前提多台服务器在同一个VPC同一个安全组下(必须内网互通才可以)
SNAT:实现没有公网IP的ECS实例借助有公网的ECS访问外网,但是外网无法访问到内网IP;(本教程
DNAT:实现外网通过端口映射访问到内网服务器,但是不能实现内网ECS访问到外网。(可参考https://blog.tag.gg/showinfo-3-36322-0.html
说明:SNAT和DNAT结合后可以实现,无公网ip的服务器既可以通过有公网ip的服务器访问公网,也可以实现通过有公网ip服务器的ip+端口访问到无公网ip服务器的端口。
服务器信息如下:
服务器1(有公网IP):8.134.0.0  私网IP:172.19.219.123
服务器2(无公网IP):172.19.219.126
配置方法:
1、参考如图步骤在控制台设置。

 

点击如图,找到ECS服务器的专有网络ID,将右侧的ip段复制备用。
例如本次教程是:172.16.0.0/12

2、在有公网ip的的服务器中打开“ /etc/sysctl.conf ”文件,在文件结尾增加如下规则:

 net.ipv4.ip_forward = 1

然后执行命令“sysctl -p”刷新设置。
然后在有公网ip的服务器执行如下命令:

 iptables -t nat -I POSTROUTING -s 172.16.0.0/12 -j SNAT --to-source 172.19.219.123

说明:
  • 172.16.0.0/12 为 VPC的私网IP段,参考上面截图获取。
  • 172.19.219.123 是有公网IP服务器的私网ip,可以在控制台查看。
至此,配置完成后在没有公网IP的服务器就可以访问网络了,例如ping和curl可以正常了。


题外话:
如果在无公网ip的服务器中ping任何域名都返回有公网ip的私网ip,则是只参考上面截图添加了路由条目后没执行上面命令转发,则会出现如下提示。

ping blog.tag.gg
PING blog.tag.gg (8.137.15.1) 56(84) bytes of data.
From 172.19.219.123 (172.19.219.123): icmp_seq=128 Redirect Host(New nexthop: gateway (172.19.223.253))
From 172.19.219.123 (172.19.219.123): icmp_seq=129 Redirect Host(New nexthop: gateway (172.19.223.253))
From 172.19.219.123 (172.19.219.123): icmp_seq=130 Redirect Host(New nexthop: gateway (172.19.223.253))
From 172.19.219.123 (172.19.219.123): icmp_seq=131 Redirect Host(New nexthop: gateway (172.19.223.253))
From 172.19.219.123 (172.19.219.123): icmp_seq=132 Redirect Host(New nexthop: gateway (172.19.223.253))
From 172.19.219.123 (172.19.219.123): icmp_seq=133 Redirect Host(New nexthop: gateway (172.19.223.253))
From 172.19.219.123 (172.19.219.123) icmp_seq=134 Time to live exceeded
From 172.19.219.123 (172.19.219.123) icmp_seq=135 Time to live exceeded
From 172.19.219.123 (172.19.219.123) icmp_seq=136 Time to live exceeded

执行上面第二步骤中的iptables命令就可以了。
问题很简单,记录一下,好记性不如烂笔头,防止自己忘记。

 
技术小学生微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-3-36321-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:阿里云ECS镜像导入到本地VMware虚拟机中方法
下一篇:阿里云ECS自建DNAT实现外网通过公网IP端口映射访问到内网服务器