三款簡單而優秀的 Linux 網路監視工具

來源:互聯網
上載者:User

三款簡單而優秀的 Linux 網路監視工具

通過 iftopnethogsvnstat 詳細瞭解你的網路連接狀態。

你可以通過這三個 Linux 命令瞭解當前網路的大量資訊。iftop 通過進程號跟蹤網路連接,nethogs 快速告知你哪些進程在佔用你的頻寬,而 vnstat 以一個良好的輕量級守護進程在後台運行,並即時記錄你的網路使用方式。

 

iftop

令人稱讚的 iftop 可以監聽您指定的網路介面,並以 top 的樣式呈現。

這是一個不錯的小工具,可以用於找出網路擁塞,測速和維持網路流量總量。看到自己到底在用多少頻寬往往是非常驚人的,尤其是對於我們這些仍然記得電話線路、數據機,“高速”到令人驚叫的 kb 和即時傳輸速率的老人們。我們在很久之前就不再使用傳輸速率,轉而鐘情於位元速率。傳輸速率用于衡量訊號變化,儘管有時候與位元速率相同,但大多數情況下並非如此。

如果你只有一個網路介面,直接運行 iftop 即可。不過 iftop 需要 root 許可權:

  1. $ sudo iftop

如果你有多個網路介面,那就指定你要監控的介面:

  1. $ sudo iftop -i wlan0

就像 top 命令一樣,你可以在命令運行時更改顯示選項:

  • h 切換協助介面。
  • n 是否解析網域名稱。
  • s 切換源地址的顯示,d 則切換目的地址的顯示。
  • S 是否顯示連接埠號碼。
  • N 是否解析連接埠;若關閉解析則顯示連接埠號碼。
  • t 切換文本顯示介面。預設的顯示方式需要 ncurses。我個人認為圖 1 的顯示方式在組織性和可讀性都更加良好。
  • p 暫停顯示更新。
  • q 退出程式。

圖 1:組織性和可讀性良好的文本顯示。

當你切換顯示設定的時候,iftop 並不會中斷監測流量。當然你也可以單獨監測一台主機。而這需要該主機的 IP 位址和子網路遮罩。現在,我很好奇 Pandora(LCTT 譯註:一家美國的電台公司)能給我貧瘠的頻寬帶來多大的負載。因此我首先使用 dig 命令找到他們的 IP 位址:

  1. $ dig A pandora.com
  2. [...]
  3. ;; ANSWER SECTION:
  4. pandora.com.267 IN A 208.85.40.20
  5. pandora.com.267 IN A 208.85.40.50

那子網路遮罩呢?ipcalc 會告訴我們:

  1. $ ipcalc -b 208.85.40.20
  2. Address:208.85.40.20
  3. Netmask:255.255.255.0=24
  4. Wildcard:0.0.0.255
  5. =>
  6. Network:208.85.40.0/24

現在,將 IP 位址和子網路遮罩提供給 iftop

  1. $ sudo iftop -F 208.85.40.20/24-i wlan0

很棒的不是嗎?而我也很驚奇地發現,Pandora 在我的網路上,每小時大約使用 500kb。並且就像大多數流媒體服務一樣,Pandora 的流量在迅速增長,並依靠緩衝穩定下來。

你可以使用 -G 選項對 IPv6 地址執行相同的操作。查閱友好的 man 可以協助你瞭解 iftop 的其他功能,包括使用個人設定檔自訂你的預設選項,以及使用自訂過濾(請參閱 PCAP-FILTER 來擷取過濾指南)。

 

nethogs

當你想要快速瞭解是誰在吸取你的頻寬的時候,nethogs 是個快速而簡單的方法。你需要以 root 身份運行並指定要監聽的介面。它會給你顯示大量的應用程式及其進程號,所以如果你想的話,你可以藉此殺死任一進程。

  1. $ sudo nethogs wlan0
  2. nethogs version 0.8.1
  3. PID USER PROGRAM DEV SENT RECEIVED
  4. 7690 carla /usr/lib/firefox wlan0 12.494556.580 KB/sec
  5. 5648 carla .../chromium-browser wlan0 0.0520.038 KB/sec
  6. TOTAL 12.546556.618 KB/sec

nethogs 並沒有多少選項:在 kb/s、kb、b、mb之間迴圈,按接收和發送的資料包排序,調整重新整理延遲。具體請看man nethogs,或者是運行 nethogs -h

 

vnstat

vnstat是最容易使用的網路資料收集工具。它十分輕量並且不需要 root 許可權。它以守護進程在後台運行,因此可以即時地記錄你的網路資料。單個 vnstat 命令就可以顯示所累計的資料。

  1. $ vnstat -i wlan0
  2. Database updated:TueOct1708:36:382017
  3. wlan0 since 10/17/2017
  4. rx:45.27MiB tx:3.77MiB total:49.04MiB
  5. monthly
  6. rx | tx | total | avg. rate
  7. ------------------------+-------------+-------------+---------------
  8. Oct'17 45.27 MiB | 3.77 MiB | 49.04 MiB | 0.28 kbit/s
  9. ------------------------+-------------+-------------+---------------
  10. estimated 85 MiB | 5 MiB | 90 MiB |
  11. daily
  12. rx | tx | total | avg. rate
  13. ------------------------+-------------+-------------+---------------
  14. today 45.27 MiB | 3.77 MiB | 49.04 MiB | 12.96 kbit/s
  15. ------------------------+-------------+-------------+---------------
  16. estimated 125 MiB | 8 MiB | 133 MiB |

���認情況下它會顯示所有的網路介面。使用 -i 選項來選擇某個介面。也可以像這樣合并多個介面的資料:

  1. $ vnstat -i wlan0+eth0+eth1

你可以通過這幾種方式過濾資料顯示:

  • -h 按小時顯示統計資訊。
  • -d 按天顯示統計資訊.
  • -w-m 分別按周和月份來顯示統計資訊。
  • 使用 -l 選項查看即時更新。

以下這條命令將會刪除 wlan1 的資料庫並不再監視它:

  1. $ vnstat -i wlan1 --delete

而下面這條命令將會為你的一個網路介面建立一個別名。這個例子使用了 Ubuntu 16.04 的一個有線介面名稱:

  1. $ vnstat -u -i enp0s25 --nick eth0

預設情況下,vnstat 會監視 eth0。你可以在 /etc/vnstat.conf 對它進行修改,或者在你的家目錄下建立你自己的個人設定檔。請參閱 man vnstat 以擷取完整的指南。

你也可以安裝 vnstati 來建立簡單的彩圖(圖 2):

  1. $ vnstati -s -i wlx7cdd90a0a1c2 -o vnstat.png

圖 2:你可以使用vnstati來建立簡單的彩圖。

請參閱 man vnstati 以擷取完整的選項。

欲瞭解 Linux 的更多資訊,可以通過學習 Linux 基金會和 edX 的免費課程,“Linux 入門”。

via: https://www.linux.com/learn/intro-to-linux/2017/10/3-simple-excellent-linux-network-monitors

作者:CARLA SCHRODER 譯者:KeyLD 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.