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