更新时间:2024-07-31 GMT+08:00
分享

弹性公网IP Ping不通?

问题描述

用户购买HECS后,无法Ping通弹性公网IP,或者云服务器Ping不通公网。

排查思路

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

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

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

可能原因

处理措施

安全组未添加ICMP规则

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

防火墙设置了禁Ping

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

云服务器设置了禁Ping

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

关联了网络ACL

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

网络异常

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

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

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

域名没有备案或者域名无法解析

域名无法Ping通,可能是域名没有备案或者域名无法解析,详细操作请参考检查域名解析(域名Ping不通场景)

检查安全组规则

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

  1. 在HECS控制台云服务器列表,单击待变更安全组规则的云服务器名称。

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

  2. 选择“安全组”页签,展开安全组,查看安全组规则是否包含“ICMP”协议规则,以及源地址是否包含您的IP。

如果未包含“ICMP”规则,添加“ICMP”规则。

表2 安全组规则

方向

类型

协议和端口

源地址

入方向

IPv4

ICMP:全部

0.0.0.0/0

0.0.0.0/0表示所有IP地址

检查防火墙设置

如果云服务器开启了防火墙,需要检查防火墙对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。

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

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

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

检查网络是否正常

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

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

  2. 检查是否链路故障。

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

    具体检查操作请参考“ping不通或丢包时如何进行链路测试?”。

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

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

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

      ip route

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

      ip route add default via XXXX dev eth0

      XXXX表示网关IP。

检查域名解析(域名Ping不通场景)

如果弹性公网IP可以Ping通,域名无法Ping通,可能是域名没有备案或者域名解析的问题导致。

  1. 检查域名备案。

    备案是中国大陆的一项法规,网站的域名和服务器IP需要进行备案,备案成功后您的域名才可以指向服务器开通访问。

    • 如果您使用中国大陆节点服务器提供互联网信息服务,需要先在服务器提供商处提交备案申请,备案成功后域名才可以指向服务器开通访问。如何备案?
    • 如果您使用的是中国大陆地区以外的服务器(包括中国港澳台及其他国家、地区)提供互联网信息服务,无需备案。
  2. 检查域名解析。

    如果域名已备案,但未正确配置域名解析也可能会导致域名无法Ping通。

    您可以DNS服务控制台查看域名解析详情。

  3. 检查DNS服务器配置。

    如果ping 域名显示找不到主机可能是DNS服务器速度慢,导致的访问卡顿,建议您参考ECS案例:弹性云服务器访问中国大陆外网站时加载缓慢怎么办?进行优化。

相关文档