更新时间:2024-11-27 GMT+08:00

弹性IP Ping不通?

问题描述

用户购买弹性公网IP并绑定云服务器后,本地主机或其他云服务器无法Ping通该云服务器弹性公网IP

排查思路

以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。

如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。

图1 弹性公网IP Ping不通排查思路
表1 弹性公网IP Ping不通排查思路

可能原因

处理措施

安全组未添加ICMP规则

安全组添加ICMP规则,详细操作请参考检查安全组规则

防火墙设置了禁Ping

检查防火墙对ICMP规则的启用状态,详细操作请参考检查防火墙设置

云服务器设置了禁Ping

检查云服务器对ICMP规则的启用状态,详细操作请参考检查云服务器是否设置了禁Ping

关联了网络ACL

如果VPC关联了网络ACL,请检查“网络ACL”规则,详细操作请参考检查网络ACL规则

网络异常

检查本地网络,使用相同区域主机进行Ping测试,详细操作请参考检查网络是否正常

多网卡场景,路由信息配置不正确

扩展网卡导致网络不通现象通常是路由配置问题,详细操作请参考检查云服务器路由配置(多网卡场景)

检查安全组规则

Ping使用的是ICMP协议,请检查云服务器对应的安全组是否放通了“ICMP”规则。

  1. 登录管理控制台。
  2. 选择“计算 > 弹性云服务器”。
  3. 弹性云服务器列表,单击待变更安全组规则的弹性云服务器名称。

    系统跳转至该弹性云服务器详情页面。

  4. 选择“安全组”页签,展开安全组,查看安全组规则。
  5. 单击安全组ID。

    系统自动跳转至安全组页面。

  6. 在出方向规则页签,单击“添加规则”。添加出方向规则。
    表2 安全组规则

    方向

    类型

    协议和端口

    目的地址

    出方向

    IPv4

    ICMP:Any

    0.0.0.0/0

    0.0.0.0/0表示所有IP地址

  7. 在入方向规则页签,单击“添加规则”,添加入方向规则。
    表3 安全组规则

    方向

    类型

    协议和端口

    源地址

    入方向

    IPv4

    ICMP:Any

    0.0.0.0/0

    0.0.0.0/0表示所有IP地址

  8. 单击“确定”,完成安全组规则配置。

检查防火墙设置

如果云服务器开启了防火墙,需要检查防火墙对Ping规则是否有限制。

Linux系统云服务器
  1. 执行以下命令查看防火墙状态,以CentOS 7操作系统为例。

    firewall-cmd --state

    回显信息显示“running”代表防火墙已开启。

  1. 查看云服务器内部是否有安全规则所限制。

    iptables -L

    回显信息如图2所示说明没有ICMP规则被限制。

    图2 查看防火墙规则

    如果ICMP规则被限制,请执行以下命令启用对应规则。

    iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

    iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

Windows操作系统
  1. 登录Windows云服务器,单击桌面左下角的Windows图标,选择“控制面板 > Windows防火墙”。
  2. 单击“启用或关闭Windows防火墙”。

    查看并设置防火墙的具体状态:开启或关闭。

  3. 如果防火墙状态为“开启”,请执行4
  4. 检查防火墙对ICMP规则的启用状态。
    1. 在“Windows防火墙”页面,在左侧导航栏选择“高级设置 ”。
    2. 启用以下规则。

      入站规则:“文件和打印机共享(回显请求-ICMPv4-In)”

      出站规则:“文件和打印机共享(回显请求-ICMPv4-Out)”

      如启用了IPV6请同时启用以下规则:

      入站规则:“文件和打印机共享(回显请求-ICMPv6-In)”

      出站规则:“文件和打印机共享(回显请求-ICMPv6-Out)”

      图3 入站规则
      图4 出站规则

检查云服务器是否设置了禁Ping

Windows

使用命令行方式开启Ping设置。

  1. 打开cmd运行窗口。
  2. 执行如下命令开启Ping设置。

    netsh firewall set icmpsetting 8

Linux

检查云服务器的内核参数。
  1. 检查文件/etc/sysctl.conf中配置项“net.ipv4.icmp_echo_ignore_all”的值,0表示允许Ping,1表示禁止Ping。
  2. 允许PING设置。
    • 临时允许PING操作的命令:

      #echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all

    • 永久允许PING配置方法:

      net.ipv4.icmp_echo_ignore_all=0

检查网络ACL规则

VPC默认没有网络ACL,如果关联了网络ACL,请检查网络ACL规则。

  1. 查看云服务器对应的子网是否关联了网络ACL。

    如显示具体的网络ACL名称说明已关联网络ACL。

  2. 单击网络ACL名称查看网络ACL的状态。
  3. 若“网络ACL”为“开启”状态,需要添加ICMP放通规则进行流量放通。

    需要注意“网络ACL”的默认规则是丢弃所有出入方向的包,若关闭“网络ACL”后,其默认规则仍然生效。

检查网络是否正常

  1. 检查本地网络,使用相同区域主机进行Ping测试。

    使用在相同区域的云服务器去Ping没有Ping通的弹性公网IP,如果可以正常Ping通说明虚拟网络正常,请排除本地网络故障后重新Ping测试。

  2. 检查是否链路故障。

    链路拥塞、链路节点故障、服务器负载高等问题均可能引起执行Ping命令时出现丢包或时延过高的问题。

检查云服务器路由配置(多网卡场景)

一般操作系统的默认路由优先使用主网卡,如果出现使用扩展网卡导致网络不通现象通常是路由配置问题。

  • 如果云服务器配置了多网卡,请确认云服务器内默认路由是否存在。
    1. 登录云服务器,执行如下命令,查看是否存在默认路由。

      ip route

      图5 查看默认路由
    2. 若没有该路由,执行如下命令,添加默认路由。

      ip route add default via XXXX dev eth0

      XXXX表示网关IP。

  • 如果云服务器配置了多网卡,且弹性公网IP绑定在非主网卡上,需要在云服务器内部配置策略路由来实现非主网卡的通信。