您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何入門Linux網絡流量監控利器iftop,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
iftop 是什么
在 Linux 系統下即時監控服務器的網絡帶寬使用情況,有很多工具,比如 iptraf、nethogs 等等,但是推薦使用小巧但功能很強大的 iftop 工具。
iftop 是 Linux 系統一個免費的網卡實時流量監控工具,類似于 top 命令。iftop 可以監控指定網卡的實時流量、端口連接信息、反向解析 IP 等,還可以精確顯示本機網絡流量及網絡內各主機和本機相互通信的流量集合,非常適合于監控代理服務器或路由器的網絡流量。
同時,iftop 對檢測流量異常的主機非常有效,通過 iftop 的輸出可以迅速定位主機流量異常的根源,這對于網絡故障排查、網絡安全檢測是十分有用的。缺點就是無報表功能,且必須以 root 身份才能運行。
安裝
1. 通過軟件管理工具安裝
# CentOS $ sudo yum install iftop # Ubuntu $ sudo apt install iftop
2. 通過源代碼編譯安裝
# 安裝比較軟件包 $ 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
3. 常用參數
-i 指定需要檢測的網卡, 如果有多個網絡接口,則需要注意網絡接口的選擇,如:# iftop -i eth2 -B 將輸出以 byte 為單位顯示網卡流量,默認是 bit -n 將輸出的主機信息都通過 IP 顯示,不進行 DNS 解析 -N 只顯示連接端口號,不顯示端口對應的服務名稱 -F 顯示特定網段的網卡進出流量 如: iftop -F 192.168.85.0/24 -h 幫助,顯示參數信息 -p 以混雜模式運行 iftop,此時 iftop 可以用作網絡嗅探器 -P 顯示主機以及端口信息 -m 設置輸出界面中最上面的流量刻度最大值,流量刻度分 5 個大段顯示 如:# iftop -m 100M -f 使用篩選碼選擇數據包來計數 如 iftop -f filter code -b 不顯示流量圖形條 -c 指定可選的配置文件,如:iftop -c config file -t 使用不帶 ncurses 的文本界面, 以下兩個是只和 -t 一起用的: -s num num 秒后打印一次文本輸出然后退出,-t -s 60 組合使用,表示取 60 秒網絡流量輸出到終端 -L num 打印的行數 -f 參數支持 tcpdump 的語法,可以使用各種過濾條件。
界面操作
1. 界面信息
安裝完 iftop 工具后,直接輸入 iftop 命令即可顯示網卡實時流量信息。在默認情況下,iftop 顯示系統第一塊網卡的流量信息,如果要顯示指定網卡信息,可通過“-i”參數實現。執行“iftop -P -i eth0”命令,得到如下圖所示的 iftop 的一個典型輸出界面。
第一部分
iftop 輸出中最上面的一行,此行信息是流量刻度,用于顯示網卡帶寬流量。
第二部分
此部分為分割線中間的部分,其中又分別分為左、中、右三列。左列和中列,記錄了哪些 IP 或主機正在和本機的網絡進行連接。其中,中列的“=>”代表發送數據,“<=”代表接收數據,通過這個指示箭頭可以很清晰地知道兩個 IP 之間的通信情況。最右列又分為三小列,這些實時參數分別表示外部 IP 連接到本機 2 秒內、10 秒內和 40 秒內的平均流量值。
另外,這個部分還有一個流量圖形條,流量圖形條是對流量大小的動態展示,以第一部分中的流量刻度為基準。通過這個流量圖形條可以很方便地看出哪個 IP 的流量最大,進而迅速定位網絡中可能出現的流量問題。
第三部分
位于 iftop 輸出的最下面,可以分為三行,其中,“TX”表示發送數據,“RX”表示接收數據,“TOTAL”表示發送和接收全部流量。與這三行對應的有三列,其中“cum”列表示從運行 iftop 到目前的發送、接收和總數據流量。“peak”列表示發送、接收以及總的流量峰值。“rates”列表示過去 2s、10s、40s 的平均流量值。
2. 交互操作
在 iftop 的實時監控界面中,還可以對輸出結果進行交互式操作,用于對輸出信息進行整理和過濾,在上圖所示界面中,按鍵 “h” 即可進入交互選項界面,如下圖所示。iftop 的交互功能和 Linux 下的 top 命令非常類似,交互參數主要分為 4 個部分,分別是一般參數、主機顯示參數、端口顯示參數和輸出排序參數。相關參數的含義如下表所示。
參數 含義 P 通過此鍵可切換暫停/繼續顯示 h 通過此鍵可在交互參數界面/狀態輸出界面之間來回切換 b 通過此鍵可切換是否顯示平均流量圖形條 B 通過此鍵可切換顯示2秒、10秒、40秒內的平均流量 T 通過此鍵可切換是否顯示每個連接的總流量 j/k 按j鍵或k鍵可以向上或向下滾動屏幕顯示當前的連接信息 l 通過此鍵可打開iftop輸出過濾功能,比如輸入要顯示的IP,按回車后,屏幕就只顯示與這個IP相關的流量信息 L 通過此鍵可切換顯示流量刻度范圍,刻度不同,流量圖形條會跟著變化 q 通過此鍵可退出iftop流量監控界面 n 通過此鍵可使iftop輸出結果以IP或主機名的方式顯示 s 通過此鍵可切換是否顯示源主機信息 d 通過此鍵可切換是否顯示遠端目標主機信息 t 通過此鍵可切換iftop顯示格式,連續按此鍵可依次顯示:以兩行顯示發送接收流量、以一行顯示發送接收流量、只顯示發送流量/接收流量 N 通過此鍵可切換顯示端口號/端口號對應服務名稱 S 通過此鍵可切換是否顯示本地源主機的端口信息 D 通過此鍵可切換是否顯示遠端目標主機的端口信息 p 通過此鍵可切換是否顯示端口信息 1/2/3 根據最近 2 秒、10 秒、40 秒的平均網絡流量排序 < 通過此鍵可根據左邊的本地主機名或IP地址進行排序 > 通過此鍵可根據遠端目標主機的主機名或IP地址進行排序 o 通過此鍵可切換是否固定顯示當前的連接
使用示例
1. 顯示網卡 eth0 的信息,主機通過 ip 顯示
$ iftop -i eth0 -n
2. 顯示端口號(添加 -P 參數,進入界面可通過 p 參數關閉)
$ iftop -i eth0 -n -P
3. 顯示將輸出以 byte 為單位顯示網卡流量,默認是 bit
$ iftop -i eth0 -n -B
4. 顯示流量進度條
## 進入界面后按下 L $ iftop -i eth0 -n
5. 顯示每個連接的總流量
## 進入界面后按下 T $ iftop -i eth0 -n
6. 顯示指定 ip 172.17.1.158 的流量
進入界面后按下 l 后,再輸入 172.17.1.158 并回車) $ iftop -i eth0 -n
實戰
下面我們將通過找出最費流量的 IP 和端口號這一具體實例,來演示 iftop 強大的功能。
1. 進入界面
$ iftop -i eth0 -nNB -m 10M
-i 指定網卡,
-n 代表主機通過ip顯示不走DNS
-N 只顯示連接端口號,不顯示端口對應的服務名稱(不加會顯示如ssh這樣的服務名稱,不便于排查)
-B 指定顯示單位為Kb,默認是bit,太小!
-m 設置輸出界面中最上面的流量刻度最大值,流量刻度分5個大段顯示
進入后界面如下:
2. 按下 L 顯示流量刻度
L 參數直接顯示進度條,方便人類閱讀。
3. 按下 T 顯示總量
有個總數統計,看著方便!
4. 按下 3,根據最近 40s 統計排序
用平均值來統計最權威點
5. 按下 t,發送和接受合成一行
6. 多按幾次 B,查看最近 2s、10s、40s 的統計
沒錯,圖中的 172.17.1.158 就是我們找到的流量用得最多的 IP
7. 篩選指定 IP 172.17.1.158
按下 l, 輸入172.17.1.158,出現如下
回車后生效
這下就只看到這個 IP 的流量監控了
8. 找到這個 IP 哪個端口流量用得最多
按下 p, 根據端口號顯示
關于如何入門Linux網絡流量監控利器iftop就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。