linux最全網絡監控命令梳理及評測
1 iptraf
通過iptraf觀察流量效果非常直觀,如下所示是cenos安裝的命令:
yum install iptraf
安裝成功後,可以通過如下命令查看幫助信息:
通常情況下我們抓指定網口的流量統計,可以使用-d選項,如下圖所示是執行iptraf-ng -d eth0
進入X視圖模式後的統計界面,輸入x可以直接退出;
直接輸入`iptraf-ng命令會進入導航視圖,用戶可以根據需求選擇不同選項,完成指定統計觀察:
2 nload
nload沒有iptraf色彩交互靚麗,功能更加直接,安裝方式同樣是yum爲主:
#### yum方式:
yum install -y nload
#### 源碼包方式:
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz
tar -zxvf nload-0.7.4.tar.gz
cd nload-0.7.4
./configure;make;make install
如下是nload的一些命令行備忘:
#### 1-查看所有網卡的流量
nload
#### 2-輸入nload venet0, 查看指定網卡流量
nload venet0
#### 3-顯示以MB爲單位的流量,也可以改成K
nload -u M
#### 4-設置刷新間隔時間100ms
nload -t 100 eth0
#### 5-設置最大縮放比率,默認是10240,如果按照默認的話,如果流量小的話,比率過大就看不出什麼變化了,因此可以使用-o 來制定縮放比率
nload -t 500 -o 500 -U M eth0
如下圖所示是經過縮放後的流量統計狀態:
3 iftop
iftop是類似於top的流量監控工具, iftop可以用來監控網卡的實時流量(可以指定網段)、反向解析IP、顯示端口信息等;
安裝方式如下所示:
#### 01 yum安裝
yum install iftop
#### 02編譯安裝方式
下載iftop
cd /usr/local/
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure --prefix=/usr/local/iftop
make && make install
常用iftop命令如下所示:
#### 01-查看eth1這塊外網網卡的流量使用情況
iftop –i eth1
#### 02-如下是摘自https://www.cnblogs.com/yinzhengjie/p/6223467.html的詳細參考選項:
i設定監測的網卡,如:# iftop -i eth1
-B 以bytes爲單位顯示流量(默認是bits),如:# iftop -B
-n使host信息默認直接都顯示IP,如:# iftop -n
-N使端口信息默認直接都顯示端口號,如: # iftop -N
-F顯示特定網段的進出流量,如# iftop -F 172.30.1.0/24或# iftop -F 172.30.1.0/255.255.255.0
-h(display this message),幫助,顯示參數信息
-p使用這個參數後,中間的列表顯示的本地主機信息,出現了本機以外的IP信息;
-b使流量圖形條默認就顯示;
-f這個暫時還不太會用,過濾計算包用的;
-P使host信息及端口信息默認就都顯示;
-m設置界面最上邊的刻度的最大值,刻度分五個大段顯示,例:# iftop -m 100M
6.進入iftop畫面後的一些操作命令(注意大小寫喲~)
按h切換是否顯示幫助;
按n切換顯示本機的IP或主機名;
按s切換是否顯示本機的host信息;
按d切換是否顯示遠端目標主機的host信息;
按t切換顯示格式爲2行/1行/只顯示發送流量/只顯示接收流量;
按N切換顯示端口號或端口服務名稱;
按S切換是否顯示本機的端口信息;
按D切換是否顯示遠端目標主機的端口信息;
按p切換是否顯示端口信息;
按P切換暫停/繼續顯示;
按b切換是否顯示平均流量圖形條;
按B切換計算2秒或10秒或40秒內的平均流量;
按T切換是否顯示每個連接的總流量;
按l打開屏幕過濾功能,輸入要過濾的字符,比如ip,按回車後,屏幕就只顯示這個IP相關的流量信息;
按L切換顯示畫面上邊的刻度;刻度不同,流量圖形條會有變化;
按j或按k可以向上或向下滾動屏幕顯示的連接記錄;
按1或2或3可以根據右側顯示的三列流量數據進行排序;
按<根據左邊的本機名或IP排序;
按>根據遠端目標主機的主機名或IP排序;
按o切換是否固定只顯示當前的連接;
按f可以編輯過濾代碼,這是翻譯過來的說法,我還沒用過這個!
按!可以使用shell命令,這個沒用過!沒搞明白啥命令在這好用呢!
按q退出監控。
參考鏈接
Iptables -A OUTPUT -d 192.230.123.101 –j REJECT
iptables-A OUTPUT -d 192.230.0.0/16 -j REJECT
下圖所示是iftop的一個監控界面展示:
4 dstat
dstat是一個大而全的工具,查看幫助文檔,似乎什麼都能做,包括cpu、硬盤、流量、內存、網絡、io、交換分區、時間,甚至包括了tcp、udp、socket等信息,但是也可能正是因爲這個兼容的原因,在界面呈現,單獨就某個領域的功能而言沒有上述幾款功能統計的詳細。這或許就是專才和通才難以避免會存在的區別。
dstat安裝較爲簡單,同樣是使用yum即可:
yum install dstat
下圖所示是其進行網絡統計的一個截圖:
5 nethogs
nethogs可以方便的查看佔用帶寬最高進程,並明確pid及路徑,在平時定位流量激增問題時會是一個很好的幫手;
安裝命令如下:
yum install nethogs
運行也非常簡單,直接輸入nethogs即可;
6 bmon
bmon(帶寬監控器)是一款類似nload的工具,它可以顯示系統上所有網絡接口的流量負載。輸出結果還含有圖表和剖面,附有數據包層面的詳細信息
安裝方式仍然是yun即可,常用命令如下所示:
bmon -p eth0
7 更多工具列表
- | 簡單描述 | 備註 |
---|---|---|
slurm | 可以顯示設備的統計信息,還能顯示ASCII圖形。 | slurm -s -i eth0 |
tcptrack | cptrack類似iftop,使用pcap庫來捕獲數據包,並計算各種統計信息,比如每個連接所使用的帶寬。 它還支持標準的pcap過濾器,這些過濾器可用來監控特定的連接。 |
|
vnstat | 運行後臺服務/守護進程,始終不停地記錄所傳輸數據的大小。之外,它可以用來製作顯示網絡使用歷史情況的報告。 | |
bwm-ng | 下一代帶寬監控器)是另一款非常簡單的實時網絡負載監控工具,可以報告摘要信息,顯示進出系統上所有可用網絡接口的不同數據的傳輸速度。 | |
cbm | ||
speedometer | 顯示通過某個接口傳輸的入站流量和出站流量。 | |
pktstat | 可以實時顯示所有活動連接,並顯示哪些數據通過這些活動連接傳輸的速度。它還可以顯示連接類型,比如TCP連接或UDP連接;如果涉及HTTP連接,還會顯示關於HTTP請求的詳細信息 | |
netwatch | netdiag工具庫的一部分,它也可以顯示本地主機與其他遠程主機之間的連接 | sudo netwatch -e eth0 -nt |
trafshow | 與netwatch和pktstat一樣,trafshow也可以報告當前活動連接、它們使用的協議以及每條連接上的數據傳輸速度。它能使用pcap類型過濾器,對連接進行過濾。 | |
netload | 命令只顯示關於當前流量負載的一份簡短報告,並顯示自程序啓動以來所傳輸的總字節量。 | |
ifstat | ifstat能夠以批處理式模式顯示網絡帶寬。輸出採用的一種格式便於用戶使用其他程序或實用工具來記入日誌和分析。 | |
collectl | 以一種類似dstat的格式報告系統的統計信息;與dstat一樣,它也收集關於系統不同資源(如處理器、內存和網絡等)的統計信息。這裏給出的一個簡單例子顯示瞭如何使用collectl來報告網絡使用/帶寬。 |
8 評測小結
總的來說關於網絡監控梳理出來的這些工具,每一款的側重點和功能不盡相同,但是確實有些明星命令行勝在全面或者好看,下面我將簡單小結一下讓我影響深刻的幾個工具:
- iptraf: 擁有所有命令中設計最好看的交互界面,功能豐富度一般;
- nload:界面中庸,但是功能強大,專注於網絡監控,值得推薦;
- iftop:與nload一樣,同樣功能強大,專業強;
- dstat:一款大而全的工具,但是缺點同樣明顯,缺乏特長;
- nethogs: 日常定位流量激增問題的簡單好幫手;
- bmon: 類似於nload和iftop,專注於報文統計詳情方向;