3 個簡單、優秀的 Linux 網路監視器
用 iftop、Nethogs 和 vnstat 了解更多關於你的網路連接。
你可以通過這三個 Linux 網路命令,了解有關你網路連接的大量信息。iftop 通過進程號跟蹤網路連接,Nethogs 可以快速顯示哪個在佔用你的帶寬,而 vnstat 作為一個很好的輕量級守護進程運行,可以隨時隨地記錄你的使用情況。
iftop
iftop 監聽你指定的網路介面,並以 top
的形式展示連接。
這是一個很好的小工具,用於快速識別佔用、測量速度,並保持網路流量的總體運行。看到我們使用了多少帶寬是非常令人驚訝的,特別是對於我們這些還記得使用電話線、數據機、讓人尖叫的 Kbit 速度和真實的實時波特率的老年人來說。我們很久以前就放棄了波特率,轉而使用比特率。波特率測量信號變化,有時與比特率相同,但大多數情況下不是。
如果你只有一個網路介面,可以不帶選項運行 iftop
。iftop
需要 root 許可權:
$ sudo iftop
當你有多個介面時,指定要監控的介面:
$ sudo iftop -i wlan0
就像 top 一樣,你可以在運行時更改顯示選項。
h
切換幫助屏幕。n
切換名稱解析。s
切換源主機顯示,d
切換目標主機。s
切換埠號。N
切換埠解析。要全看到埠號,請關閉解析。t
切換文本界面。默認顯示需要 ncurses。我認為文本顯示更易於閱讀和更好的組織(圖1)。p
暫停顯示。q
退出程序。
![text display](/data/attachment/album/201711/03/161404vwjt127p1uot0j7f.png "text display")
圖 1:文本顯示是可讀的和可組織的。
當你切換顯示選項時,iftop
會繼續測量所有流量。你還可以選擇要監控的單個主機。你需要主機的 IP 地址和網路掩碼。我很好奇 Pandora 在我那可憐的帶寬中佔用了多少,所以我先用 dig
找到它們的 IP 地址:
$ dig A pandora.com
[...]
;; ANSWER SECTION:
pandora.com. 267 IN A 208.85.40.20
pandora.com. 267 IN A 208.85.40.50
網路掩碼是什麼? ipcalc 告訴我們:
$ ipcalc -b 208.85.40.20
Address: 208.85.40.20
Netmask: 255.255.255.0 = 24
Wildcard: 0.0.0.255
=>
Network: 208.85.40.0/24
現在將地址和網路掩碼提供給 iftop:
$ sudo iftop -F 208.85.40.20/24 -i wlan0
這不是真的嗎?我很驚訝地發現,我珍貴的帶寬對於 Pandora 很寬裕,每小時使用大約使用 500Kb。而且,像大多數流媒體服務一樣,Pandora 的流量也有峰值,其依賴於緩存來緩解阻塞。
你可以使用 -G
選項對 IPv6 地址執行相同操作。請參閱手冊頁了解 iftop
的其他功能,包括使用自定義配置文件定製默認選項,並應用自定義過濾器(請參閱 PCAP-FILTER 作為過濾器參考)。
Nethogs
當你想要快速了解誰佔用了你的帶寬時,Nethogs 是快速和容易的。以 root 身份運行,並指定要監聽的介面。它顯示了空閑的應用程序和進程號,以便如果你願意的話,你可以殺死它:
$ sudo nethogs wlan0
NetHogs version 0.8.1
PID USER PROGRAM DEV SENT RECEIVED
7690 carla /usr/lib/firefox wlan0 12.494 556.580 KB/sec
5648 carla .../chromium-browser wlan0 0.052 0.038 KB/sec
TOTAL 12.546 556.618 KB/sec
Nethogs 選項很少:在 kb/s、kb、b 和 mb 之間循環;通過接收或發送的數據包進行排序;並調整刷新之間的延遲。請參閱 man nethogs
,或者運行 nethogs -h
。
vnstat
vnstat 是最容易使用的網路數據收集器。它是輕量級的,不需要 root 許可權。它作為守護進程運行,並記錄你網路統計信息。vnstat
命令顯示累計的數據:
$ vnstat -i wlan0
Database updated: Tue Oct 17 08:36:38 2017
wlan0 since 10/17/2017
rx: 45.27 MiB tx: 3.77 MiB total: 49.04 MiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+------------ Oct '17 45.27 MiB | 3.77 MiB | 49.04 MiB | 0.28 kbit/s
------------------------+-------------+-------------+------------ estimated 85 MiB | 5 MiB | 90 MiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+------------ today 45.27 MiB | 3.77 MiB | 49.04 MiB | 12.96 kbit/s
------------------------+-------------+-------------+------------ estimated 125 MiB | 8 MiB | 133 MiB |
它默認顯示所有的網路介面。使用 -i
選項選擇單個介面。以這種方式合併多個介面的數據:
$ vnstat -i wlan0+eth0+eth1
你可以通過以下幾種方式過濾顯示:
-h
以小時顯示統計數據。-d
以天數顯示統計數據。-w
和-m
按周和月顯示統計數據。- 使用
-l
選項查看實時更新。
此命令刪除 wlan1 的資料庫,並停止監控它:
$ vnstat -i wlan1 --delete
此命令為網路介面創建別名。此例使用 Ubuntu 16.04 中的一個奇怪的介面名稱:
$ vnstat -u -i enp0s25 --nick eth0
默認情況下,vnstat 監視 eth0。你可以在 /etc/vnstat.conf
中更改此內容,或在主目錄中創建自己的個人配置文件。請參見 man vnstat
以獲得完整的參考。
你還可以安裝 vnstati
創建簡單的彩色圖(圖2):
$ vnstati -s -i wlx7cdd90a0a1c2 -o vnstat.png
![vnstati](/data/attachment/album/201711/03/161404n9zda0t4jt9mg0vf.png "vnstati")
圖 2:你可以使用 vnstati 創建簡單的彩色圖表。
有關完整選項,請參見 man vnstati
。
via: https://www.linux.com/learn/intro-to-linux/2017/10/3-simple-excellent-linux-network-monitors
作者:CARLA SCHRODER 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive