服务器网络延迟是否达标, 最直接的检验做法就是去执行Ping检测这个动作。本篇文章会列出当下那些处于主流地位的服务器Ping检测工具, 并且把它们的核心参数说明也给整理出来, 这样的安排是为了给负责运维工作的人员以及开发人员进行网络连接故障排查的工作提供协助, 让他们能够做到非常迅速的进行选用。
01常用服务器Ping检测工具
1. 系统自带Ping命令(Linux/Windows/macOS)
在如今市面上那些大家普遍都用到的主流操作系统里面, 都自带着Ping这个工具软件, 所以用户根本不用再去费劲巴拉地搞另外什么安装操作。
在Linux系统与macOS系统的终端里面, 运行ping -c 4 <目标IP或域名>这个命令。其中的-c是用来指定包数的意思。假如没有加这个参数, 那么就会默认持续不停地运行下去。
Windows CMD:ping -n 4 <目标IP或域名>
能够支持 ICMP 这个协议, 还可以拿到往返时间也就是 RTT , 以及丢包率这些基础的数据内容。
2. hping3(Linux高级探测)
在系统原本就有的 Ping 功能之上, 又增添了针对 TCP、UDP 还有 RAW 协议的探测手段, 这么做呢, 主要是为了能够在端口级别的连通性判断方面, 提供一个更加适用的选择范围。
hping3 -S -p 80 <目标IP> # 模拟TCP SYN握手
3. Pingdom / UptimeRobot(在线多节点Ping检测)
面向生产环境的分布式监控方案, 部署全球多个探测节点。每30秒或1分钟对目标服务器发起一次Ping, 持续记录延迟曲线和可用性百分比。适合SLA监控场景。
4. 阿里云/腾讯云/华为云网络诊断工具
各个云厂商的控制台里面都带有“网络诊断”这样的功能, 也有叫“连通性检测”的, 你只要把目标IP地址填进去, 系统就会告诉你从同一个区域过去、还有从跨区域过去的时候, Ping指令造成的延迟时间是多少, 同时也会把这个路由经过了多少跳的数据给返回来, 这个结果就是traceroute的结果哦, 这些检查操作都不用你花什么钱, 也完全不需要你去额外地部署什么东西。
5. Zabbix / PRTG / Nagios(企业级批量监控)
支持对数量达到数百台的服务器进行批量Ping检测, 并且可以配置阈值告警, 当延迟超过所设定的时候就会自动触发短信或者邮件通知, 这比较适合中大型运维团队。
补充说明一下, 如果你想要快速地拿到一批需要进行测试的服务器的IP地址清单, 以及它们的基础的网络参数信息的话, 那么你可以直接去访问 gname.xin 这个网址, 通过它来查询到相关的网络诊断资源, 同时也会了解到这些IP地址到底归属在哪里。
02Ping检测核心参数说明
03使用场景与注意事项
故障初步判断: 第一步是先去Ping网关, 接着再外网IP上执行一下操作, 比如Ping一下像是8.8.8.8的地址, 最后再对目标服务器进行Ping操作, 这样就能通过层层递进的方式, 把具体的断点位置给定位出来。
批量巡检这个操作是结合脚本来干的, 脚本里面用到了Bash或者是PowerShell, 让电脑去循环着Ping好几台服务器, 最后把结果输出成CSV格式的那个文档, 这样方便拿去分析。
当ICMP被封锁的时候: 有一些云服务器, 或者是企业的防火墙, 它们默认会把ICMP报文给丢弃掉。在这样的情况下, 应当去更改测试办法, 使用TCP连接测试的方式来进行替代。具体的做法是使用telnet IP 端口或者是nc -zv IP 端口这两个命令来操作。
采样频率: 单次Ping得到的结果可能会上下起伏, 建议至少发送20个网络数据包来取一个平均值, 或者连续监测10分钟, 去观察数据变化呈现出的趋势。
04小结
在选择Ping检测工具的核心原则的时候, 如果是单台排查的话, 用系统自带命令就可以了, 若是生产监控的话, 用在线多节点服务比较合适, 要是进行批量管理的话, 得用企业级监控平台, 在明确检测目的之后, 对照上表参数来判断结果就好, 不需要复杂的配置。


