Linux服務(wù)器上監(jiān)控網(wǎng)絡(luò)帶寬的18個常用命令和工具

Linux服務(wù)器上監(jiān)控網(wǎng)絡(luò)帶寬的18個常用命令和工具
?

一、如何查看CentOS的網(wǎng)絡(luò)帶寬出口
檢查維護(hù)系統(tǒng)的時候,經(jīng)常會要查看服務(wù)器的網(wǎng)絡(luò)端口是多大的,所以需要用到Linux的一個命令。
如何查看CentOS的網(wǎng)絡(luò)帶寬出口多大?可以用下面的命令來查看。
?
# ethtool eth0
前面是命令,后面跟的是設(shè)備名,如果對外連接的網(wǎng)絡(luò)設(shè)備是eth1,那就需要改成:ethtool eth0
[root@localhost?~]# ethtool eth0
Settings for eth0:
? ? ? ? Supported ports: [ TP ]
? ? ? ? Supported link modes: ? 10baseT/Half 10baseT/Full
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100baseT/Half 100baseT/Full
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1000baseT/Full
? ? ? ? Supported pause frame use: No
? ? ? ? Supports auto-negotiation: Yes
? ? ? ? Advertised link modes: ?10baseT/Half 10baseT/Full
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100baseT/Half 100baseT/Full
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1000baseT/Full
? ? ? ? Advertised pause frame use: No
? ? ? ? Advertised auto-negotiation: Yes
? ? ? ? Speed: 1000Mb/s
? ? ? ? Duplex: Full
? ? ? ? Port: Twisted Pair
? ? ? ? PHYAD: 0
? ? ? ? Transceiver: internal
? ? ? ? Auto-negotiation: on
? ? ? ? MDI-X: Unknown
? ? ? ? Supports Wake-on: d
? ? ? ? Wake-on: d
? ? ? ? Current message level: 0x00000007 (7)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?drv probe link
? ? ? ? Link detected: yes
?
二、Linux服務(wù)器上監(jiān)控網(wǎng)絡(luò)帶寬的18個常用命令和工具
?
本文介紹了一些可以用來監(jiān)控網(wǎng)絡(luò)使用情況的Linux命令行工具。這些工具可以監(jiān)控通過網(wǎng)絡(luò)接口傳輸?shù)臄?shù)據(jù),并測量目前哪些數(shù)據(jù)所傳輸?shù)乃俣?。入站流量和出站流量分開來顯示。
一些命令可以顯示單個進(jìn)程所使用的帶寬。這樣一來,用戶很容易發(fā)現(xiàn)過度使用網(wǎng)絡(luò)帶寬的某個進(jìn)程。
這些工具使用不同的機(jī)制來制作流量報告。nload等一些工具可以讀取"proc/net/dev"文件,以獲得流量統(tǒng)計信息;而一些工具使用pcap庫來捕獲所有數(shù)據(jù)包,然后計算總數(shù)據(jù)量,從而估計流量負(fù)載。
下面是按功能劃分的命令名稱。
·?監(jiān)控總體帶寬使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload
·?監(jiān)控總體帶寬使用(批量式輸出)――vnstat、ifstat、dstat和collectl
·?每個套接字連接的帶寬使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow
·?每個進(jìn)程的帶寬使用――nethogs
1.?Nload
nload是一個命令行工具,讓用戶可以分開來監(jiān)控入站流量和出站流量。它還可以繪制圖表以顯示入站流量和出站流量,視圖比例可以調(diào)整。用起來很簡單,不支持許多選項。
所以,如果你只需要快速查看總帶寬使用情況,無需每個進(jìn)程的詳細(xì)情況,那么nload用起來很方便。
1.?$?nload?
安裝nload:Fedora和Ubuntu在默認(rèn)軟件庫里面就有nload。CentOS用戶則需要從Epel軟件庫獲得nload。
1.?#?fedora或centos?
2.?$?yum?install?nload?-y?
3.?#?ubuntu/debian?
4.?$?sudo?apt-get?install?nload?
2. iftop
iftop可測量通過每一個套接字連接傳輸?shù)臄?shù)據(jù);它采用的工作方式有別于nload。iftop使用pcap庫來捕獲進(jìn)出網(wǎng)絡(luò)適配器的數(shù)據(jù)包,然后匯總數(shù)據(jù)包大小和數(shù)量,搞清楚總的帶寬使用情況。
雖然iftop報告每個連接所使用的帶寬,但它無法報告參與某個套按字連接的進(jìn)程名稱/編號(ID)。不過由于基于pcap庫,iftop能夠過濾流量,并報告由過濾器指定的所選定主機(jī)連接的帶寬使用情況。
1.?$?sudo?iftop?-n?
n選項可以防止iftop將IP地址解析成主機(jī)名,解析本身就會帶來額外的網(wǎng)絡(luò)流量。
安裝iftop:Ubuntu/Debian/Fedora用戶可以從默認(rèn)軟件庫獲得它。CentOS用戶可以從Epel獲得它。
1.?#?fedora或centos?
2.?yum?install?iftop?-y?
3.?#?ubuntu或?debian?
4.?$?sudo?apt-get?install?iftop?
3. iptraf
iptraf是一款交互式、色彩鮮艷的IP局域網(wǎng)監(jiān)控工具。它可以顯示每個連接以及主機(jī)之間傳輸?shù)臄?shù)據(jù)量。下面是屏幕截圖。
1.?$?sudo?iptraf?
安裝iptraf:
1.?#?Centos(基本軟件庫)?
2.?$?yum?install?iptraf?
3.?#?fedora或centos(帶epel)?
4.?$?yum?install?iptraf-ng?-y?
5.?#?ubuntu或debian?
6.?$?sudo?apt-get?install?iptraf?iptraf-ng?
4. nethogs
nethogs是一款小巧的"net top"工具,可以顯示每個進(jìn)程所使用的帶寬,并對列表排序,將耗用帶寬最多的進(jìn)程排在最上面。萬一出現(xiàn)帶寬使用突然激增的情況,用戶迅速打開nethogs,就可以找到導(dǎo)致帶寬使用激增的進(jìn)程。nethogs可以報告程序的進(jìn)程編號(PID)、用戶和路徑。
1.?$?sudo?nethogs?
安裝nethogs:Ubuntu、Debian和Fedora用戶可以從默認(rèn)軟件庫獲得。CentOS用戶則需要Epel。
1.?#?ubuntu或debian(默認(rèn)軟件庫)?
2.?$?sudo?apt-get?install?nethogs?
3.?#?fedora或centos(來自epel)?
4.?$?sudo?yum?install?nethogs?-y?
5. bmon
bmon(帶寬監(jiān)控器)是一款類似nload的工具,它可以顯示系統(tǒng)上所有網(wǎng)絡(luò)接口的流量負(fù)載。輸出結(jié)果還含有圖表和剖面,附有數(shù)據(jù)包層面的詳細(xì)信息。
安裝bmon:Ubuntu、Debian和Fedora用戶可以從默認(rèn)軟件庫來安裝。CentOS用戶則需要安裝repoforge,因為Epel里面沒有bmon。
1.?#?ubuntu或debian?
2.?$?sudo?apt-get?install?bmon?
3.?#?fedora或centos(來自repoforge)?
4.?$?sudo?yum?install?bmon?
bmon支持許多選項,能夠制作HTML格式的報告。欲知更多信息,請參閱參考手冊頁。
6. slurm
slurm是另一款網(wǎng)絡(luò)負(fù)載監(jiān)控器,可以顯示設(shè)備的統(tǒng)計信息,還能顯示ASCII圖形。它支持三種不同類型的圖形,使用c鍵、s鍵和l鍵即可激活每種圖形。slurm功能簡單,無法顯示關(guān)于網(wǎng)絡(luò)負(fù)載的任何更進(jìn)一步的詳細(xì)信息。
1.?$?slurm?-s?-i?eth0?
安裝slurm
1.?#?debian或ubuntu?
2.?$?sudo?apt-get?install?slurm?
3.?#?fedora或centos?
4.?$?sudo?yum?install?slurm?-y?
7. tcptrack
tcptrack類似iftop,使用pcap庫來捕獲數(shù)據(jù)包,并計算各種統(tǒng)計信息,比如每個連接所使用的帶寬。它還支持標(biāo)準(zhǔn)的pcap過濾器,這些過濾器可用來監(jiān)控特定的連接。
安裝tcptrack:Ubuntu、Debian和Fedora在默認(rèn)軟件庫里面就有它。CentOS用戶則需要從RepoForge獲得它,因為Epel里面沒有它。
1.?#?ubuntu,?debian?
2.?$?sudo?apt-get?install?tcptrack?
3.?#?fedora,?centos(來自repoforge軟件庫)?
4.?$?sudo?yum?install?tcptrack?
8. vnstat
vnstat與另外大多數(shù)工具有點不一樣。它實際上運行后臺服務(wù)/守護(hù)進(jìn)程,始終不停地記錄所傳輸數(shù)據(jù)的大小。之外,它可以用來制作顯示網(wǎng)絡(luò)使用歷史情況的報告。
1.?$?service?vnstat?status?
2.?*?vnStat?daemon?is?running?
運行沒有任何選項的vnstat,只會顯示自守護(hù)進(jìn)程運行以來所傳輸?shù)臄?shù)據(jù)總量。
1.?$?vnstat?
2.?Database?updated:?Mon?Mar?17?15:26:59?2014?
3.?eth0?since?06/12/13?
4.?rx:??135.14?GiB??????tx:??35.76?GiB??????total:??170.90?GiB?
5.?monthly?
6.?rx??????|?????tx??????|????total????|???avg.?rate?
7.??
8.?------------------------+-------------+-------------+-------------?
9.?Feb?'14??????8.19?GiB??|????2.08?GiB??|???10.27?GiB?|???35.60?kbit/s?
10.?Mar?'14??????4.98?GiB??|????1.52?GiB??|????6.50?GiB?|???37.93?kbit/s?
11.?------------------------+-------------+-------------+-------------?
12.?estimated???????9.28?GiB?|????2.83?GiB??|???12.11?GiB?|?
13.?daily?
14.?rx??????|?????tx??????|????total????|???avg.?rate?
15.?------------------------+-------------+-------------+-------------?
16.?yesterday?????236.11?MiB?|???98.61?MiB?|??334.72?MiB?|???31.74?kbit/s?
17.?today????128.55?MiB?|???41.00?MiB?|??169.56?MiB?|???24.97?kbit/s?
18.?------------------------+-------------+-------------+-------------?
19.?estimated???????199?MiB?|??????63?MiB?|?????262?MiB?|?
想實時監(jiān)控帶寬使用情況,請使用"-l"選項(實時模式)。然后,它會顯示入站數(shù)據(jù)和出站數(shù)據(jù)所使用的總帶寬量,但非常精確地顯示,沒有關(guān)于主機(jī)連接或進(jìn)程的任何內(nèi)部詳細(xì)信息。
1.?$?vnstat?-l?-i?eth0?
2.?Monitoring?eth0...????(press?CTRL-C?to?stop)?
3.?rx:???????12?kbit/s????10?p/s??????????tx:???????12?kbit/s????11?p/s?
vnstat更像是一款制作歷史報告的工具,顯示每天或過去一個月使用了多少帶寬。它并不是嚴(yán)格意義上的實時監(jiān)控網(wǎng)絡(luò)的工具。
vnstat支持許多選項,支持哪些選項方面的詳細(xì)信息請參閱參考手冊頁。
安裝vnstat
1.?#?ubuntu或debian?
2.?$?sudo?apt-get?install?vnstat?
3.?#?fedora或?centos(來自epel)?
4.?$?sudo?yum?install?vnstat?
9. bwm-ng
bwm-ng(下一代帶寬監(jiān)控器)是另一款非常簡單的實時網(wǎng)絡(luò)負(fù)載監(jiān)控工具,可以報告摘要信息,顯示進(jìn)出系統(tǒng)上所有可用網(wǎng)絡(luò)接口的不同數(shù)據(jù)的傳輸速度。
1.?$?bwm-ng?
2.?bwm-ng?v0.6?(probing?every?0.500s),?press?'h'?for?help?
3.?input:?/proc/net/dev?type:?rate?
4.?/?????????iface???????????????????Rx???????????????????Tx????????????????T?
5.?ot=================================================================?
6.?==???????????eth0:???????????0.53?KB/s????????????1.31?KB/s????????????1.84?
7.?KB?????????????lo:???????????0.00?KB/s????????????0.00?KB/s????????????0.00?
8.?KB-------------------------------------------------------------------------------------------------------------?
9.?total:???????????0.53?KB/s????????????1.31?KB/s????????????1.84?
10.?KB/s?
如果控制臺足夠大,bwm-ng還能使用curses2輸出模式,為流量繪制條形圖。
1.?$?bwm-ng?-o?curses2?
安裝bwm-ng:在CentOS上,可以從Epel來安裝bwm-ng。
1.?#?ubuntu或debian?
2.?$?sudo?apt-get?install?bwm-ng?
3.?#?fedora或centos(來自epel)?
4.?$?sudo?apt-get?install?bwm-ng?
10. cbm:Color Bandwidth Meter
這是一款小巧簡單的帶寬監(jiān)控工具,可以顯示通過諸網(wǎng)絡(luò)接口的流量大小。沒有進(jìn)一步的選項,僅僅實時顯示和更新流量的統(tǒng)計信息。
1.?$?sudo?apt-get?install?cbm?
11. speedometer
這是另一款小巧而簡單的工具,僅僅繪制外觀漂亮的圖形,顯示通過某個接口傳輸?shù)娜胝玖髁亢统稣玖髁俊?/p>
1.?$?speedometer?-r?eth0?-t?eth0?
安裝speedometer
1.?#?ubuntu或debian用戶?
2.?$?sudo?apt-get?install?speedometer?
12. pktstat
pktstat可以實時顯示所有活動連接,并顯示哪些數(shù)據(jù)通過這些活動連接傳輸?shù)乃俣取K€可以顯示連接類型,比如TCP連接或UDP連接;如果涉及HTTP連接,還會顯示關(guān)于HTTP請求的詳細(xì)信息。
1.?$?sudo?pktstat?-i?eth0?-nt?
2.?$?sudo?apt-get?install?pktstat?
13. netwatch
netwatch是netdiag工具庫的一部分,它也可以顯示本地主機(jī)與其他遠(yuǎn)程主機(jī)之間的連接,并顯示哪些數(shù)據(jù)在每個連接上所傳輸?shù)乃俣取?/p>
1.?$?sudo?netwatch?-e?eth0?-nt?
2.?$?sudo?apt-get?install?netdiag?
14. trafshow
與netwatch和pktstat一樣,trafshow也可以報告當(dāng)前活動連接、它們使用的協(xié)議以及每條連接上的數(shù)據(jù)傳輸速度。它能使用pcap類型過濾器,對連接進(jìn)行過濾。
只監(jiān)控TCP連接
1.?$?sudo?trafshow?-i?eth0?tcp?
2.?$?sudo?apt-get?install?netdiag?
15. netload
netload命令只顯示關(guān)于當(dāng)前流量負(fù)載的一份簡短報告,并顯示自程序啟動以來所傳輸?shù)目傋止?jié)量。沒有更多的功能特性。它是netdiag的一部分。
1.?$?netload?eth0?
2.?$?sudo?apt-get?install?netdiag?
16. ifstat
ifstat能夠以批處理式模式顯示網(wǎng)絡(luò)帶寬。輸出采用的一種格式便于用戶使用其他程序或?qū)嵱霉ぞ邅碛浫肴罩竞头治觥?/p>
1.?$?ifstat?-t?-i?eth0?0.5?
2.?Time???????????eth0?
3.?HH:MM:SS???KB/s?in??KB/s?out?
4.?09:59:21??? ???2.62??????2.80?
5.?09:59:22??? ???2.10??????1.78?
6.?09:59:22??? ???2.67??????1.84?
7.?09:59:23???? ??2.06??????1.98?
8.?09:59:23???? ??1.73??????1.79?
安裝ifstat:Ubuntu、Debian和Fedora用戶在默認(rèn)軟件庫里面就有它。CentOS用戶則需要從Repoforge獲得它,因為Epel里面沒有它。
1.?#?ubuntu,?debian?
2.?$?sudo?apt-get?install?ifstat?
3.?#?fedora,?centos(Repoforge)?
4.?$?sudo?yum?install?ifstat?
17. dstat
dstat是一款用途廣泛的工具(用python語言編寫),它可以監(jiān)控系統(tǒng)的不同統(tǒng)計信息,并使用批處理模式來報告,或者將相關(guān)數(shù)據(jù)記入到CSV或類似的文件。這個例子顯示了如何使用dstat來報告網(wǎng)絡(luò)帶寬。
安裝dstat
1.?$?dstat?-nt?
2.?-net/total-?----system----?
3.?recv??send|?????time?
4.?0?????0?|23-03?10:27:13?
5.?1738B?1810B|23-03?10:27:14?
6.?2937B?2610B|23-03?10:27:15?
7.?2319B?2232B|23-03?10:27:16?
8.?2738B?2508B|23-03?10:27:17?
18. collectl
collectl以一種類似dstat的格式報告系統(tǒng)的統(tǒng)計信息;與dstat一樣,它也收集關(guān)于系統(tǒng)不同資源(如處理器、內(nèi)存和網(wǎng)絡(luò)等)的統(tǒng)計信息。這里給出的一個簡單例子顯示了如何使用collectl來報告網(wǎng)絡(luò)使用/帶寬。
1.?$?collectl?-sn?-oT?-i0.5?
2.?waiting?for?0.5?second?sample...?
3.?#?????????<----------Network---------->?
4.?#Time???????KBIn??PktIn??KBOut??PktOut?
5.?10:32:01??????40?????58?????43??????66?
6.?10:32:01??????27?????58??????3??????32?
7.?10:32:02???????3?????28??????9??????44?
8.?10:32:02???????5?????42?????96??????96?
9.?10:32:03???????5?????48??????3??????28?
安裝collectl
1.?#?Ubuntu/Debian用戶?
2.?$?sudo?apt-get?install?collectl?
3.?#Fedora?
4.?$?sudo?yum?install?collectl?
上述幾個使用方便的命令可以迅速檢查Linux服務(wù)器上的網(wǎng)絡(luò)帶寬使用情況。不過,這些命令需要用戶通過SSH登錄到遠(yuǎn)程服務(wù)器。另外,基于Web的監(jiān)控工具也可以用來實現(xiàn)同樣的任務(wù)。
ntop和darkstat是面向Linux系統(tǒng)的其中兩個基本的基于Web的網(wǎng)絡(luò)監(jiān)控工具。除此之外還有企業(yè)級監(jiān)控工具,比如nagios,它們提供了一批功能特性,不僅僅可以監(jiān)控服務(wù)器,還能監(jiān)控整個基礎(chǔ)設(shè)施
大帶寬服務(wù)器BGP IP:
140.210.20.1
140.210.20.2
140.210.20.3
140.210.20.4
140.210.20.5
140.210.20.6
140.210.20.7
140.210.20.8
140.210.20.9
140.210.20.10
140.210.20.11
140.210.20.12
140.210.20.13
140.210.20.14
140.210.20.15
140.210.20.16
140.210.20.17
140.210.20.18
140.210.20.19
140.210.20.20
140.210.20.21
140.210.20.22
140.210.20.23
140.210.20.24
140.210.20.25
140.210.20.26
140.210.20.27
140.210.20.28
140.210.20.29
140.210.20.30
140.210.20.31
140.210.20.32
140.210.20.33
140.210.20.34
140.210.20.35
140.210.20.36
140.210.20.37
140.210.20.38
140.210.20.39
140.210.20.40
140.210.20.41
140.210.20.42
140.210.20.43
140.210.20.44
140.210.20.45
140.210.20.46
140.210.20.47
140.210.20.48
140.210.20.49
140.210.20.50
140.210.20.51
140.210.20.52
140.210.20.53
140.210.20.54
140.210.20.55
140.210.20.56
140.210.20.57
140.210.20.58
140.210.20.59
140.210.20.60
140.210.20.61
140.210.20.62
140.210.20.63
140.210.20.64
140.210.20.65
140.210.20.66
140.210.20.67
140.210.20.68
140.210.20.69
140.210.20.70
140.210.20.71
140.210.20.72
140.210.20.73
140.210.20.74
140.210.20.75
140.210.20.76
140.210.20.77
140.210.20.78
140.210.20.79
140.210.20.80
140.210.20.81
140.210.20.82
140.210.20.83
140.210.20.84
140.210.20.85
140.210.20.86
140.210.20.87
140.210.20.88
140.210.20.89
140.210.20.90
140.210.20.91
140.210.20.92
140.210.20.93
140.210.20.94
140.210.20.95
140.210.20.96
140.210.20.97
140.210.20.98
140.210.20.99
140.210.20.100
140.210.20.101
140.210.20.102
140.210.20.103
140.210.20.104
140.210.20.105
140.210.20.106
140.210.20.107
140.210.20.108
140.210.20.109
140.210.20.110
140.210.20.111
140.210.20.112
140.210.20.113
140.210.20.114
140.210.20.115
140.210.20.116
140.210.20.117
140.210.20.118
140.210.20.119
140.210.20.120
140.210.20.121
140.210.20.122
140.210.20.123
140.210.20.124
140.210.20.125
140.210.20.126
140.210.20.127
140.210.20.128
140.210.20.129
140.210.20.130
140.210.20.131
140.210.20.132
140.210.20.133
140.210.20.134
140.210.20.135
140.210.20.136
140.210.20.137
140.210.20.138
140.210.20.139
140.210.20.140
140.210.20.141
140.210.20.142
140.210.20.143
140.210.20.144
140.210.20.145
140.210.20.146
140.210.20.147
140.210.20.148
140.210.20.149
140.210.20.150
140.210.20.151
140.210.20.152
140.210.20.153
140.210.20.154
140.210.20.155
140.210.20.156
140.210.20.157
140.210.20.158
140.210.20.159
140.210.20.160
140.210.20.161
140.210.20.162
140.210.20.163
140.210.20.164
140.210.20.165
140.210.20.166
140.210.20.167
140.210.20.168
140.210.20.169
140.210.20.170
140.210.20.171
140.210.20.172
140.210.20.173
140.210.20.174
140.210.20.175
140.210.20.176
140.210.20.177
140.210.20.178
140.210.20.179
140.210.20.180
140.210.20.181
140.210.20.182
140.210.20.183
140.210.20.184
140.210.20.185
140.210.20.186
140.210.20.187
140.210.20.188
140.210.20.189
140.210.20.190
140.210.20.191
140.210.20.192
140.210.20.193
140.210.20.194
140.210.20.195
140.210.20.196
140.210.20.197
140.210.20.198
140.210.20.199
140.210.20.200
140.210.20.201
140.210.20.202
140.210.20.203
140.210.20.204
140.210.20.205
140.210.20.206
140.210.20.207
140.210.20.208
140.210.20.209
140.210.20.210
140.210.20.211
140.210.20.212
140.210.20.213
140.210.20.214
140.210.20.215
140.210.20.216
140.210.20.217
140.210.20.218
140.210.20.219
140.210.20.220
140.210.20.221
140.210.20.222
140.210.20.223
140.210.20.224
140.210.20.225
140.210.20.226
140.210.20.227
140.210.20.228
140.210.20.229
140.210.20.230
140.210.20.231
140.210.20.232
140.210.20.233
140.210.20.234
140.210.20.235
140.210.20.236
140.210.20.237
140.210.20.238
140.210.20.239
140.210.20.240
140.210.20.241
140.210.20.242
140.210.20.243
140.210.20.244
140.210.20.245
140.210.20.246
140.210.20.247
140.210.20.248
140.210.20.249
140.210.20.250
140.210.20.251
140.210.20.252
140.210.20.253
140.210.20.254
140.210.20.255
?
?
?