国际阿里云:无法ping通ECS实例公网IP的排查方法!!!

无法ping通ECS实例的原因较多,您可以参考本文进行排查。

问题现象

本地客户端无法ping通目标ECS实例公网IP,例如:

  • 本地客户端为Linux系统,ping目标ECS实例公网IP时无响应,如下所示:

  • 本地客户端为Windows系统,ping目标ECS实例公网IP时提示请求超时错误,如下所示:

问题原因

在确保本地网络正常的情况下(即您可以正常访问其他网站或可以ping通其他网站),无法ping通目标ECS实例公网IP可能有以下原因:

|---------------------|---------------------|
| 可能原因 | 排查方案 |
| ECS实例未处于运行中状态 | 检查ECS实例状态 |
| ECS实例的安全组错误 | 检查ECS实例安全组规则 |
| ECS实例防火墙配置错误 | 检查ECS实例防火墙配置 |
| ECS实例CPU使用率或带宽使用率过高 | 查看ECS实例CPU使用率或带宽使用率 |
| ECS实例存在黑洞 | 查看是否存在黑洞 |
| ECS实例被恶意入侵 | 检查云安全中心是否存在安全告警 |
| ECS实例为中国香港或海外实例 | 检查您的实例是否为中国香港或海外实例 |
| 某个客户端ping不通 | 检查是否为某个客户端环境ping不通 |
| 域名未备案或域名解析异常 | 检查域名是否备案或域名解析配置 |

检查ECS实例状态

只有当ECS实例状态为运行中时,才能对外提供业务访问。检查步骤如下:

  1. 登录ECS管理控制台。

  2. 在左侧导航栏,选择实例与镜像>实例。

  3. 在顶部菜单栏左上角处,选择地域。

  4. 在实例列表页面,检查目标实例的状态。

    • 目标实例不是运行中状态,请根据实例状态,选择对应的解决方案。更多信息,请参见实例的生命周期。

    • 目标实例是运行中状态,请执行检查ECS实例安全组规则。

检查ECS实例安全组规则

ECS实例的安全组中默认包含开放ICMP协议的规则,即允许ping通ECS实例,若该规则被删除,则无法ping通ECS实例。您可以通过以下步骤进行排查:

  1. 登录ECS管理控制台。

  2. 在左侧导航栏,选择实例与镜像 > 实例。

  3. 在页面左侧顶部,选择目标资源所在的地域。

  4. 在ECS实例列表页面,单击目标ECS实例ID。

  5. 在ECS实例详情页面,单击安全组页签。

  6. 在安全组列表页签下,单击安全组ID。

  7. 在安全组规则页面,查看入方向规则是否存在ICMP协议的安全组规则。

    • 不存在ICMP协议的安全组规则,请添加以下入方向安全组规则。具体操作,请参见添加安全组规则。

      授权策略选择允许,优先级保持默认,协议类型选择全部ICMP(IPv4),端口范围为-1/-1,授权对象:建议仅允许特定的IP访问。

    • 存在ICMP协议的安全组规则,请执行检查ECS实例防火墙配置。

检查ECS实例防火墙配置

请根据ECS实例操作系统,选择相应的检查方式。

检查Linux系统内核参数和防火墙配置

检查Windows防火墙配置

Linux系统是否允许ping由内核参数icmp_echo_ignore_all和防火墙设置共同决定,任何一个禁止,都会无法ping通。

检查Linux系统内核参数

  1. 使用VNC远程连接ECS实例。

    具体操作,请参见使用VNC登录实例。

  2. 执行如下命令,查看内核参数icmp_echo_ignore_all值。

    复制代码
    cat /proc/sys/net/ipv4/icmp_echo_ignore_all
    • 若回结果为0,表示允许所有的ICMP请求,请执行检查Linux防火墙配置。

    • 若返回结果为1,表示禁止所有的ICMP请求,请执行步骤3。

  3. 执行如下命令,修改内核参数icmp_echo_ignore_all值为0允许所有ICMP请求。

    1. 临时允许

      复制代码
      echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
    2. 永久允许

      复制代码
      echo net.ipv4.icmp_echo_ignore_all=0 >> /etc/sysctl.conf
      sysctl -p

