如果要在你的系統(tǒng)上監(jiān)控網(wǎng)絡(luò),那么使用命令行工具是非常實用的,并且對于 Linux 用戶來說,有著許許多多現(xiàn)成的工具可以使用,如: nethogs, ntopng, nload, iftop, iptraf, bmon, slurm, tcptrack, cbm, netwatch, collectl, trafshow, cacti, etherape, ipband, jnettop, netspeed 以及 speedometer。
鑒于世上有著許多的 Linux 專家和開發(fā)者,顯然還存在其他的網(wǎng)絡(luò)監(jiān)控工具,但在這篇教程中,我不打算將它們所有包括在內(nèi)。
上面列出的工具都有著自己的獨特之處,但歸根結(jié)底,它們都做著監(jiān)控網(wǎng)絡(luò)流量的工作,只是通過各種不同的方法。例如 nethogs 可以被用來展示每個進(jìn)程的帶寬使用情況,以防你想知道究竟是哪個應(yīng)用在消耗了你的整個網(wǎng)絡(luò)資源; iftop 可以被用來展示每個套接字連接的帶寬使用情況,而像 nload 這類的工具可以幫助你得到有關(guān)整個帶寬的信息。
1) nethogs
nethogs 是一個免費的工具,當(dāng)要查找哪個 PID (注:即 process identifier,進(jìn)程 ID) 給你的網(wǎng)絡(luò)流量帶來了麻煩時,它是非常方便的。它按每個進(jìn)程來分組帶寬,而不是像大多數(shù)的工具那樣按照每個協(xié)議或每個子網(wǎng)來劃分流量。它功能豐富,同時支持 IPv4 和 IPv6,并且我認(rèn)為,若你想在你的 Linux 主機上確定哪個程序正消耗著你的全部帶寬,它是來做這件事的最佳的程序。
一個 Linux 用戶可以使用 nethogs來顯示每個進(jìn)程的 TCP 下載和上傳速率,可以使用命令nethogs eth0來監(jiān)控一個指定的設(shè)備,上面的 eth0 是那個你想獲取信息的設(shè)備的名稱,你還可以得到有關(guān)正在傳輸?shù)臄?shù)據(jù)的傳輸速率信息。
對我而言, nethogs 是非常容易使用的,或許是因為我非常喜歡它,以至于我總是在我的 Ubuntu 12.04 LTS 機器中使用它來監(jiān)控我的網(wǎng)絡(luò)帶寬。
例如要想使用混雜模式來嗅探,可以像下面展示的命令那樣使用選項 -p:
nethogs -p wlan0
假如你想更多地了解 nethogs 并深入探索它,那么請毫不猶豫地閱讀我們做的關(guān)于這個網(wǎng)絡(luò)帶寬監(jiān)控工具的整個教程。
(LCTT 譯注:關(guān)于 nethogs 的更多信息可以參考:https://linux.cn/article-2808-1.html)
2) nload
nload 是一個控制臺應(yīng)用,可以被用來實時地監(jiān)控網(wǎng)絡(luò)流量和帶寬使用情況,它還通過提供兩個簡單易懂的圖表來對流量進(jìn)行可視化。這個絕妙的網(wǎng)絡(luò)監(jiān)控工具還可以在監(jiān)控過程中切換被監(jiān)控的設(shè)備,而這可以通過按左右箭頭來完成。
正如你在上面的截圖中所看到的那樣,由 nload 提供的圖表是非常容易理解的。nload 提供了有用的信息,也展示了諸如被傳輸數(shù)據(jù)的總量和最小/最大網(wǎng)絡(luò)速率等信息。
而更酷的是你只需要直接運行 nload 這個工具就行,這個命令是非常的短小且易記的:
nload
我很確信的是:我們關(guān)于如何使用 nload 的詳細(xì)教程將幫助到新的 Linux 用戶,甚至可以幫助那些正尋找關(guān)于 nload 信息的老手。
(LCTT 譯注:關(guān)于 nload 的更新信息可以參考:https://linux.cn/article-5114-1.html)
3) slurm
slurm 是另一個 Linux 網(wǎng)絡(luò)負(fù)載監(jiān)控工具,它以一個不錯的 ASCII 圖來顯示結(jié)果,它還支持許多按鍵用以交互,例如 c用來切換到經(jīng)典模式,s切換到分圖模式,r用來重繪屏幕,L用來啟用 TX/RX 燈(注:TX,發(fā)送流量;RX,接收流量) ,m用來在經(jīng)典分圖模式和大圖模式之間進(jìn)行切換,q退出 slurm。
在網(wǎng)絡(luò)負(fù)載監(jiān)控工具 slurm 中,還有許多其它的按鍵可用,你可以很容易地使用下面的命令在 man 手冊中學(xué)習(xí)它們。
man slurm
slurm 在 Ubuntu 和 Debian 的官方軟件倉庫中可以找到,所以使用這些發(fā)行版本的用戶可以像下面展示的那樣,使用 apt-get 安裝命令來輕松地下載它:
sudo apt-get install slurm
我們已經(jīng)在一個教程中對 slurm 的使用做了介紹,不要忘記和其它使用 Linux 的朋友分享這些知識。
4) iftop
當(dāng)你想顯示連接到網(wǎng)卡上的各個主機的帶寬使用情況時,iftop 是一個非常有用的工具。根據(jù) man 手冊,iftop在一個指定的接口或在它可以找到的第一個接口(假如沒有任何特殊情況,它應(yīng)該是一個對外的接口)上監(jiān)聽網(wǎng)絡(luò)流量,并且展示出一個表格來顯示當(dāng)前的一對主機間的帶寬使用情況。
通過在虛擬終端中使用下面的命令,Ubuntu 和 Debian 用戶可以在他們的機器中輕易地安裝 iftop:
sudo apt-get install iftop
在你的機器上,可以使用下面的命令通過 yum 來安裝 iftop:
yum -y install iftop
(LCTT 譯注:關(guān)于 nload 的更多信息請參考:https://linux.cn/article-1843-1.html)
5) collectl
collectl 可以被用來收集描述當(dāng)前系統(tǒng)狀態(tài)的數(shù)據(jù),并且它支持如下兩種模式:
記錄模式允許從一個正在運行的系統(tǒng)中讀取數(shù)據(jù),然后將這些數(shù)據(jù)要么顯示在終端中,要么寫入一個或多個文件或一個套接字中。
回放模式
根據(jù) man 手冊,在這種模式下,數(shù)據(jù)從一個或多個由記錄模式生成的數(shù)據(jù)文件中讀取。
Ubuntu 和 Debian 用戶可以在他們的機器上使用他們默認(rèn)的包管理器來安裝 colletcl。下面的命令將為他們做這個工作:
sudo apt-get install collectl
還可以使用下面的命令來安裝 collectl, 因為對于這些發(fā)行版本(注:這里指的是用 yum 作為包管理器的發(fā)行版本),在它們官方的軟件倉庫中也含有 collectl:
yum install collectl
(LCTT 譯注:關(guān)于 collectl 的更多信息請參考: https://linux.cn/article-3154-1.html)
本文由 LCTT 原創(chuàng)翻譯,Linux中國首發(fā)。也想加入譯者行列,為開源做一些自己的貢獻(xiàn)么?歡迎加入LCTT!
翻譯工作和譯文發(fā)表僅用于學(xué)習(xí)和交流目的,翻譯工作遵照CC 協(xié)議規(guī)定,如果我們的工作有侵犯到您的權(quán)益,請及時聯(lián)系我們。
歡迎遵照CC 協(xié)議規(guī)定轉(zhuǎn)載,敬請在正文中標(biāo)注并保留原文/譯文鏈接和作者/譯者等信息。
文章僅代表作者的知識和看法,如有不同觀點,請樓下排隊吐槽:D