一般的 Linux 管理者大概中知道 top
這個指令,他可以用來監控系統的狀態,包含 CPU 使用率、記憶體使用率、系統 loading 與各個 process 的狀況,可是卻缺少了網路的使用狀況,像我這種常常在用網路的人,最在意的就是網路速度,有時候網路很慢就很想知道是怎麼回事,但是偏偏 top 中沒有這個功能。
這裡就介紹一個專門監控網路流量的工具
iftop
,顧名思義他就是 interface 版的 top
,一般的 Linux distribition 通常預設是沒有安裝這個工具的,使用前要先安裝,若是 Ubuntu Linux 則可利用 apt 來裝:
sudo apt-get install iftop
其他的 Linux 應該大都有收錄 iftop
,像如果是 Red Hat 系列的 Linux 也可以用 rpm 來裝,若是真的沒有的話,就到 iftop
的官方網站下載原始碼來編譯與安裝,因為只是一個小工具,所以編譯與安裝都很簡單,解壓縮之後,就按照一般的程序編譯安裝:
./configure make sudo make install
準備工作大約就是這樣,安裝完 iftop
就可以來使用了,一般的電腦正常來說只要在終端機(terminal)中直接執行 iftop
就可以使用了:
sudo iftop
畫面就像這樣:
如果你的電腦不只有一張網路卡,或是有使用 USB 無線網路卡等,這時候就要使用 -i
參數指定想要監控的網路卡,通常主要的流量都是在對外的那張網路卡上,沒有指定正確的話可能就看不到資料。譬如說要指定第一張無線網路卡:
sudo iftop -i wlan0
以下是 iftop
常用的參數:
-h
:顯示簡短的使用說明。-n
:不執行 DNS 反解,直接顯示 IP 位址。-N
:直接顯示埠號(port),不轉換為服務名稱。-P
:以 promiscuous 模式執行 iftop。-i
:指定網路卡(interface)。-B
:流量以 Bytes 為單位。-F
:指定要監看的 IPv4 網路區段。-G
:指定要監看的 IPv6 網路區段。-f
:指定 filter code。
執行 iftop
之後,也有許多快速鍵可以使用:
Host display:
n
:開啓或關閉 DNS 反解。s
:顯示或隱藏來源(source)IP 位址。d
:顯示或隱藏目的(destination)IP 位址。t
:切換輸入輸出的流量顯示模式。
Port display:
N
:啓動或關閉埠號(port)轉換為服務名稱功能。S
:顯示或隱藏來源埠號。D
:顯示或隱藏目的埠號。p
:顯示或隱藏所有埠號。
Sorting:
1/2/3
:選擇排序欄位。<
:以流量來源 hostname 排序。>
:以流量目的 hostname 排序。o
:凍結目前排列狀況。
General:
P
:暫停更新資料,讓使用者慢慢看目前的圖表。j/k
:上下捲動圖表,用於凍結排列的狀況。h
:顯示快速鍵使用說明。b
:顯示或隱藏流量圖。B
:切換流量圖的顯示資料。T
:顯示或隱藏累計流量。f
:編輯 filter code。l
:設定 screen filter。L
:切換 linear 或 log 轉換。!
:執行 shell command。q
:離開iftop
。
參考資料:Tecmint