你可以通過Linux下這三個iftop、Nethogs和vnstat的網路命令, 瞭解有關你網路連接的大量資訊。 iftop通過進程號跟蹤網路連接, Nethogs可以快速顯示哪個在佔用你的頻寬,
iftop監聽你指定的網路介面, 並以top的形式展示連接。
這是一個很好的小工具, 用於快速識別佔用、測量速度, 並保持網路流量的總體運行。 看到我們使用了多少頻寬是非常令人驚訝的, 特別是對於我們這些還記得使用電話線、數據機、讓人尖叫的 Kbit 速度和真實的即時串列傳輸速率的老年人來說。 我們很久以前就放棄了串列傳輸速率, 轉而使用位元速率。 串列傳輸速率測量信號變化, 有時與位元速率相同, 但大多數情況下不是。
如果你只有一個網路介面, 可以不帶選項運行iftop。 iftop需要root許可權:
$ sudo iftop當你有多個介面時, 指定要監控的介面:
$ sudo iftop -i wlan0就像top一樣,
h切換説明螢幕。
n 切換名稱解析。
s 切換源主機顯示
d切換目標主機。
s 切換埠號。
N 切換埠解析。 要全看到埠號, 請關閉解析。
t 切換文本介面。 預設顯示需要 ncurses。 我認為文本顯示更易於閱讀和更好的組織(如下圖)。
p 暫停顯示。
q 退出程式。
文本顯示是可讀的和可組織的
當你切換顯示選項時,
iftop會繼續測量所有流量。
你還可以選擇要監控的單個主機。
你需要主機的IP位址和網路遮罩。
我很好奇Pandora在我那可憐的頻寬中佔用了多少,
所以我先用dig找到它們的IP地址:
網路遮罩是什麼?ipcalc告訴我們:
$ ipcalc -b 208.85.40.20Address: 208.85.40.20 Netmask: 255.255.255.0 = 24Wildcard: 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選項很少:在 kb/s、kb、b和mb之間迴圈;通過接收或發送的資料包進行排序;並調整刷新之間的延遲。 請參閱man nethogs, 或者運行nethogs -h。
vnstatvnstat是最容易使用的網路資料收集器。 它是羽量級的, 不需要root許可權。 它作為守護進程運行, 並記錄你網路統計資訊。
vnstat命令顯示累計的資料:
$ vnstat -i wlan0Database 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的資料庫,
此命令為網路介面創建別名。 此例使用Ubuntu 16.04中的一個奇怪的介面名稱:
$ vnstat -u -i enp0s25 --nick eth0預設情況下, vnstat監視eth0。 你可以在 /etc/vnstat.conf 中更改此內容, 或在主目錄中創建自己的個人設定檔。 請參見 man vnstat 以獲得完整的參考。
你還可以安裝vnstati創建簡單的彩色圖(下圖):
$ vnstati -s -i wlx7cdd90a0a1c2 -o vnstat.png你可以使用 vnstati 創建簡單的彩色圖表
有關完整選項, 請參見man vnstati。