iftop 用于在指定的接口監控網絡流量,如果沒有指定接口(網卡),它可以在第一個接口,或者搜索一個看起來是連接外部的接口。然后按主機活動連接顯示當前帶寬。
要使用 iftop 命令監控網絡接口的流量,你必須以 root 或者具有 sudo 權限的用戶運行 iftop 命令。
在本教程中,我們將說明如何 Linux 使用 iftop 命令監控指定接口的網絡流量,查看當前已建立的網絡連接的速度等。
iftop 命令
默認情況下,iftop 會解釋與它在數據包中找到的地址關聯的主機名。這可能會導致大量的流量,并可能導致顯示混亂。
你可以使用 iftop 命令的 -n 選項,禁用主機名的解釋。如果在正在運行的 iftop 會話中可以按 n 鍵打開或者關閉主機名的 DNS 解釋。
默認情況下,iftop 統計通過過濾器的所有 IP 數據包,并根據數據包穿過接口的方向確定數據包的方向。
使用 -F 選項可以讓 iftop 顯示進入和離開指定定網絡的數據包。例如,iftop -F 10.0.0.0/255.0.0.0 將分析流入和流出 10.* 段網絡的數據包。
iftop 命令詳解
sudo iftop
當不指定任何選項與參數運行 iftop 時,iftop 會使用整個屏幕顯示網絡的帶寬用法,顯示屏頂部是條形圖的對數刻度的視覺指示。
屏幕的主要部分列出已連接主機在 2、10 和 40 秒時間間隔內發送和接收數據的速率。數據流的方向由箭頭 <= 和 => 指示。例如:
本地主機名稱 已連接的遠程主機 2s 10s 40s
myfreax => www.myfreax.com 1Kb 500b 100b
<= 2Mb 2Mb 2Mb
在這個示例中,我們可以看到 myfreax 的本地主機與遠程主機 www.myfreax.com 2秒前發送的數據速度是 1 kb, 10秒前是 500 b,40秒前100 b。
注意 b 的單位不是字節,是 bit/s 單位的縮寫,1 kb 也就是 1 kbit/s,2mb 就是 2 mbit/s。
同樣你也就理解 myfreax 主機從 www.myfreax.com 主機接收數據的速度,在 2 秒,10 秒前,40 秒前都是 2mb,也就是速度沒有任何變化。
屏幕的底部,顯示各種總計,包括過去 40 秒的峰值流量、傳輸的總流量(過濾后)以及 2 秒、10 秒和 40 秒的平均總傳輸速率。
Tx 表示發送,Rx 表示接收,cum 表示累計值,Total 表示發送和解釋的總和,Rate表示網絡速度。例如:
TX: cum: 400KB peak:34.8Kb Rattes: 21kb 32kb 6.6kb
RX: 900KB 34.8Kb 3kb 3kb 8kb
Total: 1.30MB 34.8Kb 21kb 32kb 6.6kb
在上面的示例中,我們可以看到發送累計值是 400KB,峰值是 34.8 KB, 2 秒、10 秒和 40 秒的平均總傳輸速率分別是 21kb 32kb 6.6kb。
接收的累計值是 900KB,峰值是 34.8 KB, 2 秒、10 秒和 40 秒的平均總傳輸速率分別是 3kb 3kb 68kb。
快捷鍵
當你進入 iftop 會話時,你可以使用以下快捷鍵,切換 iftop 的顯示方式或者按 f 添加過濾器。
- h:顯示幫助菜單
- n:開啟 / 關閉主機名的 DNS 解析,如果可以 iftop 可以將 IP 地址解釋為主機名則顯示主機的名稱,否則顯示 IP 地址。
- N:開啟 / 關閉服務名稱的解釋,例如,本地主機連接遠程的主機的 443 端口,iftop 將會在遠程主機 IP 地址后面添加服務的名稱 www.myfreax.com:https。
- p:開啟 / 關閉目標和源端口的顯示
- P:暫停刷新屏幕,注意:
- 這僅僅暫停主要窗口部分的刷新,屏幕底部的統計值依然自動刷新。
- s:顯示或者隱藏源主機的 IP 或主機名。
- S:顯示 / 關閉源端口。
- t:切換顯示發送和接收流量的三種方式,第一種是僅顯示發送的流量,第二種是僅顯示接收的流量,同時發送和接收的流量,也就是啟動時的默認模式。
- T:顯示 / 關閉發送與接收流量統計,這將會在 2s 10s 40s 速率之前添加一列顯示累計值。
- q:退出 iftop
排序
- j / k:分別是向下和向上滾動,當屏幕不足以顯示所有連接時。
- <:通過源名稱的排序。
-
:通過目標名稱排序。
- 1/2/3:通過第一,第二,第三列進行排序。
- o:凍結排序方式,由于 iftop 是不斷滾動所有連接,關閉 iftop 滾動連接,可以按 o 鍵。
過濾器
iftop 支持一些過濾器來過濾顯示的內容。要使用基于 iftop 的過濾器,可以在 iftop 命令的 -f 選項之后跟一個過濾器表達式,也可以在 iftop 會話中使用 f 鍵設置過濾器。
iftop 使用 pcap-filter 作為數據包的過濾器,你可以根據 pcap-filter 過濾器語法,編寫 iftop 過濾器表達式。
值得一提的在 iftop 會話按 f 鍵輸入的過濾器表達式也可用于在 -f 選項后面設置的表達式。也就是說語法上沒有差別。
Net filter> src host 192.168.1.100
#eq
iftop -f "src host 192.168.1.100"
基于 IP 地址過濾
要使用基于 IP 地址的過濾器,可以在 iftop 命令后跟一個基于 IP 的過濾器表達式,如下所示:
iftop -f "src host 192.168.1.100"
上面的命令將僅顯示來自 IP 地址為 192.168.1.100 的主機的流量,src host 語法表示設置來源主機。
要使 iftop 僅顯示目標地址為 8.8.8.8 的流量,請運行命令 iftop -f "dst host 8.8.8.8"
:
iftop -f "dst host 8.8.8.8"
除了指定設置目標和源過濾之外,也可以使用 CIDR 格式的 IP 地址,例如:
iftop -f "src net 192.168.0.0/16"
上面的命令將顯示源地址在 192.168.0.0/16 網段主機的流量。
基于端口過濾
iftop 可以通過基于端口的過濾器來監控指定端口的網絡流量。要使用基于端口的過濾器,可以在 iftop 命令后面加上一個端口過濾器表達式,如下所示:
iftop -f "port 80"
iftop -f "port 80" 命令只顯示端口 80 的網絡流量,即 HTTP 流量。您還可以使用逗號將多個端口號連接在一起,例如:
iftop -f "port 80,443"
iftop -f "port 80,443" 命令僅顯示端口 80 或 443 的網絡流量,即 HTTP 或 HTTPS 流量。您還可以使用運算符 NOT 排除特定的端口,例如:
iftop -f "not port 22"
iftop -f "not port 22" 命令將顯示除 SSH(端口號22)之外的所有流量。
基于 IP 地址和端口的過濾器
您還可以結合 IP 地址和端口來過濾網絡流量,例如:
iftop -f "src host 192.168.1.100 and dst port 80"
iftop -f "src host 192.168.1.100 and dst port 80" 命令僅顯示來自 IP 地址 192.168.1.100 并且目標端口為 80 的流量。
結論
iftop 命令是一款強大的網絡流量監控工具,可以實時監控網絡連接和流量,幫助管理員及時發現和解決網絡問題。
同時,iftop 命令也支持多種過濾器和交互式操作,使其更加靈活和易用。在使用iftop命令時,需要注意安全和資源消耗等問題,并根據需要選擇最適合的工具進行網絡流量監控。
-
接口
+關注
關注
33文章
8612瀏覽量
151288 -
Linux
+關注
關注
87文章
11312瀏覽量
209689 -
命令
+關注
關注
5文章
685瀏覽量
22041 -
網絡流量
+關注
關注
0文章
58瀏覽量
10371 -
iftop
+關注
關注
0文章
3瀏覽量
6968
發布評論請先 登錄
相關推薦
評論