海业 發表於 2023-9-5 00:00:00

阿里云服务器无公网如何上网?

<p align="center">
        <img title="阿里云服务器无公网如何上网?" alt="阿里云服务器无公网如何上网?" align="" src="https://zhuji.jb51.net/uploads/img/202305/b1c955397839ebc3a692976c0adee4c6.jpg"></p>
<p>
        <strong>概述:</strong></p>
<p>
        为了安全起见,我们对所有应用服务器,DB服务器,redis缓存服务器不配置公网IP,只配内网IP。这样有一个问题就是没有公网IP的服务器无法上网。而某些应用的请求接口需要上网抓取数据。所以必须要解决上网的问题。</p>
<p>
        大概架构如下</p>
<p>
        1、一台ECS服务器,相当于跳板机(配置公网)</p>
<p>
        2、一台Nginx服务器(配置公网)</p>
<p>
        3、二台MySQL服务器,主从架构(不配置公网)。</p>
<p>
        4、一台redis缓存服务器(不配置公网)</p>
<p>
        5、三台应用服务器(不含公网)。</p>
<p>
        <strong>解决思路:</strong></p>
<p>
        通过对上述服务器架构和需求的了解。想到了有2种方法可以进行解决。</p>
<p>
        方法一、购买阿里云NAT网关,把没有配置公网的IP地址都接入到网关。</p>
<p>
        优点: 快速方便</p>
<p>
        缺点:额外花钱购买NAT,哈哈~~</p>
<p>
        方法二、使用自己已有的nginx服务器,进行路由转发上网</p>
<p>
        优点:不用花钱购买NAT</p>
<p>
        缺点: 需要人为配置,路由转发</p>
<p>
        总结,为了节省成本,我这里采用的是方法二。</p>
<p>
        <strong>解决方法</strong></p>
<p>
        1、Nginx服务器,开启数据包转发</p>
<p>
        sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf</p>
<p>
        sysctl –p</p>
<p>
        2、配置NAT转发Iptables</p>
<p>
        iptables -t nat -I POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 192.168.2.54</p>
<p>
        此处假设阿里云服务器内网,网是192.168.2.0/24</p>
<p>
        3、添加VPC路由</p>
<p align="center">
        <img title="阿里云服务器无公网如何上网?" alt="阿里云服务器无公网如何上网?" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/a8db559b5cb9b7a5eb83fa944b0992b5.jpg" width="609"></p>
<p align="center">
        <img title="阿里云服务器无公网如何上网?" alt="阿里云服务器无公网如何上网?" align="" border="0" src="https://zhuji.jb51.net/uploads/img/202305/335bf18824ff94857c8be365ea2688ed.jpg" width="640"></p>
<p>
        4、在没有公网的IP地址服务器,可以直接ping通外网</p>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。最后,如果感觉文章对你有用,欢迎朋友关注+转发哦!</p>
頁: [1]
查看完整版本: 阿里云服务器无公网如何上网?