前言
该文章旨在记录在使用华为云的过程中遇到的各种坑以及解决方案。
无公网 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 服务器的主网卡如果与代理服务器不在一个网段,则可以再添加一个与代理服务器在一个网段的网卡。
配置代理服务器
- 登录管理控制台将代理服务器的网卡的“源/目的检查”选项 设置为“OFF”。
- 登录代理服务器,ping 下百度或谷歌测试网络连通性
查看代理云服务器的 IP 转发功能是否开启
1cat /proc/sys/net/ipv4/ip_forward配置 IP 转发
编辑 /etc/sysctl.conf ,将 net.ipv4.ip_forward 的值改为 “1”,并执行如下命令使配置文件生效1sysctl -p /etc/sysctl.conf清除 IPTABLES 规则
1iptables -F配置SNAT
1iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 192.168.2.254验证
1iptables -t nat --list
回显类似下图,表示配置成功
- 保存 IPTABLES 配置1service iptables save
配置无公网 IP 的云服务器
这里直接设置静态路由表来实现,重启服务器仍然生效
配置默认网关
1[root@srm-app ~]# echo "GATEWAY=192.168.2.254" >> /etc/sysconfig/network配置静态路由表
1vi /etc/sysconfig/static-routes
添加如下内容12345any net 169.254.169.254/32 gw 192.168.2.1 eth1any net 169.254.169.254/32 gw 192.168.0.1 eth0any net 192.168.2.0/24 gw 192.168.2.1 eth1any net 192.168.0.0/16 gw 192.168.0.1 eth0any 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 这个网段是华为云的负载均衡的内网网段,添加这个网段是为了让负载均衡在访问服务器的时候不走代理
- 重启网络服务1service network restart
- 重启网络服务
ping外网来验证