无法ping通ECS实例公网IP的排查方法

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

问题现象

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

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

    2023-05-28_16-53-11..png

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

    2023-05-28_16-52-16..png

使用自助问题排查工具

阿里云的自助问题排查工具可以帮助您快速检测安全组配置、实例内部防火墙以及常见应用端口监听状态,并给出明确的诊断报告。

单击进入自助问题排查页面,并切换至目标地域。

image

如果自助问题排查工具未能定位您的问题,请继续下面的步骤进行手动排查。

手动排查

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

可能原因

排查方案

ECS实例未处于运行中状态

检查ECS实例状态

ECS实例网卡异常

检查ECS实例网卡状态

VPC启用了IPv4网关集中控制模式后路由配置异常

检查实例所在VPC配置的IPv4网关

交换机网络ACL未放通ICMP流量

检查ECS实例所在交换机的网络ACL

安全组未放通ICMP流量

检查ECS实例关联的安全组规则

ECS实例防火墙丢弃入站ICMP请求

检查ECS实例防火墙配置

ECS实例资源瓶颈导致网络通信异常

查看ECS实例CPU或带宽等资源使用率

运营商跨境网络波动导致公网访问异常

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

域名未备案或域名解析异常

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

客户端或者通信链路上某个中间节点异常

客户端至ECS实例的双向链路诊断

ECS实例存在黑洞

查看是否存在黑洞

ECS实例被恶意入侵

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

检查ECS实例状态

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

  1. 访问ECS控制台-实例

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

  3. 找到目标ECS实例,点击实例ID进入实例详情页,检查实例的状态。

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

检查ECS实例网卡状态

ECS实例的网卡状态正常是确保实例能够正常通信(包括被ping通、被远程连接)的基础,您可以通过VNC连接实例后参照以下方式检查实例网卡状态。

  1. 检查网卡是否启用

    • Linux实例:执行ip a命令,正常可以看到主网卡eth0的连接信息,且状态为state UP

      image

      • 如果实例主网卡eth0状态异常,您可以执行sudo ifup eth0sudo ip link set eth0 up重新启用网卡。

      • 如果您为实例配置了辅助网卡,部分操作系统镜像可能不会自动识别,需要在实例内部配置生效后才可以正常通信(如为没有配置生效的辅助网卡绑定EIP后,无法正常公网通信)。详细信息,请参见配置Linux操作系统识别网卡

    • Windows实例:如果网卡驱动出现异常,则可能导致网卡异常,进而导致无法正常通信。

      解决Windows系统网卡或驱动异常导致实例无法正常通信的方案

      说明

      本操作以Windows Server 2016版本为例,其他版本可能略有差异,请以实际显示为准。

      1. 通过VNC连接Windows实例

      2. 右键单击任务栏右下角screenshot_2025-03-26_15-15-50图标,选择打开网络和共享中心

      3. 单击更改适配器设置,查看该网卡是否启用。

        • 网卡已禁用,右键单击网卡名称,选择启用(A),确认Windows实例的远程连接恢复正常。

        • 网卡已启用,但仍然不可用,继续执行下一步。

      4. 打开运行窗口,输入regedit,单击确定

      5. 注册表编辑器页面,依次选择HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Class > {4d36e972-e325-11ce-bfc1-08002be10318},确认右侧是否存在以下信息,如果不存在,在空白处右键单击新建(N)添加即可。

        重要

        更改注册表编辑器信息后,需要重启系统使之生效。

        • 名称Installer32

        • 类型REG_SZ

        • 数据NetCfgx.dll,NetClassInstaller

      6. 打开运行窗口,输入devmgmt.msc,单击确定

      7. 设备管理器页面的网络适配器下,右键单击网卡设备名称,选择更新驱动程序软件(p)...

        2025-03-26_16-03-56

      8. 在弹出的对话框中,单击自动搜索更新的驱动程序软件(S),更新完成后单击关闭

      9. 再次确认pingECS实例的公网IP。

  2. 确认IP地址、子网掩码、网关配置正确(需与实际分配的一致)。

    ECS实例通过公网IP和私网IP映射实现公网通信,如果私网IP配置异常,会导致公网无法正常通信。实例的私网IP地址需要是分配的有效IP

    • Linux实例:执行ip a命令,正常可以看到网卡对应的主私网IPv4地址。

      image

      • 建议您保持实例默认的DHCP自动分配IP地址,当实例发生网络变化(如更换VPC、更换IP地址)时,内部会自动更新。详细信息,请参见如何在Linux镜像中配置网络为DHCP

      • 如果您是在实例内部手动静态配置IP地址,请确保信息与实际分配的一致,否则也会导致网络通信异常。详细信息,请参见Linux实例网卡配置文件IP与控制台不一致问题处理

      • 默认情况下网卡只自动识别主私网IP地址,如果您为实例分配了辅助私网IP地址,需要在实例内部配置,否则无法生效,如您将该辅助私网IP地址绑定了EIP,也会无法正常通信。详细信息,请参见配置操作系统识别辅助私网IP地址

    • Windows实例:查看并确认实例内部网络连接信息。

      Windows 2022为例查看

      1. 通过VNC连接Windows实例

      2. 打开网络和共享中心。

      3. 单击更改适配器设置

      4. 双击当前主网卡网络名称以太网,然后在以太网状态对话框中单击属性

        image

      5. 以太网属性对话框中,双击Internet 协议版本4(TCP/IPv4)

        image

      6. Internet 协议版本4(TCP/IPv4)属性对话框中,选择自动获得IP地址(O)

        image

      7. 如果选择使用下面的IP地址,请确保信息与控制台分配的一致。

        image

