前言??????
想要學(xué)好Linux,命令是基本功,企業(yè)中常用的命令大約200多個,不管是寫shell腳本還是管理操作系統(tǒng),最常用的命令必須要牢牢掌握,像我們以前學(xué)乘法口訣一樣,爛熟于心,唯有如此,才能打牢基礎(chǔ)。
?? 知識最重要的是記憶
?? 入門須知: 想要人生從容,必須全力以赴,努力才是你最終的入場券??????
?? 最后: 努力成長自己,愿我們都能在看不到的地方閃閃發(fā)光 ,一起加油進(jìn)步??????
一. 命令介紹
ping命令用來測試主機(jī)之間網(wǎng)絡(luò)的連通性,通過發(fā)送Internet控制消息協(xié)議(ICMP)回響請求消息來驗(yàn)證與另一臺TCP/IP計(jì)算機(jī)的IP級連接.
用途: 發(fā)送一個回送信號請求給網(wǎng)絡(luò)主機(jī),根據(jù)發(fā)送回的信號來判斷網(wǎng)絡(luò)的連通性
- 確定網(wǎng)絡(luò)和各個外部主機(jī)的狀態(tài)。
- 跟蹤和隔離硬件與軟件問題。
- 測試、評估和管理網(wǎng)絡(luò)。
ping 命令每秒發(fā)送一個數(shù)據(jù)包并且為每個接收到的響應(yīng)顯示一行輸出。ping 命令計(jì)算信號往返時間和(信息)包丟失情況的統(tǒng)計(jì)信息,并且在完成之后顯示一個簡要總結(jié)。
Ping 命令將在程序超時或收到 SIGINT 信號時完成。Host 參數(shù)是有效主機(jī)名或因特網(wǎng)地址。
缺省情況下,ping 命令繼續(xù)將回傳請求發(fā)送到屏幕,直至接收到中斷信號 (Ctrl-C)。由于連續(xù)的回傳請求會增加系統(tǒng)的負(fù)載,所以重復(fù)的請求必須主要用于問題確定。
二. 語法格式及常用選項(xiàng)
可以使用man ping 來查看相關(guān)的參數(shù)信息
-c count 在發(fā)送(和接收)了正好數(shù)量為 count 的回顯應(yīng)答分組后停止操作。在發(fā)送了 count
個分組后沒有收到任何分組的特別情況是發(fā)送導(dǎo)致了終止(選程主機(jī)或網(wǎng)關(guān)不可達(dá))。
-d 在所用的套接字上使用 SO_DEBUG 選項(xiàng)。
-f 以高速方式來作
ping
。以分組返回的速度來輸出其它分組或每秒輸出百次。當(dāng)收到每個回顯應(yīng)答并打印一個退格符時,對每
個回顯請求都打印一個句點(diǎn)``.''。這可以快速顯示出丟棄了多少個分組,只有超級用戶可以用這個選項(xiàng)。這(操作)對
網(wǎng)絡(luò)要求非??量蹋瑧?yīng)該慎重使用。
-i wait 在發(fā)送每個分組時等待 wait
個秒數(shù)。缺省值為每個分組等待一秒。此選項(xiàng)與-f選項(xiàng)不能同時使用。
-l preload 如果指定 preload ,那么 ping
程序在開始正常運(yùn)行模式前盡可能快地發(fā)送分組。同樣只有超級用戶可以用這個選項(xiàng)。
-n 只以數(shù)字形式輸出信息。這樣就不嘗試去查找主機(jī)名了。
-p pattern
可以指定最多16個填充字節(jié)用于保持分組長度為16的整數(shù)倍。在網(wǎng)絡(luò)上診斷與數(shù)據(jù)相關(guān)問題時此選項(xiàng)很有用。
例如``-p ff''將使發(fā)出的分組都用全1填充數(shù)據(jù)區(qū)。
-q 靜態(tài)輸出。在程序啟動和結(jié)束時只顯示摘要行。
-R 記錄路由。在回顯請求分組中包含記錄路由選項(xiàng)并在相應(yīng)的分組返回時顯示路由緩沖區(qū)。注意IP首部的容量只能存放9條這樣的
路由。很多主機(jī)
-r 在所連接的網(wǎng)絡(luò)上旁路正常的選路表,直接向主機(jī)發(fā)送分組。如果主機(jī)未處于直接相連的網(wǎng)絡(luò)上,那么返回一個錯誤。此選項(xiàng)可用來通過無路由接口對一臺主機(jī)進(jìn)行檢測(例如當(dāng)接口已被
routed 程序丟棄后)。
-s packetsize 指定要發(fā)送數(shù)據(jù)的字節(jié)量。缺省值為 56 ,這正好在添加了 8 字節(jié)的 ICMP
首部后組裝成 64 字節(jié)的 ICMP 數(shù)據(jù)報。
-v 詳細(xì)模式輸出。打印接收到的回顯應(yīng)答以外的 ICMP 分組。
-w waitsecs 在 waitsecs 秒后停止 ping 程序的執(zhí)行。當(dāng)試圖檢測不可達(dá)主機(jī)時此選項(xiàng)很有用。
參數(shù)簡化版:
- -d:使用Socket的SO_DEBUG功能;
- -c<完成次數(shù)>:設(shè)置完成要求回應(yīng)的次數(shù);
- -f:極限檢測;
- -i<間隔秒數(shù)>:指定收發(fā)信息的間隔時間;
–I<網(wǎng)絡(luò)界面>:使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包; - -l<前置載入>:設(shè)置在送出要求信息之前,先行發(fā)出的數(shù)據(jù)包;
- -n:只輸出數(shù)值;
- -p<范本樣式>:設(shè)置填滿數(shù)據(jù)包的范本樣式;
- -q:不顯示指令執(zhí)行過程,開頭和結(jié)尾的相關(guān)信息除外;
- -r:忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上;
- -R:記錄路由過程;
- -s<數(shù)據(jù)包大小>:設(shè)置數(shù)據(jù)包的大??;
- -t<存活數(shù)值>:設(shè)置存活數(shù)值TTL的大?。?/li>
- -v:詳細(xì)顯示指令的執(zhí)行過程。
- -w<超時秒數(shù)>:無論之前發(fā)送或接受了多少包,只要超過此秒數(shù),程序退出;
三. 參考案例
3.1 測試本機(jī)與指定網(wǎng)站服務(wù)器之間的網(wǎng)絡(luò)連通性
linux中的ping命令無法自己停止,需要手動按下ctrl+c組件按鍵命令來停止ping
此時,無需加任何參數(shù),直接在ping后面加上IP或者網(wǎng)址
root@mufenggrow ~]# ping www.baidu.com
PING www.baidu.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=52 time=25.1 ms
^C
--- www.baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 25.181/25.181/25.181/0.000 ms
[root@mufenggrow ~]#
也可以直接ping IP地址:
這里面的幾個參數(shù):
- icmp_seq=1 ping序列,從1開始;
- bytes值: 數(shù)據(jù)包大小,也就是字節(jié)。
- time值:響應(yīng)時間,這個時間越小,說明你連接這個地址速度越快。
- TTL值:Time To Live,表示DNS記錄在DNS服務(wù)器上存在的時間,它是IP協(xié)議包的一個值,告訴路由器該數(shù)據(jù)包何時需要被丟棄。
拓展:
TTL就是說ping的數(shù) 據(jù)包 能在網(wǎng)絡(luò)上存在多少時間。
當(dāng)我們對網(wǎng)絡(luò)上的主機(jī)進(jìn)行ping操作的時候,我們本地機(jī)器會發(fā)出一個數(shù)據(jù)包,數(shù)據(jù)包經(jīng)過一定數(shù)量的路由器傳送到目的主機(jī),但是由于很多的原因,一些數(shù)據(jù)包不能正常傳送到目的主機(jī),那如果不給這些數(shù)據(jù)包一個生存時間的話,這些數(shù)據(jù)包會一直在網(wǎng)絡(luò)上傳送,導(dǎo)致網(wǎng)絡(luò)開銷的增大。
當(dāng)數(shù)據(jù)包傳送到一個路由器之后,TTL就自動減1,如果減到0了還是沒有傳送到目的主機(jī),那么就自動丟失。
- rtt min/avg/max/mdev 表示最小/最大、平均響應(yīng)時間和本機(jī)硬件耗費(fèi)時間
3.2 指定ping的次數(shù)
-c 參數(shù)可以用來指定ping的次數(shù)
[root@mufenggrow ~]# ping -c 3 www.baidu.com
PING www.baidu.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=52 time=25.4 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=52 time=25.5 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=3 ttl=52 time=25.9 ms
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 25.411/25.633/25.906/0.205 ms
3.3 指定時間間隔和次數(shù)
這里會用到兩個參數(shù)
-i 時間間隔參數(shù),也就是發(fā)送周期
-c ping的次數(shù)
[root@mufenggrow ~]# ping -c1 -i 0.3 www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=52 time=25.4 ms
--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 25.407/25.407/25.407/0.000 ms
3.4 設(shè)置TTL為255
-t參數(shù)可以設(shè)置存活數(shù)值TTL大小為255, 這里我們一并用上 -c 發(fā)送周期為3秒, -s設(shè)置發(fā)送包為1024
[root@mufenggrow ~]# ping -c 3 -i 0.3 -s 1024 -t 255 192.168.1.101
PING 192.168.1.101 (192.168.1.101) 1024(1052) bytes of data.
1032 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.029 ms
1032 bytes from 192.168.1.101: icmp_seq=2 ttl=64 time=0.060 ms
1032 bytes from 192.168.1.101: icmp_seq=3 ttl=64 time=0.028 ms
--- 192.168.1.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 600ms
rtt min/avg/max/mdev = 0.028/0.039/0.060/0.014 ms
3.5 極快速的測試使用大包ping
以最快的速度,使用最大的包進(jìn)行ping,一般用于測試目標(biāo)主機(jī)的承壓能力測試。
說到這不得不提中國黑客教父,當(dāng)年在中美黑客大戰(zhàn)中一戰(zhàn)成名,最大的本事就是號召中國網(wǎng)民,ping TN官網(wǎng)。
這里用到兩個參數(shù)一個是-f: 極限檢測,快速連續(xù)ping一臺主機(jī),ping的速度達(dá)到100次每秒。
另一個是: -s 指定每次ping發(fā)送的數(shù)據(jù)字節(jié)數(shù),但不能大于65535,所以linux最大值為65507
[root@mufenggrow ~]# ping -f -s 65507 192.168.1.101
PING 192.168.1.101 (192.168.1.101) 65507(65535) bytes of data.
^C
--- 192.168.1.101 ping statistics ---
372312 packets transmitted, 372312 received, 0% packet loss, time 19675ms
rtt min/avg/max/mdev = 0.012/0.015/2.202/0.012 ms, ipg/ewma 0.052/0.016 ms
[root@mufenggrow ~]#
四. 使用ping命令常見問題
【常見問題分析】
在ping的過程中,經(jīng)常會遇到以下的情況,我們根據(jù)情況的反饋來判斷具體的問題。
-
No Answer: ,對方主機(jī)沒工作,雙方網(wǎng)絡(luò)配置不正確,路由問題等。
-
Request Time Out: 對方主機(jī)已關(guān)機(jī),路由問題或?qū)Χ朔阑饓υO(shè)置禁止ping
-
Destination Net Unreachable: 雙方?jīng)]有建立連接,或?qū)Ψ街鳈C(jī)不存在
-
Unknown Host Name: DNS設(shè)置問題,或者對方主機(jī)不存在
-
transmit failed,error code: 網(wǎng)卡驅(qū)動問題
-
Bad IP Address: IP地址不存在或IP不能被DNS服務(wù)器解析
7.pining 127.0.0.1 如果ping不通,表明本地機(jī)TCP/IP協(xié)議不能正常工作
- no rout to host 網(wǎng)卡工作不正常
使用ping來輔助判斷網(wǎng)絡(luò)的連通性
總結(jié)
我們經(jīng)常用ping命令來判斷主機(jī)是否在線,網(wǎng)絡(luò)是否連通, 在腳本中也經(jīng)常會用到ping命令,目前用的最多的參數(shù)就是 -c -i -w 這幾個參數(shù)。
?????? 好啦,這就是今天要分享給大家的全部內(nèi)容了,我們下期再見!? ? ?
??????如果你喜歡的話,就不要吝惜你的一鍵三連了~
沖沖沖文章來源:http://www.zghlxwxcb.cn/news/detail-786336.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-786336.html
到了這里,關(guān)于Linux基本功系列之ping命令實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!