Article / 文章中心

Linux系统的ECS中没有禁ping却ping不通的解决方法

发布时间:2021-04-22 点击数:497

问题描述

服务器系统内核没有禁ping的情况下,客户端ping服务器ping不通。

问题原因

服务器系统内部防火墙策略对客户端进行了ban设置。

解决方案

开始排查

  1. 登录服务器,执行以下命令,进行抓包准备。
    tcpdump -i eth0 host [$Eth0_IP] | grep ICMP
    说明:[$Eth0_IP]为eth0网卡的IP地址。
  2. 登录客户端,执行以下命令,测试客户端和服务器的连通性。
    ping [$Server_IP]
    说明:[$Server_IP]为服务器的公网IP地址。

排查结果分析

  1. 在服务器中,出现以下抓包结果,可以看到客户端以5秒一次的频率进行数据包的发送动作,但是服务器端没有发出响应包。
  2. 分析可能是服务器的防火墙或第三方安全软件进行了ban设置。
  3. 登录服务器,执行以下命令,查看防火墙配置信息。
    iptables -nL --line-number
    以下是详细配置信息,可以看到防火墙对客户端的数据包采用了了DROP策略,因此服务器无法对客户端的数据包进行响应。

解决方法

本文提供了关闭防火墙和删除对应的屏蔽规则两种方法,以下是详细信息。

关闭防火墙

登录服务器,在现场环境条件允许的情况下,可执行以下命令,临时关闭防火墙。

systemctl stop firewalld

删除屏蔽规则

登录服务器,执行以下命令,删除防火墙中对应的屏蔽规则。

iptables -D INPUT -s [$Client_IP] -j DROP

说明:[$Client_IP]为客户端IP地址。

结果验证

  1. 登录客户端,执行以下命令,确认客户端可以成功ping通服务器。
    ping [$Server_IP]
  2. 登录服务器,获取以下抓包信息,确认服务器已返回响应信息。
  3. 如果您有其他问题,可以联系北京志远天成阿里云代理商,为您提供一对一专业全面的技术服务,同时新老阿里云会员,均可享受我公司代理商价格,欢迎咨询欢迎咨询.gif