检查实例所在VPC配置的IPv4网关

默认情况下VPC内的资源通过绑定公网IP即可与公网直接通信,如果启用IPv4网关,则所有出入VPC的公网流量都会受IPv4网关统一管控,且网络策略的变更会影响VPC内所有实例。

比如您激活IPv4网关后,删除了默认的路由条目,或者在删除IPv4网关时候选择了私网模式,都可能会导致VPC下所有资源(包括ECS实例)公网访问异常。您可以参考如下步骤进行确认并修复:

  1. 确认实例所在VPC是否处于IPv4网关集中控制模式。

    查看实例所在VPCIPv4公网访问模式。

    1. 访问ECS控制台-实例

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

    3. 实例页面,找到目标实例,单击实例ID进入实例详情页面。

    4. 配置信息部分,点击专有网络实例ID,进入专有网络控制台。

    5. 基本信息页面,如果当前VPC显示有IPv4网关集中控制信息,则表示该VPC下所有资源,包括您的ECS实例的公网访问,均受此网关策略管控。

      image

    如果您的VPC目前并未受IPv4网关集中管控,则无需进行此项检查。

  2. 如果您需要保留此IPv4网关统一管控策略,则需要检查网关路由配置是否正确。

    • 保证ECS实例所在交换机对应的路由表中,存在指向IPv4网关的路由条目。

      IPv4网关激活时,系统通过为您选择的交换机路由表添加一条0.0.0.0/0的默认路由指向IPv4网关,使得路由表关联的交换机具备公网访问能力。

      如果当前路由表已经存在目标网段为0.0.0.0/0的默认路由,则无法再添加IPv4网关的默认路由,或者如果您手动删除了该默认路由条目,均会导致该交换公网通信异常。

      您可以通过如下步骤确认并保证路由条目正常配置:

      1. 访问ECS控制台-实例

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

      3. 实例页面,找到目标实例,单击实例ID进入实例详情页面。

      4. 配置信息部分,点击虚拟交换机ID,进入专有网络控制台。

      5. 点击路由管理,正常会看到在IPv4网关激活时候系统自动添加的一条自定义路由条目。

        image

        如果您之前删除了,则点击路由表ID,在路由表页面添加上面图中路由条目即可。

        image

        如下所示添加路由条目:

        image

    • 如果您配置了其他自定义路由条目,确保路由链路正确。

  3. 如果您不再需要IPv4网关统一管控,则建议您以公网模式删除该IPv4网关

    以公网模式删除IPv4网关

    1. 登录IPv4网关控制台,顶部菜单栏选择ECS所在地域。

    2. 查找ECS所在VPC关联的IPv4网关。

      • IPv4网关存在:找到目标IPv4网关后,选择公网模式删除。

        重要

        选择私网模式删除后,VPC内部所有资源将全部无法与公网互通。请谨慎操作!

        image

        删除后,该VPC页面会显示IPv4公网访问模式公网直接访问,ECS实例公网通信不再受IPv4网关管控。

        image

      • IPv4网关不存在:如果您没有找到VPC关联的IPv4网关,可能您之前已经以私网模式删除了该网关

        • 方案一:重新为ECS所属VPC创建IPv4网关,然后再以公网模式删除。详细信息,请参见创建IPv4网关

        • 方案二:如果实例配置较简单(如不涉及辅助网卡、辅助私网IP等),您也可以尝试直接更换实例的VPC,将实例更换到一个没有启用IPv4网关的VPC下。详细信息,请参见更换ECS实例的VPC

关于IPv4网关的详细介绍,请参见IPv4网关

检查ECS实例所在交换机的网络ACL

