本文的内容
显示
1.
Linux设置了一个简单的路由器来访问外部网络
2.
购买云服务提供商NAT网关以访问外部网络
2.1.
推荐阅读
在云企业集群环境下,不可能给所有云主机都配备外网ip,所以有些机器不会具备外网能力。但是并不是所有的云厂商都在内网提供yum服务,需要安装软件的时候会比较麻烦。如下图所示,只有机器B可以访问外部网络。
此时,如果想让A和C都访问外网,应该怎么做?想想家庭网络环境,一根光纤,一个外网IP,一个路由器,家里所有的电脑和手机都可以上网。所以我们这里缺少一个路由器。现在让B机做兼职路由器。
Linux设置了一个简单的路由器来访问外部网络
直接在机器B上运行以下脚本:
#!/bin/bash
#Auth:dige
#博客:https://hqidi.com
#时间:2018-10-2 09:40:47
#Name:route.sh
#版本:1.0版
echo 1/proc/sys/net/IP v4/IP _ forward
iptables-t NAT-A post routing-s 10 . 13 . 110 . 198-o eth 0-j SNAT到源10.13.185.186
iptables-t NAT-A post routing-s 10 . 13 . 80 . 128-o eth 0-j SNAT到源10.13.185.186
脚本解析:
echo 1/proc/sys/net/IP v4/IP _ forward
该命令是开启linux系统的路由转发功能,暂时生效(系统重启后无效)。要永久生效,请编辑/etc/sysctl.conf文件,添加一行net.ipv4.ip_forward=1 (centos6默认有此配置行,但值为0,所以必须修改为1)。
iptables-t NAT-A post routing-s 10 . 13 . 110 . 198-o eth 0-j SNAT到源10.13.185.186
反汇编这个长命令:
Iptables -t nat:操作Iptables的nat表,用于网络地址转换。
-A POSTROUTING:向POSTROUTING链添加规则。
-s 10.13.110.198:当源IP为10.13.110.198时。
-o eth0:从eth0转发数据。
——jSNAT:做SNAT手术。
to-source 10.13.185.186:将最初发送的数据包的源地址从10.13.110.198更改为10 . 13 . 185 . 186。
集成是这样的:
当A机接入互联网的数据包到达B机时,B机上的iptables从eth0转发数据包,将数据包的源地址改为10.13.185.186(正常情况下应该改为B机的外部ip,现在云服务提供商还没有将外部IP直接绑定到centos系统,也就是说B机外部还有一层NAT)。
如果太复杂,我们可以把它改成更简单的脚本:
#!/bin/bash
#Auth:dige
#博客:https://hqidi.com
#时间:2018-10-2 09:47:47
#Name:route.sh
#版本:2.0版
echo 1/proc/sys/net/IP v4/IP _ forward
iptables-t NAT-A post routing-o eth 0-j伪装
这个脚本的转发性能没有上面那个高,但是很简单,不考虑外网IP,源地址,目的地址。
执行脚本:/route.sh
然后将A机和C机的默认路由设置为b机的内网IP,一开始A机和C机吵着说“我要上网,我要上网”,上不去。当你设置默认路由为B机时,就相当于回复A机和C机说你要上网就去B机,他知道路。在a和c机器上执行:
路由添加默认gw 10.13.185.186 eth0
此时,A机和C机都可以连接到互联网。图中顶部绿色箭头已连接。但是,外部用户想要访问C机应该怎么做呢?如果C机提供web服务,很容易说nginx直接安装在B机上作为反向代理。如果想直接从外网ssh到机器C,我们来解一下图底部的蓝色箭头。
只需要在机器B上操作:
iptables -t nat -A预路由-d 106.115.15.86-p TCP-dport 22128-j DNAT-to-destination 10 . 13 . 80 . 128:22
当请求访问外部网络的端口22128时,将请求转发到内部网络10.13.80.128的端口22。此时图中最右边的用户应该是以10.13.80.128加端口22128的形式访问C机。
购买云服务提供商NAT网关以访问外部网络
老话说得好,有钱能使鬼推磨。
刚才我们自己做了一个路由器,很折腾。先说简单的方法,买个路由器。
云服务提供商专门提供了一款产品“NAT Gateway”来满足我们的上述需求。
阿里云NAT网关:https://help.aliyun.com/product/44413.html
腾讯云NAT网关:https://cloud.tencent.com/product/nat
UCloud Youke NAT Gateway:https://console.ucloud.cn/vpc/natgw
解除原本绑定到B机的EIP,然后绑定到NAT网关。
外部网络模式选择白名单模式,然后添加所有没有外部网络IP的计算机:
这样,第一张图中的绿色箭头就连接起来了。
配置端口转发实现外网ssh连接:
这样,第二张图中的蓝色箭头就起作用了。
转载自笛子
西部数码代理(chenqinet.cn)是工信部批准的正规老牌云服务商,拥有ISP、云牌照、IDC、CDN全业务资质。自成立以来,二十多年来一直专注于域名注册,虚拟主机,云服务器,企业邮箱,企业网站建立等互联网基础服务!
公司开发的云计算平台以便捷、高效、高性价比、意想不到的售后优势占领市场,跻身国内前三的接入服务商,为国内超过50万家网站提供高速稳定的托管服务!先后荣获中国高新技术企业、中国优秀云计算服务商、中国十大IDC企业、中国最受欢迎云服务商等称号!
目前西部数码代理高性能云服务器在售,最低仅售48元!
http://zhuji.chenqinet.cn/cloudhost/