【Linux】一步一步学Linux——ping命令(150)
00. 目錄
文章目錄
- 00. 目錄
- 01. 命令概述
- 02. 命令格式
- 03. 常用選項
- 04. 參考示例
- 05. 使能和禁用ping的方法
- 06. 總結
- 07. 附錄
01. 命令概述
ping命令用來測試主機之間網絡的連通性。執行ping指令會使用ICMP傳輸協議,發出要求回應的信息,若遠端主機的網絡功能沒有問題,就會回應該信息,因而得知該主機運作正常。
ping, ping6 - 向網絡主機發送ICMP回顯請求(ECHO_REQUEST)分組。
注意:Linux系統下的ping命令與Windows系統下的ping命令稍有不同。Windows下運行ping命令一般會發出4個請求就結束運行該命令;而Linux下不會自動終止,此時需要我們按CTR+C終止或者使用-c參數為ping命令指定發送的請求數目。
02. 命令格式
格式:ping [選項] [參數]03. 常用選項
-d 使用Socket的SO_DEBUG功能 -c 指定發送報文的次數 -i 指定收發信息的間隔時間 -I 使用指定的網絡接口送出數據包 -l 設置在送出要求信息之前,先行發出的數據包 -n 只輸出數值 -p 設置填滿數據包的范本樣式 -q 不顯示指令執行過程 -R 記錄路由過程 -s 設置數據包的大小 -t 設置存活數值TTL的大小 -v 詳細顯示指令的執行過程04. 參考示例
4.1 測試能否ping通IP
[root@localhost ~]# ping 172.16.0.2 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=255 time=11.3 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.71 ms4.2 測試能否ping通域名
[root@localhost ~]# ping www.baidu.com PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data. 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=1 ttl=57 time=7.93 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=2 ttl=57 time=7.89 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=3 ttl=57 time=8.70 ms4.3 ping不同某個IP的情形
[root@localhost ~]# ping 172.16.0.89 PING 172.16.0.89 (172.16.0.89) 56(84) bytes of data. From 172.16.0.76 icmp_seq=1 Destination Host Unreachable From 172.16.0.76 icmp_seq=2 Destination Host Unreachable From 172.16.0.76 icmp_seq=3 Destination Host Unreachable From 172.16.0.76 icmp_seq=4 Destination Host Unreachable4.4 指定ping的次數
[root@localhost ~]# ping -c 2 172.16.0.2 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=254 time=1.68 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.81 ms--- 172.16.0.2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1004ms rtt min/avg/max/mdev = 1.685/1.747/1.810/0.075 ms [root@localhost ~]#4.5 指定ping的次數和時間間隔
[root@localhost ~]# ping -c 4 -i 0.5 172.16.0.2 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=254 time=1.76 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.75 ms 64 bytes from 172.16.0.2: icmp_seq=3 ttl=254 time=2.27 ms 64 bytes from 172.16.0.2: icmp_seq=4 ttl=254 time=1.62 ms--- 172.16.0.2 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 1511ms rtt min/avg/max/mdev = 1.626/1.853/2.270/0.246 ms [root@localhost ~]#4.6 指定ping的次數和域名
[root@localhost ~]# ping -c 5 www.baidu.com PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data. 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=1 ttl=57 time=8.55 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=2 ttl=57 time=8.17 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=3 ttl=57 time=7.91 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=4 ttl=57 time=7.77 ms 64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=5 ttl=57 time=8.29 ms--- www.a.shifen.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4013ms rtt min/avg/max/mdev = 7.770/8.140/8.552/0.282 ms [root@localhost ~]#4.7 綜合實例
[root@localhost ~]# ping -i 3 -s 1024 -t 255 172.16.0.2 PING 172.16.0.2 (172.16.0.2) 1024(1052) bytes of data. 1032 bytes from 172.16.0.2: icmp_seq=1 ttl=254 time=2.15 ms 1032 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.96 ms 1032 bytes from 172.16.0.2: icmp_seq=3 ttl=254 time=1.98 ms 1032 bytes from 172.16.0.2: icmp_seq=4 ttl=254 time=2.02 ms說明:-i 3 發送周期為 3秒 -s 設置發送包的大小為1024 -t 設置TTL值為 255
4.8 綜合實例
[root@localhost ~]# ping -i 0.2 -c 3 -I 172.16.0.76 172.16.0.2 -q PING 172.16.0.2 (172.16.0.2) from 172.16.0.76 : 56(84) bytes of data.--- 172.16.0.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 406ms rtt min/avg/max/mdev = 1.653/1.953/2.498/0.386 ms [root@localhost ~]#說明:-i 指定發送數據包時間間隔,-c 指定一共發送多少個數據包,-I 指定源地址,-q指定直接顯示程序的啟動和最后結果
4.9 綜合實例
[root@localhost ~]# ping -I 172.16.0.76 172.16.0.2 -w 3 PING 172.16.0.2 (172.16.0.2) from 172.16.0.76 : 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=254 time=1.64 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=254 time=1.71 ms 64 bytes from 172.16.0.2: icmp_seq=3 ttl=254 time=1.63 ms--- 172.16.0.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.632/1.664/1.715/0.059 ms [root@localhost ~]#【說明】
-I 網絡界面:使用指定的網絡界面送出數據包,即172.16.0.76是發出ping命令的主機IP地址,172.16.0.2是被ping的主機的IP地址。
-w 等待指定時間后停止ping程序的執行。當試圖測試不可達主機時此選項很有用,時間單位是秒。
4.10 綜合實例
[root@localhost ~]# ping -c 1 www.baidu.com | grep from | cut -d " " -f 4 183.232.231.174 [root@localhost ~]#利用ping命令獲取指定網站的IP地址
【常見問題分析】
No Answer: 原因可能是,對方主機沒工作,雙方網絡配置不正確,路由問題等。
Request Time Out: 對方主機已關機,路由問題或對端防火墻設置禁止ping
Unknown Host Name: DNS設置問題,或者對方主機不存在
Destination Net Unreachable: 雙方沒有建立連接,或對方主機不存在
Bad IP Address: IP地址不存在或IP不能被DNS服務器解析
transmit failed,error code: 網卡驅動問題
no rout to host 網卡工作不正常
Ping 127.0.0.1 如果ping不通,表明本地機TCP/IP協議不能正常工作。
05. 使能和禁用ping的方法
5.1 臨時允許ping
[root@localhost ~]# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all [root@localhost ~]#5.2 臨時禁用ping
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all5.3 永久禁用ping
/etc/sysctl.conf 中增加一行
net.ipv4.icmp_echo_ignore_all=1 # 1表示禁止修改完成后執行sysctl -p使新配置生效
5.4 永久使能ping
/etc/sysctl.conf 中增加一行
net.ipv4.icmp_echo_ignore_all=0 # 0表示允許修改完成后執行sysctl -p使新配置生效
06. 總結
07. 附錄
參考:【Linux】一步一步學Linux系列教程匯總
總結
以上是生活随笔為你收集整理的【Linux】一步一步学Linux——ping命令(150)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】一步一步学Linux——n
- 下一篇: 【Linux】一步一步学Linux——i