核心功能说明​

服务器ping检测工具, 这个工具是用来测试目标服务器和咱们本地主机之间的网络是不是连通的, 还有看看往返延迟是多少。它背后的原理是什么, 其实就是发送一种叫做ICMP Echo Request的数据包。如果对方主机能被找到的话, 它就会回传一个叫做ICMP Echo Reply的东西。

然后这个工具就根据这些来回的信息, 去算一算丢包率是多少, 还有最小的响应时间、平均的响应时间和最大的响应时间是多大。这一步操作, 它是网络故障排查的第一步, 也是服务器部署验证的第一步, 还是CDN节点探测的第一步。

常用工具分类​

命令行工具(本地执行):

在Windows系统的环境下, 用户可以使用ping命令, 该命令是系统自带的功能。此外, 还可以使用tracert来进行路由跟踪操作。Pathping这个选项可以用来生成有关延迟和丢包的综合性报告。

Linux/macOS系统:ping命令,traceroute/tracepath(路由跟踪),mtr(交互式综合诊断)

跨平台脚本:PowerShell的Test-NetConnection、Python的ping3库

在线检测平台(无需安装):

各大云计算提供商都给出了网络诊断用的控制台这种功能, 阿里云是这样做的, 腾讯云也是这样做, 华为云同样也做了这个内置的东西。

该第三方分布式探测平台, 支持从全球各个节点同时发起ping请求, 从而获取地域化的延迟数据。

有些综合型的网络工具网站, 比如, 它提供了免费的在线ping检测服务, 用户可以根据自己的需求去定制数据包的长度、发送的时间间隔以及发送的次数是多少, 最后得到的结果会以表格的形式和图表的形式呈现出来, 让查看的人能够一目了然。

服务器ping检测工具怎么用?3步完成网络连通性检测(图1)

标准操作步骤(以Linux为例)​

1. 执行基础ping:ping -c 10 <目标IP或域名>服务器ping检测工具服务器ping检测工具,发送10个包,观察返回的packets transmitted, packets received, packet loss及rtt min/avg/max/mdev。

2. 我们需要调整参数定位问题, 具体使用代码 ping -i 0.5 -s 1024 <目标> , 把间隔设置为0.5秒, 把包大小设置为1024字节, 这样做可以排除那种小包通过大包被防火墙规则拦截的干扰情况。

3. 把路由跟踪这个事情结合起来去看, 你可以通过运行 traceroute 后面跟着那个目标地址的方式, 或者是用 mtr 后面跟上目标地址这种方式去进行操作, 然后就可以一步一步地往下走, 从而把导致了延迟突然变高或者连接中断的那个具体的网络节点给定位出来。

判定标准:丢包率=0%且平均延迟在正常范围内(同城<10ms、跨城<30ms、跨国<150ms)为正常;丢包率>5%或出现*(超时)需进一步排查。

高频疑难与解决​

阜新市自然资源事务服务中心

现象 可能原因 处理方向
全部超时(100%丢包) 目标宕机/安全组未放行ICMP/中间链路中断 检查服务器安全组、换端口用nc -zv验证TCP连通性
延迟正常但业务卡顿 非网络层问题,或TCP层存在重传 用mtr确认逐跳无异常后排查应用层
部分节点通、部分不通 路由策略/运营商网络隔离 用在线分布式平台对比多地探测结果
能ping通但速度极慢 带宽瓶颈/链路拥塞 用iperf3做带宽实测

注意事项​

有一部分云主机会直接把ICMP响应给关掉, 所以你用ping命令去测, 结果发现不通, 但这并不代表服务器的硬件就死掉了, 必须得接着再用端口探测的办法, 比如通过telnet这种工具, 或者用nc这个工具, 再或者是用Test-NetConnection -Port 80这类方式来综合看一下总的情况才能下结论。

高频率ping(间隔<100ms)会触发目标主机限流,生产环境检测建议间隔≥1秒、次数≤100。

当遇到需要检查大量服务器这样的情况的时候, 可以写个程序去循环地打个包看看通不通, 并且把结果存到文件里去, 再一个办法是把事情交给专门的监督系统去管。具体来说就是用Prometheus加上blackbox_exporter这个东西来做经常性的测试。

上面说的那些内容, 就是服务器ping检测工具的核心使用方法, 还有故障判定路径是怎样的, 只要大家按照上面的步骤去进行一步一步的操作, 那么就肯定是可以完成那个从基础的连通性验证到深层链路定位的这个完整检测闭环的。