网络ACL是专有网络VPC中的网络访问控制功能。如果您为ECS实例所在交换机绑定了网络ACL规则,则出入ECS的网络流量会受网络ACL规则限制。您可以参考如下步骤进行确认:

  1. 登录专有网络管理控制台

  2. 在左侧导航栏,选择访问控制 > 网络ACL

  3. 在页面左侧顶部,选择ECS实例所在的地域。

  4. 在网络ACL列表中,查找ECS实例所在VPC是否存在对应的网络ACL。

    • 不存在或未绑定ECS实例所在交换机:则您无需进行此检查项。

    • 存在且绑定ECS实例所在交换机:您需要保证ECS实例所在VPC下创建的网络ACL规则中没有添加您测试的客户端IP拒绝策略,保证对您期望的源地址、协议类型(ping需要开放ICMP网络控制报文协议)、端口范围等添加了允许策略

      • 默认情况下交换机绑定网络ACL后,会自动添加下图所示允许所有流量出入方向的规则,如果您删除该规则,则访问受限。

        入方向规则如图所示:

        image

        出方向规则如图所示:

        image

      • 请您根据实际业务需要,按照最小范围开放原则配置源/目的地址及协议类型(ping需要开放ICMP网络控制报文协议),尽量避免全开(慎用::/0 或者 0.0.0.0/0)以免引发安全问题。详细信息,请参见创建和管理网络ACL

检查ECS实例安全组规则

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

  1. 访问ECS控制台-安全组

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

  3. 找到ECS实例关联的目标安全组,在操作列中,单击管理规则

  4. 在安全组访问规则处,查看入方向规则是否存在ICMP协议的安全组规则。

    image

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

    授权策略选择允许优先级保持默认,协议选择所有ICMP-IPv4端口-1/-1访问来源:建议仅允许特定的IP访问。

  5. 根据安全组类型确认出方向规则。

    • 普通安全组:普通安全组出方向默认允许所有访问,即从安全组内 ECS 访问外部都是放行的,您无需配置相关规则。

      image

    • 企业级安全组:出方向默认禁止所有访问,即从安全组内 ECS 访问外部都是禁止的。如果安全组类型为企业级安全组,需要保证出方向同样存在允许ICMP协议流量的规则。详细信息,请参见普通安全组与企业级安全组

      image

检查ECS实例防火墙配置

如果服务器开启了防火墙,并设置了屏蔽外界访问的规则,那么在远程连接该服务器时,可能会导致访问失败。请根据ECS实例操作系统,选择相应的检查方式。

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

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对应规则未被禁止。

      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

检查Windows防火墙配置

本操作以Windows Server 2012为例,其他版本的Windows Server系统操作类似。

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

    具体操作,请参见通过VNC连接实例

  2. 单击左下角的服务器管理..png图标,打开服务器管理。

  3. 选择右上角的工具>高级安全 Windows防火墙

    2023-05-28_20-21-16..png

  4. 高级安全 Windows防火墙页面,分别查看入站规则出站规则ICMP相关协议是否被禁止。

    如果ICMP相关协议被禁止,如下图所示,请开启该规则。

    2023-05-28_20-31-12..png

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

ECS实例的高CPU使用率、带宽满载、内存耗尽或磁盘I/O过载等资源瓶颈,可能直接或间接引发公网IP通信异常(如无法被ping通)。

CPU或内存资源枯竭时,系统协议栈进程因调度延迟可能导致ICMP响应超时或被内核丢弃;带宽持续饱和会直接阻塞数据包的收发,使ping请求无法完成传输;而极端磁盘I/O负载可能引发系统级僵死(如进程D状态阻塞),间接拖垮网络服务的响应能力。尤其在混合型高负载场景中(例如突发流量同时触发CPU与带宽过载,或内存不足引发频繁Swap交换并加剧磁盘I/O压力),多资源瓶颈的叠加效应会显著放大网络不可达风险。

您可以通过健康诊断云监控等查看实例的带宽、内存、CPU等指标,进一步结合不同的工具(如Linuxsar、atop,Windows的资源监视器)定位异常进程,并参考解决方案针对性释放资源或弹性扩容,详细信息,请参见实例负载高问题排查及解决方案

检查是否存在黑洞

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

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

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

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

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

由于不同地区运营商之间的国际出口带宽资源有限,且跨区域流量需经过多级路由中转,容易因线路拥塞、BGP路由绕行或策略性限速导致高延迟、丢包及抖动。如果您是在中国内地ECS实例访问中国香港或海外ECS实例时,链路质量会有可能受到运营商线路影响,建议过一段时间再次尝试。

建议您遵循就近原则,境内客户访问部署在中国内地地域(如华北、华东)的服务器,境外客户就近接入海外节点(如中国香港、新加坡),保障访问稳定性,同时满足多地数据合规要求。

如果您的业务强依赖跨境通信,可通过全球加速GA优化路由路径,或者使用云企业网CEN构建跨境内网专线,实现低延迟互通。

客户端至ECS实例的双向链路诊断

若仅特定客户端环境无法pingECS实例(其他客户端正常),建议同时从客户端和ECS实例双向发起链路测试,以定位中间网络节点或本地配置异常。具体操作,请参见使用MTR工具进行网络链路分析

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

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

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

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

相关文档