You need to enable JavaScript to run this app.
导航

配置SNAT服务器

最近更新时间2023.11.07 08:09:01

首次发布时间2021.07.09 13:30:52

操作场景

当您选择云服务器实例、辅助网卡作为下一跳时,需要在作为下一跳的云服务器实例上部署SNAT服务,为其配置路由转发能力,使VPC内其他没有绑定公网IP的云服务器实例可以通过它访问Internet。

SNAT服务器与公网NAT网关的区别

SNAT服务器与公网NAT网关都能够为私有网络内的云服务器实例提供网络地址转换服务,使多个云服务器实例共享公网IP访问Internet。
区别在于,SNAT服务器是在某台您已购买且绑定了公网IP的云服务器实例上搭建SNAT服务,而公网NAT网关是由火山引擎提供的可视化SNAT配置,无需您单独购买云服务器搭建SNAT,具有操作简单、灵活易用、支持多种网络连接数规格等特点,您可以参考什么是公网NAT网关了解更多。

前提条件

  • 待部署SNAT的云服务器实例操作系统为Linux操作系统。
  • 云服务器实例的主网卡或辅助网卡已绑定公网IP,且可以成功访问外网,如无法访问,请参见配置网卡路由确认网卡路由配置正确。

操作步骤

  1. 登录云服务器控制台
  2. 在顶部导航栏,选择目标资源所属的项目和地域。
  3. 在云服务器实例列表中单击目标云服务器右侧的“远程连接”按钮。
  4. 选择登录方式,单击“立即登录”按钮。
    如需使用ECS Teminal方式登录,请确认实例关联的安全组已开启TCP 22端口,否则将无法成功登录。
  5. 执行以下命令,查看IP转发功能是否已开启,回显为1表示已开启,0表示未开启,默认为0。
    cat /proc/sys/net/ipv4/ip_forward
    如未开启,请执行以下命令开启IP转发功能。
    • 临时开启:sysctl -w net.ipv4.ip_forward=1
    • 永久开启(推荐,云服务器重启仍保留配置):
      1. 执行命令vi /etc/sysctl.conf,打开配置文件sysctl.conf。
      2. i键进入编辑模式,修改net.ipv4.ip_forward = 1
      3. esc键退出编辑模式,然后按:wq保存修改并退出。
      4. 执行sysctl -p /etc/sysctl.conf命令,使配置生效。
  6. 执行以下命令配置SNAT。
    以下配置表示来自子网网段 subnet-cidr 内的所有流量均通过ECS实例 nat-instance-ipeth0 网卡转发。
    • 临时配置:
      iptables -t nat -A POSTROUTING -o ${eth0} -s ${subnet-cidr} -j SNAT --to ${nat-instance-ip}
    • 永久配置(推荐):
      1. 执行命令vi /etc/rc.local,打开配置文件rc.local。
      2. i键进入编辑模式,添加iptables -t nat -A POSTROUTING -o ${eth0} -s ${subnet-cidr} -j SNAT --to ${nat-instance-ip}
      3. esc键退出编辑模式,然后按:wq保存修改并退出。
      4. 执行chmod +x /etc/rc.local命令,使配置生效。
  7. 执行以下命令,查看SNAT配置成功。
    iptables -t nat --list
    回显中包含SNAT相关信息,则表示SNAT配置成功,如下图所示。
  8. 若配置后,网络仍不通,请检查您的安全组是否放通了对应流量(安全组的流量控制属于系统子网间路由,优先级高于自定义路由)。
    如未放通,请参考添加安全组规则放通相应流量。