阿里云VPC网络内网实例通过SNAT连接外网

Posted aaron-23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云VPC网络内网实例通过SNAT连接外网相关的知识,希望对你有一定的参考价值。

场景:

1、有多个ECS实例,其中A实例有公网IP,可以上外网
其它实例没有公网IP,不能上外网
2、所有实例在一个交换机,也就是一个网络(172.16.0.0/16)

实例 内网IP 外网IP
A 172.16.117.22 120.27.240.92
B 172.16.117.23

目的:

实现实例B可以通过实例A上外网

以下所有操作都是在实例A操作;最后添加路由条目是在阿里云控制台。(需要上网的实例,不用做任何操作)

修改内核参数,开启转发功能

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p
查看是否生效,如果值是1,表示已开启转发
cat /proc/sys/net/ipv4/ip_forward

配置iptables

iptables -t nat -I POSTROUTING -s 172.16.117.0/24 -j SNAT --to-source 172.16.117.22

查看是否添加成功

iptables -L -n -t nat

在阿里云后台的vpc添加路由

点击专有网络VPC---->路由表---->选择所属专有网络(172.16.0.0/16)所在路由实例,点击管理---->添加路由条目---->目标网端:0.0.0.0/0 ---->下一跳:ESC实例,资源组:全部,ESC实例:选实例A的实例ID---->确定

技术图片

技术图片

技术图片

测试

在实例B直接测试,到此已可以直接连接外网

重启后依旧生效

1、保存规则

sudo chmod a+w -R /opt
sudo iptables-save > /opt/iptables.rules

2、重启后手动导入规则

sudo iptables-restore < /opt/iptables.rules


以上是关于阿里云VPC网络内网实例通过SNAT连接外网的主要内容,如果未能解决你的问题,请参考以下文章

阿里云 跨账号实现内网互传 VPC互连(踩坑总结)

阿里云Redis外网转发访问

使用阿里云Redis需要注意!

阿里云专有网络VPC自建NAT网关

阿里云经典网络与VPC网络互通的实现

阿里云SLB和VPC的限制关系