无法ping通ECS实例的原因较多,您可以参考本文进行排查。
问题现象
本地客户端无法ping通目标ECS实例公网IP,例如:
-
本地客户端为Linux系统,ping目标ECS实例公网IP时无响应,如下所示:
-
本地客户端为Windows系统,ping目标ECS实例公网IP时提示 请求超时 错误,如下所示:
问题原因
在确保本地网络正常的情况下(即您可以正常访问其他网站或可以ping通其他网站),无法ping通目标ECS实例公网IP可能有以下原因:
|
可能原因 |
排查方案 |
|
ECS实例未处于 运行中 状态 |
|
|
ECS实例的安全组错误 |
|
|
ECS实例防火墙配置错误 |
|
|
ECS实例CPU使用率或带宽使用率过高 |
|
|
ECS实例存在黑洞 |
|
|
ECS实例被恶意入侵 |
|
|
ECS实例为中国香港或海外实例 |
|
|
某个客户端ping不通 |
|
|
域名未备案或域名解析异常 |
检查ECS实例状态
只有当ECS实例状态为 运行中 时,才能对外提供业务访问。检查步骤如下:
-
登录 ECS管理控制台 。
-
在左侧导航栏,选择 实例与镜像 > 实例 。
-
在顶部菜单栏左上角处,选择地域。
-
在实例列表页面,检查目标实例的状态。
-
目标实例不是 运行中 状态,请根据实例状态,选择对应的解决方案。更多信息,请参见 实例的生命周期 。
-
目标实例是 运行中 状态,请执行 检查ECS实例安全组规则 。
-
检查ECS实例安全组规则
ECS实例的安全组中默认包含开放ICMP协议的规则,即允许ping通ECS实例,若该规则被删除,则无法ping通ECS实例。您可以通过以下步骤进行排查:
- 登录 ECS管理控制台 。
- 在左侧导航栏,选择 。
-
在顶部菜单栏左上角处,选择地域。
-
在ECS实例列表页面,单击目标ECS实例ID。
-
在ECS实例详情页面,单击 安全组 页签。
-
在 安全组列表 页签下,单击安全组ID。
-
在安全组规则页面,查看入方向规则是否存在ICMP协议的安全组规则。
-
不存在ICMP协议的安全组规则,请添加以下入方向安全组规则。具体操作,请参见 添加安全组规则 。
授权策略 选择 允许 , 优先级 保持默认, 协议类型 选择 全部ICMP(IPv4) , 端口范围 为
-1/-1, 授权对象 :建议仅允许特定的IP访问。 -
存在ICMP协议的安全组规则,请执行 检查ECS实例防火墙配置 。
-
检查ECS实例防火墙配置
请根据ECS实例操作系统,选择相应的检查方式。
检查Linux系统内核参数和防火墙配置
Linux系统是否允许ping由内核参数
icmp_echo_ignore_all
和防火墙设置共同决定,任何一个禁止,都会无法ping通。
检查Linux系统内核参数
-
使用VNC远程连接ECS实例。
具体操作,请参见 使用VNC登录实例 。
-
执行如下命令,查看内核参数
icmp_echo_ignore_all值。cat /proc/sys/net/ipv4/icmp_echo_ignore_all-
若回结果为0,表示允许所有的ICMP请求,请执行 检查Linux防火墙配置 。
-
若返回结果为1,表示禁止所有的ICMP请求,请执行步骤 3 。
-
-
执行如下命令,修改内核参数
icmp_echo_ignore_all值为0允许所有ICMP请求。-
临时允许
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all -
永久允许
echo net.ipv4.icmp_echo_ignore_all=0 >> /etc/sysctl.conf sysctl -p
-
检查Linux防火墙配置
-
使用VNC远程连接ECS实例。
具体操作,请参见 使用VNC登录实例 。
-
执行以下命令,查看防火墙规则。
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
-
检查Windows防火墙配置
本操作以Windows Server 2012为例,其他版本的Windows Server系统操作类似。
-
使用VNC远程连接ECS实例。
具体操作,请参见 使用VNC登录实例 。
-
单击左下角的
图标,打开服务器管理。
-
选择右上角的 工具 > 高级安全 Windows防火墙 。
-
在 高级安全 Windows防火墙 页面,分别查看 入站规则 和 出站规则 中ICMP相关协议是否被禁止。
-
如果ICMP相关协议被禁止,如下图所示,请开启该规则。
-
如果ICMP相关协议未禁止,请执行 检查ECS实例CPU使用率或带宽使用率 。
-
检查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备案 。
-
如果域名已备案,请检查域名解析是否失效。更多信息,请参见 解析生效测试方法 和 域名解析不生效的排查思路 。
更多域名或网站无法访问排查方法,请参见 域名或网站无法访问如何排查? 。
相关文档