hwcloud user guid

前言

该文章旨在记录在使用华为云的过程中遇到的各种坑以及解决方案。

无公网 IP 的云服务器访问 Internet

操作场景

华为官方的说法如下:
为保证安全和节省公网IP资源,通常只为特定的云服务器配置公网IP,可直接访问 Internet,其他云服务器只配置私网IP,无法直接访问Internet。因此,当只配置了私网 IP的云服务器需要访问Internet,执行软件升级、给系统打补丁或者其它需求时,可选 择一台绑定了公网IP的云服务器作为代理云服务器,为其他无公网IP的云服务器提供访 问通道,正常访问Internet。
为了让无公网 IP 的云服务器访问 Internet 需要手动配置网关。

前提条件

  • 已拥有一台绑定了公网IP的云服务器作为代理云服务器。 本节操作中,以代理云服务器的操作系统是CentOS 6.5为例。
  • 代理云服务器和其他需要访问Internet的云服务器需要访问外网的网卡均处于同一网段,并且在同一安 全组内。
  • 我代理服务器的网段为192.168.2.0/24 网关为192.168.2.1
  • 代理服务器内网ip为192.168.2.254
  • 我的无公网 IP 的服务器的主网卡网段为192.168.0.0/24 网关为192.168.0.1。
  • 无公网 IP 服务器的主网卡如果与代理服务器不在一个网段,则可以再添加一个与代理服务器在一个网段的网卡。

配置代理服务器

  1. 登录管理控制台将代理服务器的网卡的“源/目的检查”选项 设置为“OFF”。
  2. 登录代理服务器,ping 下百度或谷歌测试网络连通性
  3. 查看代理云服务器的 IP 转发功能是否开启

    1
    cat /proc/sys/net/ipv4/ip_forward
    • 回显为“0”表示关闭,请执行步骤4
    • 回显为“1”表示开启,请执行步骤5
  4. 配置 IP 转发
    编辑 /etc/sysctl.conf ,将 net.ipv4.ip_forward 的值改为 “1”,并执行如下命令使配置文件生效

    1
    sysctl -p /etc/sysctl.conf
  5. 清除 IPTABLES 规则

    1
    iptables -F
  6. 配置SNAT

    1
    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 192.168.2.254
  7. 验证

    1
    iptables -t nat --list

回显类似下图,表示配置成功

  1. 保存 IPTABLES 配置
    1
    service iptables save

配置无公网 IP 的云服务器

这里直接设置静态路由表来实现,重启服务器仍然生效

  1. 配置默认网关

    1
    [root@srm-app ~]# echo "GATEWAY=192.168.2.254" >> /etc/sysconfig/network
  2. 配置静态路由表

    1
    vi /etc/sysconfig/static-routes

添加如下内容

1
2
3
4
5
any net 169.254.169.254/32 gw 192.168.2.1 eth1
any net 169.254.169.254/32 gw 192.168.0.1 eth0
any net 192.168.2.0/24 gw 192.168.2.1 eth1
any net 192.168.0.0/16 gw 192.168.0.1 eth0
any net 100.125.0.0/16 gw 192.168.0.1 eth0

其中

  • 169.254.169.254/32 为华为官方文档特别说明要添加的
  • 192.168.2.0/24 这个网段必须要添加
  • 192.168.0.0/16 添加这个网段是我所有内网服务器的网段,添加这个网段是为了让我内网之间互相访问的时候不走代理服务器
  • 100.125.0.0/16 这个网段是华为云的负载均衡的内网网段,添加这个网段是为了让负载均衡在访问服务器的时候不走代理
    1. 重启网络服务
      1
      service network restart

ping外网来验证