在网络管理和故障排查中,快速准确地了解网络设备的连通性和响应延迟至关重要,传统的 ping 命令虽然功能强大,但在需要同时检测多个目标或扫描整个网段时,效率显得低下,这时,fping 工具便成为网络工程师和系统管理员手中的利器,本文将详细介绍在 CentOS 系统上如何安装和使用 fping,并重点讲解如何利用它来清晰地显示网络耗时。

什么是 fping?
fping(Fast Ping)是一个功能比标准 ping 更为强大的网络诊断工具,它的核心优势在于能够并行地发送 ICMP Echo 请求给多个主机,极大地提升了扫描效率,与 ping 一次只能测试一个目标不同,fping 可以指定一个 IP 地址范围、一个子网,或者从一个文件中读取目标列表,然后批量进行连通性测试,其输出结果简洁明了,非常适合用于脚本自动化和网络监控场景。
在 CentOS 上安装 fping
在基于 Red Hat 的 CentOS 系统中,fping 通常包含在 EPEL(Extra Packages for Enterprise Linux)软件仓库中,安装前需要确保系统已启用 EPEL 仓库。
- 
启用 EPEL 仓库(如果尚未启用): 对于 CentOS 8/9:
sudo dnf install epel-release -y
对于较旧的 CentOS 7:
sudo yum install epel-release -y
 - 
安装 fping: 启用 EPEL 后,可以直接使用
dnf或yum命令进行安装。sudo dnf install fping -y
 - 
验证安装: 安装完成后,可以通过
-v参数查看fping的版本信息,以确认安装成功。fping -v
 
fping 基础用法与显示耗时
fping 的基本用法与 ping 类似,但其真正的威力体现在各种参数的组合使用上,尤其是在显示耗时方面。
单个主机测试
直接执行 fping 加上主机名或 IP 地址,会返回简单的存活状态。
fping google.com
输出可能为:

google.com is alive
要显示具体的响应耗时,需要使用 -e(elapsed time)参数。
fping google.com -e
输出结果会包含往返时间(RTT),单位为毫秒:
google.com is alive (28.5 ms)
扫描多个主机
可以同时指定多个主机,并用空格隔开。
fping host1.com host2.com 192.168.1.1 -e
输出会列出每个存活主机的耗时:
host1.com is alive (15.2 ms)
192.168.1.1 is alive (0.85 ms)
host2.com is unreachable
扫描一个 IP 范围
这是 fping 最实用的功能之一,使用 -g 参数可以生成一个目标列表。
# 扫描 192.168.1.1 到 192.168.1.10 fping -g 192.168.1.1 192.168.1.10 -e # 使用 CIDR 表示法扫描整个 C 类网段 fping -g 192.168.1.0/24 -e
这个命令会快速扫描整个网段,并列出所有存活主机的 IP 地址和响应耗时。
常用参数详解
为了更灵活地控制 fping 的行为,掌握一些常用参数非常有帮助,下表小编总结了一些关键参数及其用途。
| 参数 | 描述 | 示例 | 
|---|---|---|
-e | 
显示每个存活主机的响应耗时。 | fping 8.8.8.8 -e | 
-g | 
生成一个目标列表,用于扫描 IP 范围。 | fping -g 192.168.0.0/24 | 
-f <file> | 
从指定文件中读取目标列表(每行一个)。 | fping -f targets.txt -e | 
-a | 
仅显示存活的主机。 | fping -g 192.168.1.0/24 -a | 
-u | 
仅显示不可达的主机。 | fping -g 192.168.1.0/24 -u | 
-c <count> | 
对每个目标发送指定数量的包,并显示统计信息。 | fping -c 5 google.com | 
-i <ms> | 
设置发送包的时间间隔(毫秒),默认为 25ms。 | fping -i 100 -g 192.168.1.0/24 | 
-t <ms> | 
设置等待回复的超时时间(毫秒),默认为 500ms。 | fping -t 1000 -e 8.8.8.8 | 
实践示例:获取网段内主机的详细延迟统计
假设我们想找出本地网络 168.1.0/24 中所有存活的主机,并对每个主机发送 3 个 ping 包以获取其平均、最小和最大延迟。

可以结合使用 -g、-a 和 -c 参数:
fping -a -g 192.168.1.0/24 -c 3
执行后,fping 会输出类似以下的详细统计报告,而不是简单的 is alive:
168.1.1 : [0], 84 bytes, 0.85 ms (0.85 avg, 0% loss)
192.168.1.10 : [0], 84 bytes, 1.2 ms (1.2 avg, 0% loss)
192.168.1.20 : [0], 84 bytes, 2.1 ms (2.1 avg, 0% loss)
...
这个报告清晰地展示了每个主机的响应时间,非常适合用于快速评估网络质量。
相关问答FAQs
为什么我使用 fping -e 后,仍然只显示 'is alive' 而没有看到具体耗时?
解答: 这种情况比较少见,通常与 fping 的版本或目标主机的响应速度极快有关,在某些默认配置下,对于极快的响应,-e 可能不会显示,一个更可靠且能强制显示详细耗时和统计信息的方法是使用 -c(count)参数,即使只发送一个包,使用 fping -c 1 <目标地址>,它会返回包含最小、平均和最大延迟的摘要信息,从而确保你能看到耗时数据。
fping 和 ping 命令在显示耗时方面有什么核心区别?
解答: 核心区别在于批量处理能力和输出目的。ping 是为诊断单个主机的连通性而设计的,它会实时、逐包地显示往返时间,适合观察网络延迟的实时波动,而 fping 是为批量扫描而优化的,使用 -e 时,它为每个主机提供一次性的往返时间,目的是快速“普查”;使用 -c 时,它提供整个测试周期的汇总统计(如最小/平均/最大延迟和丢包率),目的是快速比较多个主机的性能,而不是观察实时变化,简而言之,ping 用于深度分析单点,fping 用于广度扫描多点。