三步搭建VPC专有网络NAT网关,配置SNAT和DNAT规则-云栖社区

标签: | 发表时间:2018-11-24 16:49 | 作者:
出处:https://m.aliyun.com

SNAT:实现没有公网IP的ECS实例借助有公网的ECS访问外网,但是外网无法访问到内网IP;

DNAT:实现外网通过端口映射访问到内网服务器,但是不能实现内网ECS访问到外网。


一共三个步骤:


第一步:开启ECS的ip转发功能


这步只在有公网的ECS上操作:


       vi /etc/sysctl.conf

找到 net.ipv4.ip_forward = 1 这一条,确保后面的值为1就行,如果没有这一条,手动加进去。


697c983cf08a99f21a04bbb74bb40608e7e09acb


保存退出,然后使用 sysctl -p 命令使上面的修改生效。

fd431fe987f4d1f303c83716f1190942f33f0f3a


第二步:设置VPC路由条目


这一部需要在阿里云控制台操作,添加一条VPC的路由条目

找不到在哪的可以参考视频教程https://help.aliyun.com/video_detail/54653.html

在VPC的路由表中,添加如下一条路由条目。

5883cab1fee276485c56cd343d14c40e14b8a819

其中目标网段一定要填0.0.0.0/0

ECS实例选择有公网IP的那个实例。


第三步:设置iptables 的NAT转发规则


1、设置SNAT规则


就一条命令搞定,别直接复制啊,需要根据你的实际情况改一下IP地址:


       iptables -t nat -I POSTROUTING -s 172.16.0.0/16 -j SNAT --to-source 172.16.107.49

可以这样理解 iptables -t nat -I POSTROUTING -sVPC的IP段-j SNAT --to-source有公网IP的ECS内网IP

回车执行后要永久生效,还需要保存在iptables配置文件中:


       service iptables save


如果使用vi /etc/sysconfig/iptables命令查看iptables配置文件,就会发现多了一条nat表的snat转发规则:


5d3d6c2fa0c6dd70d0503b055bf0adcfc0026154

然后重启iptables使规则生效:


       systemctl restart iptables.service



现在没有内网的ECS就可以访问公网了。


2、设置DNAT规则

DNAT需要两条命令:

同样不要照搬复制,需要根据你的实际情况修改下IP


       iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 172.16.93.38
iptables -t nat -I POSTROUTING -p tcp --dport 80 -j MASQUERADE

可以这样理解:

iptables -t nat -I PREROUTING -p tcp --dport有公网IP的ECS端口号 -j DNAT --to目标内网ECS的内网IP

iptables -t nat -I POSTROUTING -p tcp --dport 有公网IP的ECS端口号-j MASQUERADE


比如上面的示例中,是把有公网IP的ECS 80端口映射到了172.16.93.38这个内网实例的80端口。


回车执行后要永久生效,还需要保存在iptables配置文件中:


       service iptables save

同样的,如果使用vi /etc/sysconfig/iptables命令查看iptables配置文件,就会发现多了两条nat表的dnat转发规则:

134a528b2498f19649be73759e665a323a83607e


前后端口映射不一致怎么办?简单啊,在/etc/sysconfig/iptables内的目标IP后面直接加特定的端口号就行


ea43d78175c870d40dbf4c1709a51dc73e5b888f


也是同样的,最后重启iptables使规则生效:


systemctl restart iptables.service



测试正常。

如果不生效,请检查是否是同一VPC内,iptables规则是否有冲突。如果ECS内安装了docker,docker自带的nat转发规则会有影响,需要合理的网段规划和路由规划。


DONE!

相关 [vpc 专有 网络] 推荐:

三步搭建VPC专有网络NAT网关,配置SNAT和DNAT规则-云栖社区

- -
SNAT:实现没有公网IP的ECS实例借助有公网的ECS访问外网,但是外网无法访问到内网IP;. DNAT:实现外网通过端口映射访问到内网服务器,但是不能实现内网ECS访问到外网. 第一步:开启ECS的ip转发功能. 这步只在有公网的ECS上操作:. 找到 net.ipv4.ip_forward = 1 这一条,确保后面的值为1就行,如果没有这一条,手动加进去.

网络

- 火锅土豆 - 科学松鼠会
本文地址(转载请注明出处): 复制.

网络爬虫

- - 四火的唠叨
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》. 最近在写一个程序,去爬热门事件和热门关键词网站上的数据. 网络爬虫也叫做网络蜘蛛,是一种互联网机器人,把需要的网页撷取下来,组织成适当格式存储. 它是搜索引擎的重要组成部分,虽然从技术实现上来说,它的难度往往要小于对于得到的网页信息的处理.

网络安全

- - CSDN博客系统运维推荐文章
1、防止入侵者对主机进行ping探测,可以禁止Linux主机对ICMP包的回应.  iptables 防火墙上禁止ICMP应答.  关闭不必要的端口,时常检查网络端口情况.  nmap  可以扫描端口.  关闭不必要的服务和端口.  为网络服务指定非标准的端口.  开启防火墙,只允许授权用户访问相应的服务端口.

网络珍珠港

- major - 译言-每日精品译文推荐

http网络安全

- - CSDN博客推荐文章
每天都会用到http协议,也听说http协议的安全的重要性,却一直很少真的去模拟攻击. 特意通过一篇博客整理下http可能遇到的安全问题,用脚本语言php去模拟和处理. 1 http为什么会存在安全问题. http是没有状态和加密的协议,如果不使用(ssl)https协议,很多信息都是透明的,传输的数据很容易被捕获.

网络图谱论“知乎”

- oxygen - 采铜学心录
引言:写这篇文章的初衷是为了让自己“读懂”知乎. 知乎是一个颇有吸引力的产品,甚至一度转移了我对微博的兴趣,由此我更想搞清楚知乎背后的逻辑是什么,它是如何运作的. 当然谈知乎很可能就是在谈Quora,可惜我还没用过Quora所以没有发言权,所以只能就知乎作一番分析. 一论:知乎是一种混合网络,由个人结点和知识结点两种结点构成.

网络媒体的减法

- 牛事达 - 坏脾气的小肥
上周连发两篇网络媒体分析文章,创下评论数历史新低,两篇都是点击到500次时,评论数仍为1. 可见我的读者群中甚少媒体从业者. 杯具的是,周末想写的仍是一篇媒体分析. 明知道没多少人看,但一动念头就憋不住,如同内急一般. 从平媒到网媒,内容运营一下子跳出了载体成本的限制,再加上转载为主的门户现状,几乎把触角伸展到一切报道领域.

网络通讯协议图

- 李斌 - C++博客-首页原创精华区
阿π 2010-11-04 14:13 发表评论.

网络营销漫谈

- eva - 互联网的那点事
众所周知UED(user experience design)是为用户体验设计,而MED(Marketing Experience Design)的区别在于营销二字. 各位,以营销替代用户二字非只重营销不重用户,既然是体验设计那么离开了“人”就毫无意义,所以MED应该理解为针对营销用户的体验设计,是为特定人群服务的体验设计,定位更精准,针对性更强.