阿里云VPC网络内网实例通过SNAT连接外网
2024-08-31 23:22:38
场景:
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
最新文章
- 查看文本[Linux]
- Python 2.7 - CentOS 7 - ImportError: No module named Tkinter
- caffe 基本知识简介
- C#winform省市县联动,以及有的县是空值时显示异常的处理
- 《JavaScript Ninja》之正则表达式
- hdu1722 bjfu1258 辗转相除法
- IE11下ASP.NET Forms身份认证无法保存Cookie的问题
- Java的类演进过程
- sqlite数据下载链接地址
- centOS静态ip设置
- 1137: 零起点学算法44——多组测试数据输出II
- android应用集成facebook登录
- 使用mpvue开发小程序教程(五)
- 【C#】判断字符串中是否包含指定字符串,contains与indexof方法效率问题
- Windows PowerShell基本语法及常用命令
- CentOS随笔——克隆虚拟机
- STM新建项目
- android 3.0+百度地图api地图如何移动到指定的经纬度处
- 锋利的jQuery复制粘贴(一)
- Java EE 之Hibernate异常总结【1】org.hibernate.LazyInitializationException: could not initialize proxy - no Session
热门文章
- js 根据条件删除数组中某个对象&;js filter (find)过滤数组对象的使用
- C#中RDLC报表常用表达式(字符串和转换)
- 【linux】系统编程-2-消息队列
- jrebel 启动失败的处理
- Git全栈开发者使用指南
- 分析http协议和高并发网站架构
- UNION An Unreferenced Metric for Evaluating Open-ended Story Generation精读
- 第八章节 BJROBOT hector 算法构建地图【ROS全开源阿克曼转向智能网联无人驾驶车】
- JAVA_基础IO流对象流(三)
- Java 初中级程序员如何快速成长???