Linux常用命令-fping

命令

fping

描述

send ICMP ECHO_REQUEST packets to network hosts
批量ping

用法

1
2
fping [options] [targets...]
fping6 [options] [targets...]

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Options:
-a 显示可以正常访问的地址
-A 显示IP地址而非主机名
-b n 指定要发送的数据字节数 (default 56)
-B f set exponential backoff factor to f
-c n 指定发送包的数量 (default 1)
-C n same as -c, report results in verbose format
-D 显示时间戳
-e 显示返回包的延迟时间
-f file 从指定文件中读取地址列表,#号行表示注释,将被忽略
-g 指定地址列表或网段 (ex. fping -g 192.168.1.0 192.168.1.255 or fping -g 192.168.1.0/24)
-H n 设置ttl值
-i n 向任何目标发送ping数据包的间隔时间,单位毫秒millisec (default 25)
-I if 指定出接口
-l 循环发送ping
-m 在目标主机上ping多个接口
-n 显示主机名而非IP地址
-O n set the type of service (tos) flag on the ICMP packets
-p n 在循环或计数模式(-l、-c或-C)中,此参数设置fping在到单个目标的连续数据包之间等待的时间 (default 1000)
-q 静默模式 (don't show per-target/per-ping results)
-Q n same as -q, but show summary every n seconds
-r n 尝试次数 (default 3)
-s 显示统计信息
-S addr 指定源地址
-t n 单个目标初始超时时间,单位毫秒 (in millisec) (default 500)
-T n ignored (for compatibility with fping 2.4)
-u 显示不可达的地址

注意

需要安装fping软件包

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
$ fping -v
fping: Version 3.10

$ fping 192.168.10.1 192.168.31.1 www.baidu.com
192.168.31.1 is alive
www.baidu.com is alive
192.168.10.1 is unreachable
# -a 显示可以正常访问的地址
$ fping -a 192.168.10.1 192.168.31.1 www.baidu.com
192.168.31.1
www.baidu.com
# -u 显示不可达的地址
$ fping -u 192.168.10.1 192.168.31.1 www.baidu.com
192.168.10.1
# -A 显示IP地址而非主机名
$ fping -A www.baidu.com
110.242.68.3 is alive
$ fping -Aa www.baidu.com
110.242.68.4
# -c 指定发送到每个地址的包的数量
$ fping -c 1 192.168.10.1 192.168.31.1 www.baidu.com
192.168.31.1 : [0], 84 bytes, 1.31 ms (1.31 avg, 0% loss)
www.baidu.com : [0], 84 bytes, 10.1 ms (10.1 avg, 0% loss)
192.168.10.1 : xmt/rcv/%loss = 1/0/100%
192.168.31.1 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 1.31/1.31/1.31
www.baidu.com : xmt/rcv/%loss = 1/1/0%, min/avg/max = 10.1/10.1/10.1
# -C 同-c,结果只显示延迟
$ fping -C 3 192.168.10.1 192.168.31.1 www.baidu.com
192.168.31.1 : [0], 84 bytes, 1.30 ms (1.30 avg, 0% loss)
www.baidu.com : [0], 84 bytes, 12.7 ms (12.7 avg, 0% loss)
192.168.31.1 : [1], 84 bytes, 0.89 ms (1.09 avg, 0% loss)
www.baidu.com : [1], 84 bytes, 10.6 ms (11.7 avg, 0% loss)
192.168.31.1 : [2], 84 bytes, 0.88 ms (1.02 avg, 0% loss)
www.baidu.com : [2], 84 bytes, 11.5 ms (11.6 avg, 0% loss)
192.168.10.1 : - - -
192.168.31.1 : 1.30 0.89 0.88
www.baidu.com : 12.78 10.66 11.59
# -D 显示时间戳
$ fping -D -C 3 192.168.10.1 192.168.31.1 www.baidu.com
[1641373314.350181] 192.168.31.1 : [0], 84 bytes, 0.98 ms (0.98 avg, 0% loss)
# -e 显示延迟
$ fping -e 192.168.10.1 192.168.31.1 www.baidu.com
192.168.31.1 is alive (1.34 ms)
www.baidu.com is alive (11.1 ms)
# -f 指定地址文件,#号行将被忽略
$ more ip
192.168.10.1
#192.168.20.1
192.168.31.1
www.baidu.com
$ fping -f ip
192.168.31.1 is alive
www.baidu.com is alive
192.168.10.1 is unreachable
# -g 指定地址范围, -aq 显示可以正常访问的地址
$ fping -aq -g 192.168.31.1 192.168.31.5
192.168.31.1
192.168.31.2
# -uq 显示不可达的地址
$ fping -uq -g 192.168.31.1 192.168.31.5
192.168.31.3
192.168.31.4
192.168.31.5
# 指定网段
$ fping -aq -g 192.168.31.1/29
192.168.31.1
192.168.31.2
# -I 指定网卡出接口, -r 重试次数
$ fping -I eth0 -r 1 192.168.31.10
192.168.31.10 is unreachable
# -S 指定源IP
$ fping -S 192.168.31.11 192.168.31.10
# -l 循环ping
$ fping -l -f ip
192.168.31.1 : [0], 84 bytes, 1.29 ms (1.29 avg, 0% loss)
www.baidu.com : [0], 84 bytes, 13.2 ms (13.2 avg, 0% loss)
192.168.31.1 : [1], 84 bytes, 0.95 ms (1.12 avg, 0% loss)
...
# -s 显示统计信息
$ fping -s -f ip
192.168.31.1 is alive
www.baidu.com is alive
192.168.10.1 is unreachable

3 targets
2 alive
1 unreachable
0 unknown addresses

1 timeouts (waiting for response)
6 ICMP Echos sent
2 ICMP Echo Replies received
0 other ICMP received

1.30 ms (min round trip time)
6.22 ms (avg round trip time)
11.1 ms (max round trip time)
4.099 sec (elapsed real time)

# -i 指定发送包的间隔时间,单位毫秒
$ fping -i 1000 -l -f ip
192.168.31.1 : [0], 84 bytes, 1.46 ms (1.46 avg, 0% loss)
www.baidu.com : [0], 84 bytes, 10.8 ms (10.8 avg, 0% loss)
192.168.31.1 : [1], 84 bytes, 0.95 ms (1.20 avg, 0% loss)
www.baidu.com : [1], 84 bytes, 14.6 ms (12.7 avg, 0% loss)
...
# -t 指定单个目标的超时时间,单位毫秒
$ fping -t 10 -f ip
192.168.31.1 is alive
www.baidu.com is alive
192.168.10.1 is unreachable


# 获取整个网段中的IP状态,alive表示已经使用,unreachable表示未使用或无法连通
fping -r 1 -g 网段
fping -r 1 -g 192.168.10.0/24
# 获取指定IP范围中的IP状态
fping -r 1 -g 起始地址 结束地址
fping -r 1 -g 192.168.10.10 192.168.10.20

# 获取网段中的可用IP地址,即状态为unreachable
fping -u -r 1 -g 192.168.10.10 192.168.10.20
# 获取网段中已经使用的IP地址,即状态为alive
fping -a -r 1 -g 192.168.10.10 192.168.10.20
# 或者直接指定网段-推荐
# 建议使用1-250的可用IP地址,预留最后几个IP地址,一般网关为254
fping -u -q -r 1 -g 192.168.10.0/24
fping -a -q -r 1 -g 192.168.10.0/24