一些命令可以顯示單個(gè)進(jìn)程所使用的帶寬。這樣一來(lái),,用戶(hù)很容易發(fā)現(xiàn)過(guò)度使用網(wǎng)絡(luò)帶寬的某個(gè)進(jìn)程,。
這些工具使用不同的機(jī)制來(lái)制作流量報(bào)告。nload等一些工具可以讀取"proc/net/dev"文件,以獲得流量統(tǒng)計(jì)信息,;而一些工具使用pcap庫(kù)來(lái)捕獲所有數(shù)據(jù)包,然后計(jì)算總數(shù)據(jù)量,,從而估計(jì)流量負(fù)載,。
下面是按功能劃分的命令名稱(chēng)。
- 監(jiān)控總體帶寬使用――nload,、bmon,、slurm、bwm-ng,、cbm,、speedometer和netload
- 監(jiān)控總體帶寬使用(批量式輸出)――vnstat、ifstat,、dstat和collectl
- 每個(gè)套接字連接的帶寬使用――iftop,、iptraf、tcptrack,、pktstat,、netwatch和trafshow
- 每個(gè)進(jìn)程的帶寬使用――nethogs
1. nload
nload是一個(gè)命令行工具,讓用戶(hù)可以分開(kāi)來(lái)監(jiān)控入站流量和出站流量,。它還可以繪制圖表以顯示入站流量和出站流量,,視圖比例可以調(diào)整。用起來(lái)很簡(jiǎn)單,,不支持許多選項(xiàng),。
所以,如果你只需要快速查看總帶寬使用情況,,無(wú)需每個(gè)進(jìn)程的詳細(xì)情況,,那么nload用起來(lái)很方便。
- $ nload
安裝nload:Fedora和Ubuntu在默認(rèn)軟件庫(kù)里面就有nload,。CentOS用戶(hù)則需要從Epel軟件庫(kù)獲得nload,。
- # fedora或centos
- $ yum install nload -y
- # ubuntu/debian
- $ sudo apt-get install nload
2. iftop
iftop可測(cè)量通過(guò)每一個(gè)套接字連接傳輸?shù)臄?shù)據(jù);它采用的工作方式有別于nload,。iftop使用pcap庫(kù)來(lái)捕獲進(jìn)出網(wǎng)絡(luò)適配器的數(shù)據(jù)包,,然后匯總數(shù)據(jù)包大小和數(shù)量,搞清楚總的帶寬使用情況,。
雖然iftop報(bào)告每個(gè)連接所使用的帶寬,,但它無(wú)法報(bào)告參與某個(gè)套按字連接的進(jìn)程名稱(chēng)/編號(hào)(ID)。不過(guò)由于基于pcap庫(kù),,iftop能夠過(guò)濾流量,,并報(bào)告由過(guò)濾器指定的所選定主機(jī)連接的帶寬使用情況。
- $ sudo iftop -n
n選項(xiàng)可以防止iftop將IP地址解析成主機(jī)名,解析本身就會(huì)帶來(lái)額外的網(wǎng)絡(luò)流量,。
安裝iftop:Ubuntu/Debian/Fedora用戶(hù)可以從默認(rèn)軟件庫(kù)獲得它,。CentOS用戶(hù)可以從Epel獲得它。
- # fedora或centos
- yum install iftop -y
- # ubuntu或 debian
- $ sudo apt-get install iftop
3. iptraf
iptraf是一款交互式,、色彩鮮艷的IP局域網(wǎng)監(jiān)控工具,。它可以顯示每個(gè)連接以及主機(jī)之間傳輸?shù)臄?shù)據(jù)量。下面是屏幕截圖,。
- $ sudo iptraf
安裝iptraf:
- # Centos(基本軟件庫(kù))
- $ yum install iptraf
- # fedora或centos(帶epel)
- $ yum install iptraf-ng -y
- # ubuntu或debian
- $ sudo apt-get install iptraf iptraf-ng
4. nethogs
nethogs是一款小巧的"net top"工具,,可以顯示每個(gè)進(jìn)程所使用的帶寬,并對(duì)列表排序,,將耗用帶寬最多的進(jìn)程排在最上面,。萬(wàn)一出現(xiàn)帶寬使用突然激增的情況,用戶(hù)迅速打開(kāi)nethogs,,就可以找到導(dǎo)致帶寬使用激增的進(jìn)程,。nethogs可以報(bào)告程序的進(jìn)程編號(hào)(PID)、用戶(hù)和路徑,。
- $ sudo nethogs
安裝nethogs:Ubuntu,、Debian和Fedora用戶(hù)可以從默認(rèn)軟件庫(kù)獲得。CentOS用戶(hù)則需要Epel,。
- # ubuntu或debian(默認(rèn)軟件庫(kù))
- $ sudo apt-get install nethogs
- # fedora或centos(來(lái)自epel)
- $ sudo yum install nethogs -y
5. bmon
bmon(帶寬監(jiān)控器)是一款類(lèi)似nload的工具,,它可以顯示系統(tǒng)上所有網(wǎng)絡(luò)接口的流量負(fù)載。輸出結(jié)果還含有圖表和剖面,,附有數(shù)據(jù)包層面的詳細(xì)信息,。
安裝bmon:Ubuntu、Debian和Fedora用戶(hù)可以從默認(rèn)軟件庫(kù)來(lái)安裝,。CentOS用戶(hù)則需要安裝repoforge,,因?yàn)镋pel里面沒(méi)有bmon。
- # ubuntu或debian
- $ sudo apt-get install bmon
- # fedora或centos(來(lái)自repoforge)
- $ sudo yum install bmon
bmon支持許多選項(xiàng),,能夠制作HTML格式的報(bào)告,。欲知更多信息,請(qǐng)參閱參考手冊(cè)頁(yè),。
6. slurm
slurm是另一款網(wǎng)絡(luò)負(fù)載監(jiān)控器,,可以顯示設(shè)備的統(tǒng)計(jì)信息,還能顯示ASCII圖形,。它支持三種不同類(lèi)型的圖形,,使用c鍵、s鍵和l鍵即可激活每種圖形,。slurm功能簡(jiǎn)單,,無(wú)法顯示關(guān)于網(wǎng)絡(luò)負(fù)載的任何更進(jìn)一步的詳細(xì)信息,。
- $ slurm -s -i eth0
安裝slurm
- # debian或ubuntu
- $ sudo apt-get install slurm
- # fedora或centos
- $ sudo yum install slurm -y
7. tcptrack
tcptrack類(lèi)似iftop,使用pcap庫(kù)來(lái)捕獲數(shù)據(jù)包,,并計(jì)算各種統(tǒng)計(jì)信息,,比如每個(gè)連接所使用的帶寬。它還支持標(biāo)準(zhǔn)的pcap過(guò)濾器,,這些過(guò)濾器可用來(lái)監(jiān)控特定的連接,。
安裝tcptrack:Ubuntu、Debian和Fedora在默認(rèn)軟件庫(kù)里面就有它,。CentOS用戶(hù)則需要從RepoForge獲得它,因?yàn)镋pel里面沒(méi)有它,。
- # ubuntu, debian
- $ sudo apt-get install tcptrack
- # fedora, centos(來(lái)自repoforge軟件庫(kù))
- $ sudo yum install tcptrack
8. vnstat
vnstat與另外大多數(shù)工具有點(diǎn)不一樣,。它實(shí)際上運(yùn)行后臺(tái)服務(wù)/守護(hù)進(jìn)程,始終不停地記錄所傳輸數(shù)據(jù)的大小,。之外,,它可以用來(lái)制作顯示網(wǎng)絡(luò)使用歷史情況的報(bào)告。
- $ service vnstat status
- * vnStat daemon is running
運(yùn)行沒(méi)有任何選項(xiàng)的vnstat,,只會(huì)顯示自守護(hù)進(jìn)程運(yùn)行以來(lái)所傳輸?shù)臄?shù)據(jù)總量,。
- $ vnstat
- Database updated: Mon Mar 17 15:26:59 2014
- eth0 since 06/12/13
- rx: 135.14 GiB tx: 35.76 GiB total: 170.90 GiB
- monthly
- rx | tx | total | avg. rate
- ------------------------+-------------+-------------+-------------
- Feb '14 8.19 GiB | 2.08 GiB | 10.27 GiB | 35.60 kbit/s
- Mar '14 4.98 GiB | 1.52 GiB | 6.50 GiB | 37.93 kbit/s
- ------------------------+-------------+-------------+-------------
- estimated 9.28 GiB | 2.83 GiB | 12.11 GiB |
- daily
- rx | tx | total | avg. rate
- ------------------------+-------------+-------------+-------------
- yesterday 236.11 MiB | 98.61 MiB | 334.72 MiB | 31.74 kbit/s
- today 128.55 MiB | 41.00 MiB | 169.56 MiB | 24.97 kbit/s
- ------------------------+-------------+-------------+-------------
- estimated 199 MiB | 63 MiB | 262 MiB |
想實(shí)時(shí)監(jiān)控帶寬使用情況,請(qǐng)使用"-l"選項(xiàng)(實(shí)時(shí)模式),。然后,,它會(huì)顯示入站數(shù)據(jù)和出站數(shù)據(jù)所使用的總帶寬量,但非常精確地顯示,,沒(méi)有關(guān)于主機(jī)連接或進(jìn)程的任何內(nèi)部詳細(xì)信息,。
- $ vnstat -l -i eth0
- Monitoring eth0... (press CTRL-C to stop)
- rx: 12 kbit/s 10 p/s tx: 12 kbit/s 11 p/s
vnstat更像是一款制作歷史報(bào)告的工具,顯示每天或過(guò)去一個(gè)月使用了多少帶寬,。它并不是嚴(yán)格意義上的實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)的工具,。
vnstat支持許多選項(xiàng),支持哪些選項(xiàng)方面的詳細(xì)信息請(qǐng)參閱參考手冊(cè)頁(yè),。
安裝vnstat
- # ubuntu或debian
- $ sudo apt-get install vnstat
- # fedora或 centos(來(lái)自epel)
- $ sudo yum install vnstat
9. bwm-ng
bwm-ng(下一代帶寬監(jiān)控器)是另一款非常簡(jiǎn)單的實(shí)時(shí)網(wǎng)絡(luò)負(fù)載監(jiān)控工具,,可以報(bào)告摘要信息,顯示進(jìn)出系統(tǒng)上所有可用網(wǎng)絡(luò)接口的不同數(shù)據(jù)的傳輸速度,。
- $ bwm-ng
- bwm-ng v0.6 (probing every 0.500s), press 'h' for help
- input: /proc/net/dev type: rate
- / iface Rx Tx T
- ot=================================================================
- == eth0: 0.53 KB/s 1.31 KB/s 1.84
- KB lo: 0.00 KB/s 0.00 KB/s 0.00
- KB-------------------------------------------------------------------------------------------------------------
- total: 0.53 KB/s 1.31 KB/s 1.84
- KB/s
如果控制臺(tái)足夠大,,bwm-ng還能使用curses2輸出模式,為流量繪制條形圖,。
- $ bwm-ng -o curses2
安裝bwm-ng:在CentOS上,,可以從Epel來(lái)安裝bwm-ng。
- # ubuntu或debian
- $ sudo apt-get install bwm-ng
- # fedora或centos(來(lái)自epel)
- $ sudo apt-get install bwm-ng
10. cbm:Color Bandwidth Meter
這是一款小巧簡(jiǎn)單的帶寬監(jiān)控工具,,可以顯示通過(guò)諸網(wǎng)絡(luò)接口的流量大小,。沒(méi)有進(jìn)一步的選項(xiàng),,僅僅實(shí)時(shí)顯示和更新流量的統(tǒng)計(jì)信息。
- $ sudo apt-get install cbm
11. speedometer
這是另一款小巧而簡(jiǎn)單的工具,,僅僅繪制外觀(guān)漂亮的圖形,,顯示通過(guò)某個(gè)接口傳輸?shù)娜胝玖髁亢统稣玖髁俊?
- $ speedometer -r eth0 -t eth0
安裝speedometer
- # ubuntu或debian用戶(hù)
- $ sudo apt-get install speedometer
12. pktstat
pktstat可以實(shí)時(shí)顯示所有活動(dòng)連接,并顯示哪些數(shù)據(jù)通過(guò)這些活動(dòng)連接傳輸?shù)乃俣?。它還可以顯示連接類(lèi)型,,比如TCP連接或UDP連接;如果涉及HTTP連接,,還會(huì)顯示關(guān)于HTTP請(qǐng)求的詳細(xì)信息,。
- $ sudo pktstat -i eth0 -nt
- $ sudo apt-get install pktstat
13. netwatch
netwatch是netdiag工具庫(kù)的一部分,它也可以顯示本地主機(jī)與其他遠(yuǎn)程主機(jī)之間的連接,,并顯示哪些數(shù)據(jù)在每個(gè)連接上所傳輸?shù)乃俣取?
- $ sudo netwatch -e eth0 -nt
- $ sudo apt-get install netdiag
14. trafshow
與netwatch和pktstat一樣,,trafshow也可以報(bào)告當(dāng)前活動(dòng)連接、它們使用的協(xié)議以及每條連接上的數(shù)據(jù)傳輸速度,。它能使用pcap類(lèi)型過(guò)濾器,,對(duì)連接進(jìn)行過(guò)濾。
只監(jiān)控TCP連接
- $ sudo trafshow -i eth0 tcp
- $ sudo apt-get install netdiag
15. netload
netload命令只顯示關(guān)于當(dāng)前流量負(fù)載的一份簡(jiǎn)短報(bào)告,,并顯示自程序啟動(dòng)以來(lái)所傳輸?shù)目傋止?jié)量,。沒(méi)有更多的功能特性。它是netdiag的一部分,。
- $ netload eth0
- $ sudo apt-get install netdiag
16. ifstat
ifstat能夠以批處理式模式顯示網(wǎng)絡(luò)帶寬,。輸出采用的一種格式便于用戶(hù)使用其他程序或?qū)嵱霉ぞ邅?lái)記入日志和分析。
- $ ifstat -t -i eth0 0.5
- Time eth0
- HH:MM:SS KB/s in KB/s out
- 09:59:21 2.62 2.80
- 09:59:22 2.10 1.78
- 09:59:22 2.67 1.84
- 09:59:23 2.06 1.98
- 09:59:23 1.73 1.79
安裝ifstat:Ubuntu,、Debian和Fedora用戶(hù)在默認(rèn)軟件庫(kù)里面就有它,。CentOS用戶(hù)則需要從Repoforge獲得它,因?yàn)镋pel里面沒(méi)有它,。
- # ubuntu, debian
- $ sudo apt-get install ifstat
- # fedora, centos(Repoforge)
- $ sudo yum install ifstat
17. dstat
dstat是一款用途廣泛的工具(用python語(yǔ)言編寫(xiě)),,它可以監(jiān)控系統(tǒng)的不同統(tǒng)計(jì)信息,并使用批處理模式來(lái)報(bào)告,,或者將相關(guān)數(shù)據(jù)記入到CSV或類(lèi)似的文件,。這個(gè)例子顯示了如何使用dstat來(lái)報(bào)告網(wǎng)絡(luò)帶寬。
安裝dstat
- $ dstat -nt
- -net/total- ----system----
- recv send| time
- 0 0 |23-03 10:27:13
- 1738B 1810B|23-03 10:27:14
- 2937B 2610B|23-03 10:27:15
- 2319B 2232B|23-03 10:27:16
- 2738B 2508B|23-03 10:27:17
18. collectl
collectl以一種類(lèi)似dstat的格式報(bào)告系統(tǒng)的統(tǒng)計(jì)信息,;與dstat一樣,,它也收集關(guān)于系統(tǒng)不同資源(如處理器、內(nèi)存和網(wǎng)絡(luò)等)的統(tǒng)計(jì)信息,。這里給出的一個(gè)簡(jiǎn)單例子顯示了如何使用collectl來(lái)報(bào)告網(wǎng)絡(luò)使用/帶寬,。
- $ collectl -sn -oT -i0.5
- waiting for 0.5 second sample...
- # <----------Network---------->
- #Time KBIn PktIn KBOut PktOut
- 10:32:01 40 58 43 66
- 10:32:01 27 58 3 32
- 10:32:02 3 28 9 44
- 10:32:02 5 42 96 96
- 10:32:03 5 48 3 28
安裝collectl
- # Ubuntu/Debian用戶(hù)
- $ sudo apt-get install collectl
- #Fedora
- $ sudo yum install collectl
結(jié)束語(yǔ)
上述幾個(gè)使用方便的命令可以迅速檢查L(zhǎng)inux服務(wù)器上的網(wǎng)絡(luò)帶寬使用情況。不過(guò),,這些命令需要用戶(hù)通過(guò)SSH登錄到遠(yuǎn)程服務(wù)器,。另外,,基于Web的監(jiān)控工具也可以用來(lái)實(shí)現(xiàn)同樣的任務(wù)。
ntop和darkstat是面向Linux系統(tǒng)的其中兩個(gè)基本的基于Web的網(wǎng)絡(luò)監(jiān)控工具,。除此之外還有企業(yè)級(jí)監(jiān)控工具,,比如nagios,它們提供了一批功能特性,,不僅僅可以監(jiān)控服務(wù)器,,還能監(jiān)控整個(gè)基礎(chǔ)設(shè)施。
原文鏈接:http://www.binarytides.com/linux-commands-monitor-network/