ping 命令會向指定的網絡主機發送特殊網絡數據報 IMCP ECHO_REQUEST。多數網絡設備收到該數據包后會做出回應,通過此法即可驗證網絡連接是否正常。
有時從安全角度出發,通常會配置部分網絡通信設備以忽略 ICMP 數據包,因為這樣可以降低主機遭受潛在攻擊者攻擊的可能性。當然,防火牆經常被設置為阻礙 IMCP 通信。
命令格式
ping [option] destination
命令參數
-a Audible ping.
每次發送數據時,發出鳴響。
-c count
發送 count 個 ECHO_REQUEST 數據包后,結束 ping 程序。
-d
使用 Socket 的 SO_DEBUG 選項。
-f
大量且快速地向目標發送數據包。
-i interval
每隔 interval 秒發送一次數據包。
-I interface address
使用指定的網絡接口地址發送數據包。
-n
只以數字形式輸出主機地址,不會嘗試去查找主機名。
-p pattern
最多指定 16 個字節去填充數據包。例如,-p ff 會將所有的填充數據設置為 1。
-q
靜態輸出。僅程序啟動和結束時顯示摘要行。
-R
記錄路由過程。
-r
忽略正常的路由表,而直接向主機發送數據包。如果目標主機不再直連的網絡上,則返回異常。
-s packetsize
指定要發送的數據的字節數。默認是 56 字節,與 8 字節的 ICMP 頭部結合剛好是 64 字節的 ICMP 數據包。
-t ttl
設置 IP 包的 TTL 值。
-T timestamp option
設置 IP 報文的時間戳選項。
-v
詳細模式輸出。
-V
顯示版本信息。
-w deadline
ping 程序在 deadline 秒后退出,不管發送或接受多少數據包。
-W timeout
設置等待 ICMP 響應的時間。
實例
a) 指定 ping 程序執行次數。
[huey@huey-K42JE ~]$ ping -c 4 example.com PING example.com (93.184.216.34) 56(84) bytes of data. 64 bytes from 93.184.216.34: icmp_seq=1 ttl=45 time=331 ms 64 bytes from 93.184.216.34: icmp_seq=2 ttl=45 time=333 ms 64 bytes from 93.184.216.34: icmp_seq=4 ttl=45 time=332 ms --- example.com ping statistics --- 4 packets transmitted, 3 received, 25% packet loss, time 10820ms rtt min/avg/max/mdev = 331.154/332.551/333.550/1.216 ms