You need to enable JavaScript to run this app.
导航
配置SNAT服务器
最近更新时间:2024.01.09 07:24:08首次发布时间:2021.07.09 13:30:52

本文为您展示如何自建SNAT服务器,实现多台服务器通过一台指定的云服务器访问公网。

背景信息

某企业自建一台SNAT服务器,使所有的未绑定公网IP的云服务器通过该云服务器访问公网。

说明

除了自建SNAT服务器外,您也可以使用公网NAT网关,公网NAT网关具有跨可用区容灾、可视化、便于管理等等优势,更多详情请参见 什么是公网NAT网关

前提条件

已创建一个VPC,并为其创建两个子网,每个子网中分别创建一台Linux系统的云服务器,VPC、子网和云服务器的信息与上图保持一致。

说明

请勿为ECS-A的主网卡开启源/目的地址检查,若开启,则其无法为ECS-B转发流量。更多详情请参考 配置源/目的地址检查

操作步骤

配置VPC路由

  1. 登录 路由表控制台
  2. 在顶部导航栏,选择目标地域和项目,本文示例“华北2(北京)”和“default”。
  3. 在路由表列表,单击目标系统路由表名称,进入路由表详情页面。
  4. 选择“路由条目 > 自定义路由”页签,单击“添加路由条目”按钮,弹出添加路由条目窗口。
  5. 添加目标网段为0.0.0.0/0,下一跳为ECS-A的自定义路由。
  6. 单击“确定”按钮,完成配置。

配置SNAT服务器

配置IP转发

  1. 远程登录云服务器ECS-A,详细请参见 登录实例
  2. 执行以下命令,打开配置文件sysctl.conf。
    vi /etc/sysctl.conf
  3. i键进入编辑模式,新增以下内容,开启IP转发功能。
    net.ipv4.ip_forward = 1
  4. esc键退出编辑模式,然后按:wq保存修改并退出。
  5. 执行以下命令,使配置生效。
    sysctl -p /etc/sysctl.conf
配置SNAT规则
  1. 在ECS-A的命令行,执行以下命令,打开配置文件rc.local。
    vi /etc/rc.local
  2. i键进入编辑模式,新增以下内容,配置SNAT规则。
    iptables -t nat -A POSTROUTING -o <网卡接口> -s <SNAT规则的网段> -j SNAT --to <SNAT服务器的主私网IP>
    文本示例:
    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 192.168.1.11
  3. esc键退出编辑模式,然后按:wq保存修改并退出。
  4. 执行以下命令,为rc.local文件授予执行权限。
    chmod +x /etc/rc.local
  5. 执行reboot命令,重启云服务器。
  6. 执行以下命令,查看SNAT配置成功。
    iptables -t nat --list
    回显中包含SNAT相关信息,则表示SNAT配置成功,如下图所示。

验证

  1. 远程登录云服务器ECS-B,详细请参见 登录实例
  2. 执行以下命令,测试是否可以访问公网。
    ping 8.8.8.8
    回显如下图。表示ECS-B可以通过ECS-A部署的SNAT服务访问公网。
  3. 若配置后,网络仍不通,请检查您的安全组、网络ACL是否放通了对应流量。