如何在 Linux 上使用 bmon 監控網絡帶寬
已發表: 2022-01-29 使用bmon
Linux 應用程序,您可以查看網絡連接的帶寬使用情況。 但是,了解更精細的細節需要一些偵探工作,所以我們已經為您完成了!
bmon 的工作原理
顯示各種網絡接口活動的動態圖表和實時統計數據可以讓您很好地了解網絡的性能和帶寬消耗。 這正是bmon
在終端窗口中為您提供的。
您可以時不時地看一下圖表,就像看車上的速度計一樣。 同樣,如果需要調查您車輛上的某些東西,機械師可能會將其連接到診斷系統並檢查讀數。 bmon
有類似的詳細讀數。
不過,必須說—— bmon
命令的統計數據起初可能令人費解。 例如,有三個稱為“Ip6 Reasm/Frag”。 那是怎麼回事?
然而,一旦你破解了代碼,如果你想更詳細地了解你的網絡流量,命令的讀數是非常寶貴的。
我們已經為您完成了工作,甚至檢查了源代碼以了解其中的一些內容。 值得慶幸的是,關於bmon
的其他一切都相當簡單。
安裝 bmon
要在 Ubuntu 上安裝bmon
,請使用以下命令:
sudo apt-get install bmon
要在 Fedora 上安裝,請鍵入以下內容:
須藤 dnf 安裝 bmon
對於 Manjaro,命令如下:
sudo pacman -Sy bmon
bmon 顯示器
鍵入bmon
並按 Enter 啟動程序。 bmon
顯示分為幾個窗格。 前三個標記為“接口”、“RX”和“TX”。 中央窗格顯示詳細的統計數據和圖表。
“接口”窗格顯示您的計算機配備的網絡接口。 它還顯示了每個網絡接口正在使用的排隊規則 (qdisc)(稍後會詳細介紹)。
“RX”窗格顯示每個接口及其隊列的每秒接收比特數和每秒數據包數。 “TX”窗格顯示每個接口及其隊列的每秒傳輸位數和每秒數據包。
在我們的計算機上,我們只安裝了兩個接口:環回接口(也稱為環回適配器)和有線以太網適配器。 環回接口稱為“lo”,以太網接口稱為“enp0s3”。
您機器上的以太網適配器可能有不同的名稱。 如果您使用的是筆記本電腦,您也會看到一個無線適配器,它的名稱可能以“wl”開頭。
bmon
顯示有關當前選擇的網絡接口的信息。 所選接口是旁邊帶有突出顯示的大於號 ( >
) 的接口。 您可以按向上和向下箭頭移動大於號並選擇要監控的接口。 我們選擇了以太網適配器。
現在我們在一個活動的網絡接口上,我們在圖表和讀數中看到了一些活動。 如果您沒有看到任何圖表,請向下拉伸終端窗口。
按左右箭頭鍵更改正在繪製的統計數據。 對於某些圖表,您必須先按 H 才能填充它們; 需要這個的人會告訴你。
要查看網絡接口的統計信息,請拉伸終端窗口直到它足夠高以顯示它們,然後按 D 顯示它們。 如果您按 I(用於 Info),您會看到少量的附加信息。
如果您最大化終端窗口,它會顯示多個圖形。 按小於 (<) 和大於 (>) 添加或刪除圖形對。 如果按 G,它會完全打開和關閉圖形的顯示。
當您按下問號 (?) 時,您會看到帶有常見擊鍵的“快速參考”幫助屏幕。
再次按問號 (?) 關閉“快速參考”屏幕。
詳細統計
如果您的終端窗口足夠高和足夠寬(如果不是,請將其拉出),您可以按“D”來打開和關閉詳細視圖。
您看到的列數取決於終端窗口的寬度。 在標準的 80 列終端窗口中,您會看到兩個。 窗口越寬,您看到的列越多。 但是,您不會通過更寬的窗口獲得更多統計數據; 您仍然會看到相同的一組數字。 但列會更短。
每列頂部的條目可能會讓您認為左側的條目以字節為單位顯示信息,而右側的條目以數據包的形式顯示信息。 然而,事實並非如此。
每列包含一組統計信息。 每個統計信息都會顯示值的名稱以及接收的 ( RX
) 和傳輸的 ( TX
) 值。 如果任何值顯示為連字符 ( -
),則表示未記錄該方向的統計信息。
一些統計數據僅向內(接收)或向外(傳輸)。 例如,已傳輸列中的連字符 ( -
) 表示該統計信息對於傳出數據包無效,並且僅適用於傳入數據包。 第一行以字節(左側)和數據包(右側)顯示接收和傳輸的流量。
所有其他統計信息都按字母順序列出,從一列跳到另一列。 其中有幾個具有相同的名稱。 我們將在下面解釋它們的含義。 我們還拼出了縮寫名稱。 如果未提及 IPv6,則該統計數據指的是 IPv4。
左欄中的統計數據如下:
- 字節:以字節為單位的流量。
- 中止錯誤:中止錯誤的計數。 在源和目標之間的連接路徑中的某處,一個軟件導致連接中止。
- 碰撞:碰撞錯誤的計數。 兩個或更多設備嘗試同時發送數據包。 這在全雙工網絡中應該不是問題。
- CRC 錯誤:循環冗餘校驗錯誤的計數。
- 錯誤:錯誤的總數。
- 幀錯誤:幀錯誤的計數。 幀是數據包的網絡容器。 錯誤表示檢測到格式錯誤的幀。
- ICMPv6: Internet 控制消息協議 v6 流量數據包的數量。
- ICMPv6 錯誤: ICMP v6 錯誤計數。
- Ip6 廣播: IPv6 廣播的計數,發送到網絡上的所有設備。
- Ip6 CE 數據包: CE 代表“客戶邊緣”。 這通常適用於路由器。 它們與客戶訂閱的連接服務的提供商邊緣 (PE) 連接。
- Ip6 Delivers:傳入 IPv6 數據包的計數。
- Ip6 ECT(1) 數據包:顯式擁塞通知 (ECN) 允許網絡連接的任一端警告另一端即將發生的擁塞。 數據包標有用作警告的標誌。 接收端可以降低傳輸速率來盡量避免擁塞和可能的丟包。 支持 ECN 的傳輸 (ECT) 數據包標有一個標誌,以表明它們是通過支持 ECN 的傳輸傳遞的。 這允許中間路由器做出相應的反應。 類型 1 ECN 數據包告訴接收端啟用 ECN 並將其添加到傳出傳輸中。
- Ip6 標頭錯誤: IPv6 標頭中有錯誤的數據包計數。
- Ip6 組播數據包: IPv6 組播(一種廣播形式)數據包的計數。
- Ip6 Non-ECT Packets:未標記為 ECT(1) 的 IPv6 數據包計數。
- Ip6 Reassembly/Fragment OK:由於大小而被分段並在收到後成功重新組裝的 IPv6 數據包的計數。
- Ip6 Reassembly Timeouts:由於大小而被分段但由於超時而在接收時未能重新組裝的 IPv6 數據包的計數。
- Ip6 截斷數據包:截斷數據包的計數。 傳輸 IPv6 數據包時,可以將其標記為截斷候選。 如果任何中間路由器因為數據包超過最大傳輸單元 (MTU) 而無法處理數據包,則路由器會截斷數據包,將其標記為此類,然後將其轉發到目的地。 當接收到它時,遠端可以將 ICMP 數據包發送回源,告訴它更新其 MTU 估計值以縮短其數據包。
- Ip6 Discards:丟棄的 IPv6 數據包的計數。 如果源和目標之間的任何設備未正確設置,並且它們的 IPv6 設置不起作用,它們將無法處理 IPv6 流量; 它將被丟棄。
- Ip6 Packets:所有類型的 IPv6 數據包的總數。
- Missed Error:傳輸中丟失的數據包計數。 數據包被編號,以便可以重新創建原始消息。 如果有任何遺漏,他們的缺席是顯而易見的。
- No Handler:未找到協議處理程序的數據包計數。
- 窗口錯誤:窗口錯誤的計數。 數據包的窗口是報頭中的八位字節數。 如果它包含異常數字,則無法解釋標頭。
右欄中的統計數據如下:
- 數據包:數據包中的流量。
- 運營商錯誤:運營商錯誤的計數。 如果信號調製出現問題,就會出現這些問題。 這可能表明網絡設備之間的雙工不匹配或電纜、插座或連接器的物理損壞。
- Compressed:壓縮包的數量。
- Dropped:丟棄的數據包數量,因此未能到達目的地(可能是由於擁塞)。
- FIFO 錯誤:先進先出(FIFO) 緩衝區錯誤的計數。 網絡接口傳輸緩衝區溢出,因為它沒有被足夠快地清空。
- 心跳錯誤:硬件或軟件可能會利用常規信號來顯示它們正在正確運行或允許同步。 這裡的數字是丟失了多少“心跳”。
- ICMPv6 Checksum Errors: Internet 控制消息協議 v6 消息校驗和錯誤的計數。
- Ip6 地址錯誤:由於錯誤 IPv6 地址導致的錯誤計數
- Ip6 廣播數據包: IPv6 廣播數據包的計數。
- Ip6 Checksum Errors: IPv6 校驗和錯誤的計數。 IPv6 中的 ICMP 和用戶數據報協議 (UDP) 數據包使用校驗和,但常規 IPv6 IP 數據包不使用。
- Ip6 ECT(0) 數據包:這些數據包的處理方式與 ECT(1) 數據包相同。
- Ip6 Forwarded:單播轉發的 IPv6 數據包計數。 單播通過一系列中間路由器和轉發器將數據包從源跳到目標。
- Ip6 Multicasts:傳送的 IPv6 數據包多播轉發數。 多播同時將數據包發送到一組目的地(這就是 Wi-Fi 的工作方式)。
- Ip6 No Route:無路由錯誤的計數。 這意味著無法到達目的地,因為無法計算到遠端的路線
- Ip6 Reassembly/Fragment Failures:由於大小而被分片的 IPv6 數據包的計數,並且在收到時未能重新組裝。
- Ip6 重組/分片請求:由於大小而被分片的 IPv6 數據包的計數,必須在收到後重新組裝。
- Ip6 Too Big Errors:收到的 ICMP“太大”消息的數量,表示發送的 IPv6 數據包大於最大傳輸單元。
- Ip6 未知協議錯誤:使用未知協議接收的數據包計數。
- Ip6 Octets:接收和傳輸的八位字節的數量。 IPv6 具有 40 個八位字節(320 位,每個八位位組 8 位)的標頭,最小數據包大小為 1,280 個八位位組(10,240 位)。
- 長度錯誤:到達的數據包數量,其標頭中的長度值小於可能的最小數據包長度。
- 多播:多播廣播的計數。
- Over Errors:過度錯誤的計數。 接收緩衝區溢出,或者數據包到達的幀值大於支持的值,因此無法接受。
附加信息
如果您按 I(如在“信息”中),它會切換附加信息窗格。 如果沒有出現附加信息,則窗口不夠大。 您可以按 D 關閉詳細統計,按 G 關閉圖形,或者您可以拉伸窗口。
附加信息如下:
- MTU:最大傳輸單位。
- 操作狀態:網絡接口的操作狀態。
- 地址:網絡接口的媒體訪問控制 (MAC) 地址。
- 模式:這通常設置為
default
,但您可以看到tunnel
、beet
或ro
。 前三個與 IP 安全 (IPSec) 相關。default
設置通常是transport
模式,其中有效負載被加密。 客戶端到站點的虛擬專用網絡 (VPN) 通常使用此功能。 站點到站點 VPN 通常使用tunnel
模式,其中對整個數據包進行加密。 在綁定端到端隧道 (beet
) 模式中,在兩個具有固定、隱藏 IP 地址和其他可見 IP 地址的設備之間創建隧道。ro
模式是一種針對移動IPv6的路由優化方法。 - 系列:正在使用的網絡協議系列。
- Qdisc:排隊規則。 這可以設置為
red
(隨機早期檢測)、codel
(受控延遲)或fq_codel
(具有受控延遲的公平排隊)。 - 標誌:這些指示器顯示網絡連接的能力。 我們的連接可以使用
broadcast
和multicast
傳輸,並且接口是Up
(可操作且已連接)。 - IfIndex:接口索引是與網絡接口關聯的唯一標識號。
- 廣播:廣播 MAC 地址。 發送到此地址會將收到的數據包廣播到所有設備。
- TXQlen:傳輸隊列大小(容量)。
- 別名: IP 別名為物理網絡連接提供多個 IP 地址。 然後,它可以通過一張網絡接口卡訪問不同的子網。 我們的測試計算機上沒有使用別名。
bmon
是一個有點有趣的生物——在某些方面既不是魚也不是家禽。 這些圖表具有原始的魅力,可以很好地指示正在發生的事情。
但是,鑑於以 ASCII 呈現的局限性,不能真正期望它們是超級準確的。 不過,偶爾看一眼,就可以告訴您連接是否已達到極限、神秘地沒有流量,或者介於兩者之間。
另一方面,詳細的統計數據就是這樣:詳細和細化。 再加上它們的標籤有些隨意,這使得它們更難以破譯。
希望上面的描述能讓bmon
更容易上手。 它確實是一個有用的輕量級工具,您可以使用它監控網絡流量的健康狀況和帶寬消耗。
Linux 命令 | ||
文件 | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look ·字符串·類型·重命名· zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
流程 | 別名· screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat ·超時·牆·是·殺死·睡眠· sudo · su ·時間· groupadd · usermod ·組· lshw ·關機·重啟·暫停·關機· passwd · lscpu · crontab ·日期· bg · fg | |
聯網 | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
相關:適合開發人員和愛好者的最佳 Linux 筆記本電腦