Linux 網(wǎng)絡流量監(jiān)控利器 iftop 中文入門指南
點擊上方“程序員大白”,選擇“星標”公眾號
重磅干貨,第一時間送達
本文轉(zhuǎn)載自:「 博客園 」
原文:http://t.cn/A6tM3oLg
iftop 是什么
在 Linux 系統(tǒng)下即時監(jiān)控服務器的網(wǎng)絡帶寬使用情況,有很多工具,比如 iptraf、nethogs 等等,但是推薦使用小巧但功能很強大的 iftop 工具。
iftop 是 Linux 系統(tǒng)一個免費的網(wǎng)卡實時流量監(jiān)控工具,類似于 top 命令。iftop 可以監(jiān)控指定網(wǎng)卡的實時流量、端口連接信息、反向解析 IP 等,還可以精確顯示本機網(wǎng)絡流量及網(wǎng)絡內(nèi)各主機和本機相互通信的流量集合,非常適合于監(jiān)控代理服務器或路由器的網(wǎng)絡流量。
同時,iftop 對檢測流量異常的主機非常有效,通過 iftop 的輸出可以迅速定位主機流量異常的根源,這對于網(wǎng)絡故障排查、網(wǎng)絡安全檢測是十分有用的。缺點就是無報表功能,且必須以 root 身份才能運行。
安裝
通過軟件管理工具安裝
# CentOS
$ sudo yum install iftop
# Ubuntu
$ sudo apt install iftop
通過源代碼編譯安裝
# 安裝比較軟件包
$ sudo um install libpcap libpcap-devel ncurses ncurses-devel flex byacc
# 下載軟件包
$ 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
$ make && make install
常用參數(shù)
-i 指定需要檢測的網(wǎng)卡, 如果有多個網(wǎng)絡接口,則需要注意網(wǎng)絡接口的選擇,如:# iftop -i eth1
-B 將輸出以 byte 為單位顯示網(wǎng)卡流量,默認是 bit
-n 將輸出的主機信息都通過 IP 顯示,不進行 DNS 解析
-N 只顯示連接端口號,不顯示端口對應的服務名稱
-F 顯示特定網(wǎng)段的網(wǎng)卡進出流量 如: iftop -F 192.168.85.0/24
-h 幫助,顯示參數(shù)信息
-p 以混雜模式運行 iftop,此時 iftop 可以用作網(wǎng)絡嗅探器
-P 顯示主機以及端口信息
-m 設置輸出界面中最上面的流量刻度最大值,流量刻度分 5 個大段顯示 如:# iftop -m 100M
-f 使用篩選碼選擇數(shù)據(jù)包來計數(shù) 如 iftop -f filter code
-b 不顯示流量圖形條
-c 指定可選的配置文件,如:iftop -c config file
-t 使用不帶 ncurses 的文本界面,
以下兩個是只和 -t 一起用的:
-s num num 秒后打印一次文本輸出然后退出,-t -s 60 組合使用,表示取 60 秒網(wǎng)絡流量輸出到終端
-L num 打印的行數(shù)
-f 參數(shù)支持 tcpdump 的語法,可以使用各種過濾條件。
界面操作
界面信息
安裝完 iftop 工具后,直接輸入 iftop 命令即可顯示網(wǎng)卡實時流量信息。在默認情況下,iftop 顯示系統(tǒng)第一塊網(wǎng)卡的流量信息,如果要顯示指定網(wǎng)卡信息,可通過“-i”參數(shù)實現(xiàn)。執(zhí)行“iftop -P -i eth0”命令,得到如下圖所示的 iftop 的一個典型輸出界面。
第一部分
iftop 輸出中最上面的一行,此行信息是流量刻度,用于顯示網(wǎng)卡帶寬流量。 第二部分
此部分為分割線中間的部分,其中又分別分為左、中、右三列。左列和中列,記錄了哪些 IP 或主機正在和本機的網(wǎng)絡進行連接。其中,中列的“=>”代表發(fā)送數(shù)據(jù),“<=”代表接收數(shù)據(jù),通過這個指示箭頭可以很清晰地知道兩個 IP 之間的通信情況。最右列又分為三小列,這些實時參數(shù)分別表示外部 IP 連接到本機 2 秒內(nèi)、10 秒內(nèi)和 40 秒內(nèi)的平均流量值。 另外,這個部分還有一個流量圖形條,流量圖形條是對流量大小的動態(tài)展示,以第一部分中的流量刻度為基準。通過這個流量圖形條可以很方便地看出哪個 IP 的流量最大,進而迅速定位網(wǎng)絡中可能出現(xiàn)的流量問題。 第三部分
位于 iftop 輸出的最下面,可以分為三行,其中,“TX”表示發(fā)送數(shù)據(jù),“RX”表示接收數(shù)據(jù),“TOTAL”表示發(fā)送和接收全部流量。與這三行對應的有三列,其中“cum”列表示從運行 iftop 到目前的發(fā)送、接收和總數(shù)據(jù)流量?!皃eak”列表示發(fā)送、接收以及總的流量峰值。“rates”列表示過去 2s、10s、40s 的平均流量值。 
交互操作
在 iftop 的實時監(jiān)控界面中,還可以對輸出結果進行交互式操作,用于對輸出信息進行整理和過濾,在上圖所示界面中,按鍵 “h” 即可進入交互選項界面,如下圖所示。iftop 的交互功能和 Linux 下的 top 命令非常類似,交互參數(shù)主要分為 4 個部分,分別是一般參數(shù)、主機顯示參數(shù)、端口顯示參數(shù)和輸出排序參數(shù)。相關參數(shù)的含義如下表所示。
參數(shù) 含義
P 通過此鍵可切換暫停/繼續(xù)顯示
h 通過此鍵可在交互參數(shù)界面/狀態(tài)輸出界面之間來回切換
b 通過此鍵可切換是否顯示平均流量圖形條
B 通過此鍵可切換顯示2秒、10秒、40秒內(nèi)的平均流量
T 通過此鍵可切換是否顯示每個連接的總流量
j/k 按j鍵或k鍵可以向上或向下滾動屏幕顯示當前的連接信息
l 通過此鍵可打開iftop輸出過濾功能,比如輸入要顯示的IP,按回車后,屏幕就只顯示與這個IP相關的流量信息
L 通過此鍵可切換顯示流量刻度范圍,刻度不同,流量圖形條會跟著變化
q 通過此鍵可退出iftop流量監(jiān)控界面
n 通過此鍵可使iftop輸出結果以IP或主機名的方式顯示
s 通過此鍵可切換是否顯示源主機信息
d 通過此鍵可切換是否顯示遠端目標主機信息
t 通過此鍵可切換iftop顯示格式,連續(xù)按此鍵可依次顯示:以兩行顯示發(fā)送接收流量、以一行顯示發(fā)送接收流量、只顯示發(fā)送流量/接收流量
N 通過此鍵可切換顯示端口號/端口號對應服務名稱
S 通過此鍵可切換是否顯示本地源主機的端口信息
D 通過此鍵可切換是否顯示遠端目標主機的端口信息
p 通過此鍵可切換是否顯示端口信息
1/2/3 根據(jù)最近 2 秒、10 秒、40 秒的平均網(wǎng)絡流量排序
< 通過此鍵可根據(jù)左邊的本地主機名或IP地址進行排序
> 通過此鍵可根據(jù)遠端目標主機的主機名或IP地址進行排序
o 通過此鍵可切換是否固定顯示當前的連接
使用示例
顯示網(wǎng)卡 eth0 的信息,主機通過 ip 顯示
$ iftop -i eth0 -n
顯示端口號(添加 -P 參數(shù),進入界面可通過 p 參數(shù)關閉)
$ iftop -i eth0 -n -P
顯示將輸出以 byte 為單位顯示網(wǎng)卡流量,默認是 bit
$ iftop -i eth0 -n -B
顯示流量進度條
## 進入界面后按下 L
$ iftop -i eth0 -n
顯示每個連接的總流量
## 進入界面后按下 T
$ iftop -i eth0 -n
顯示指定 ip 172.17.1.158 的流量
進入界面后按下 l 后,再輸入 172.17.1.158 并回車)
$ iftop -i eth0 -n
實戰(zhàn)
下面我們將通過找出最費流量的 IP 和端口號這一具體實例,來演示 iftop 強大的功能。
進入界面
$ iftop -i eth0 -nNB -m 10M
-i 指定網(wǎng)卡, -n 代表主機通過ip顯示不走DNS -N 只顯示連接端口號,不顯示端口對應的服務名稱(不加會顯示如ssh這樣的服務名稱,不便于排查) -B 指定顯示單位為Kb,默認是bit,太??! -m 設置輸出界面中最上面的流量刻度最大值,流量刻度分5個大段顯示
進入后界面如下:

按下 L 顯示流量刻度
L 參數(shù)直接顯示進度條,方便人類閱讀。

按下 T 顯示總量
有個總數(shù)統(tǒng)計,看著方便!
按下 3,根據(jù)最近 40s 統(tǒng)計排序
用平均值來統(tǒng)計最權威點

按下 t,發(fā)送和接受合成一行 
多按幾次 B,查看最近 2s、10s、40s 的統(tǒng)計

篩選指定 IP 172.17.1.158
按下 l, 輸入172.17.1.158,出現(xiàn)如下


找到這個 IP 哪個端口流量用得最多
按下 p, 根據(jù)端口號顯示

推薦閱讀
國產(chǎn)小眾瀏覽器因屏蔽視頻廣告,被索賠100萬(后續(xù))
年輕人“不講武德”:因看黃片上癮,把網(wǎng)站和786名女主播起訴了
關于程序員大白
程序員大白是一群哈工大,東北大學,西湖大學和上海交通大學的碩士博士運營維護的號,大家樂于分享高質(zhì)量文章,喜歡總結知識,歡迎關注[程序員大白],大家一起學習進步!