检查Linux防火墙配置

  1. 使用VNC远程连接ECS实例。

    具体操作,请参见使用VNC登录实例。

  2. 执行以下命令,查看防火墙规则。

    复制代码
    iptables -L
    • 若返回如下结果,表示ICMP对应规则未被禁止,请执行检查ECS实例CPU使用率或带宽使用率。

      复制代码
      Chain INPUT (policy ACCEPT)
      target     prot opt source               destination         
      ACCEPT     icmp --  anywhere             anywhere             icmp echo-request        
      Chain OUTPUT (policy ACCEPT)
      target     prot opt source               destination  
      ACCEPT     icmp --  anywhere             anywhere             icmp echo-reque
    • 若返回结果ICMP对应规则被禁止,请执行以下命令,启用对应规则。

      复制代码
      #Chain INPUT
      iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
      #Chain OUTPUT
      iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

检查ECS实例CPU使用率或带宽使用率

检查外网相关资源使用率,如公网带宽使用率达到100%等。

  • 突发性能实例性能约束模式,当CPU使用率达到100%时可能导致无法ping通或ping丢包,具体信息,请参见突发性能实例概述。

  • EIP或固定公网IP资源被占满时,可能会导致ping操作被限速丢弃而无法ping通。

检查是否存在黑洞

请检查是否收到黑洞通知,黑洞期间无法远程连接、无法ping通ECS实例。

更多信息,请参见阿里云黑洞策略。

检查云安全中心是否存在安全告警

请检查云安全中心是否有异常的安全告警通知,被恶意入侵也会有可能导致ECS实例无法ping通。更多信息,请参见什么是云安全中心。

检查您的实例是否为中国香港或海外实例

在中国内地ECS实例访问中国香港或海外ECS实例时,链路质量会有可能受到运营商线路影响,建议过一段时间再次尝试。

检查是否为某个客户端环境ping不通

如果只有某个客户端环境ping不通,其他客户端环境可以ping通。建议在客户端和ECS实例中进行链路测试的。具体操作,请参见使用ping命令丢包或不通时的链路测试方法。

检查域名是否备案或域名解析配置

如果可以ping通公网IP,但是ping不通域名,可能是域名没有备案或者域名解析异常导致。

根据工信部要求,域名解析至中国内地服务器必须先完成网站备案,才能正常开通网站访问。因此,网站在未取得备案号之前不允许开通访问,即未备案成功的网站均不能对外开通Web服务,否则将被阿里云监测系统识别并阻断网站服务。

  • 如果域名未备案,请先进行备案。更多信息,请参见什么是ICP备案。

  • 如果域名已备案,请检查域名解析是否失效。更多信息,请参见解析生效测试方法和域名解析不生效的排查思路。

更多域名或网站无法访问排查方法,请参见域名或网站无法访问如何排查?。

相关推荐
正在走向自律1 小时前
阿里云ESC服务器一次性全部迁移到另一个ESC
服务器·阿里云·云计算
gywl2 小时前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
WTT00112 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
杨德杰3 小时前
QT网络(一):主机信息查询
网络·qt
007php0073 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
yang_shengy3 小时前
【JavaEE】网络(6)
服务器·网络·http·https
zquwei5 小时前
SpringCloudGateway+Nacos注册与转发Netty+WebSocket
java·网络·分布式·后端·websocket·网络协议·spring
Aimin20225 小时前
路由器做WPAD、VPN、透明代理中之间一个
网络
群联云防护小杜5 小时前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
爱码小白6 小时前
网络编程(王铭东老师)笔记
服务器·网络·笔记