nload 對比 bmon 對比 vnstat:頻寬監控工具比較

11 分鐘閱讀 - 2026年6月15日

hero section cover
目錄
  • nload 對比 bmon 對比 vnstat:Linux 頻寬監控工具比較
  • nload:即時吞吐量一覽
  • bmon:監控多個介面
  • vnstat:長期使用情況追蹤
  • 快速比較
  • 何時使用哪種工具
  • 總結
分享

針對 Linux 頻寬監控,比較 nload、bmon 和 vnstat。說明何時使用各工具、它們的不足之處,以及如何將它們結合以實現全面監控。

nload 對比 bmon 對比 vnstat:Linux 頻寬監控工具比較

nloadbmonvnstat 是三款值得了解的 Linux 頻寬監控工具。它們各自解決不同的問題,而最佳解決方案通常是將其中兩種工具結合使用。本文將探討每款工具的優勢、不足之處,以及在特定情境下該選擇哪一款。

nload:即時吞吐量一覽

nload 是一款終端工具,透過 ASCII 圖表即時顯示單一介面的傳輸量,分別顯示進站與出站流量。它直接讀取 /proc/net/dev ,因此無需 root 權限即可運行,且 CPU 佔用率極低。

請使用介面名稱啟動它:

nload eth0

實用參數:

  • -u M 將顯示單位切換為 MB/s(預設為每秒位元)
  • -m 在單一畫面顯示多個介面,不顯示圖表
  • -t 1000 設定更新間隔(單位為毫秒)

按下 F2 in-session 即可調整刷新率與圖表縮放比例,無需重新啟動。

螢幕上顯示的內容:當前速率、平均值、最小值、最大值,以及該會話期間的總傳輸量。這些資訊足以確認伺服器是否如預期般傳輸流量,或察覺突發的流量激增。無法獲得的內容:各進程的歸因、各連線的細項分析,或任何歷史資料。關閉終端機後,會話統計資料即會消失。

當您想在五秒內回答「這台伺服器目前是否已將連線頻寬用盡?」時,請使用 nload。

bmon:監控多個介面

bmon 採用了不同的方法。它並非詳細顯示單一介面,而是同時顯示主機上的所有介面。頂部窗格列出每個介面及其當前的接收 (RX) 和傳送 (TX) 速率。底部窗格則針對您所選的介面繪製圖表。使用方向鍵可在各介面之間切換。

這正是您在虛擬化主機、路由器、配備多張網卡的專用伺服器,或任何運行 Docker 的環境中所需的工具——在這些環境中,介面清單往往多達數十個。若使用 nload 逐一輪流監控,將會十分繁瑣。

按下 d 在執行期間按下此鍵,即可切換至詳細統計視圖,該視圖會新增封包計數、錯誤率、丟失封包及碰撞等數據。這些資料對於診斷鏈路波動、MTU 不匹配,或是未表現為吞吐量問題的網卡驅動程式問題至關重要。

使用 -p 來篩選介面清單,以減少視覺雜亂:

bmon -p "eth*,ens*"

bmon 亦可透過 -o 以 JSON、XML、ASCII 或 HTML 格式匯出結構化資料,這對於腳本快照或饋送至其他工具非常方便:

bmon -o ascii -p eth0 > /tmp/eth0-stats.txt

不過與 nload 相同:沒有永久歷史記錄。關閉後資料即消失。

vnstat:長期使用情況追蹤

vnstat 填補了其他兩者留下的空白。它作為背景守護程序運行(vnstatd),並將流量計數器寫入位於 /var/lib/vnstat/。該資料庫能於系統重啟後存續,並保留 5 分鐘樣本 48 小時、每小時資料 4 天、每日總計 2 個月,以及無限期的每月與每年摘要。

請在第一天就啟用它:

systemctl enable --now vnstat

關鍵要點:vnstat 僅從守護程序啟動時起計數流量。它無法追溯測量安裝前的使用情況。在新伺服器上,請於配置階段安裝,否則在需要時將無法取得任何資料。

標準查詢:

vnstat              # summary
vnstat -d           # daily breakdown
vnstat -m           # monthly totals
vnstat -h           # last 24 hours, hourly
vnstat -t           # top days
vnstat --json       # JSON export
vnstat -i eth0      # specific interface

vnstat 是解答「上個月傳輸了多少流量?」、「是否符合每月流量上限?」以及「長期趨勢如何?」等問題的理想工具。 --alert 標誌可讓您設定與自訂計費週期綁定的閾值,當您的服務供應商所採用的月份與日曆月份不一致時,此功能便十分實用。

若需在狀態頁面或報告中呈現圖表,請搭配 vnstati 以產生 PNG 圖檔,若您需要在狀態頁面或報告中顯示圖表:

vnstati -s -i eth0 -o /var/www/html/traffic.png

vnstat 較不擅長處理:即時診斷。雖然 -l 雖然有即時模式,但它僅是計數器,沒有圖表,也沒有按介面細分的資料。若需進行事件應變,您仍需在另一個分頁中開啟 nload 或 bmon。

快速比較

功能nloadbmonvnstat
重點即時吞吐量多介面即時統計歷史使用量
視覺化雙 ASCII 圖表介面清單 + 圖表表格、透過 vnstati 產生的 PNG 圖檔
持久化資料
匯出格式JSON、XML、ASCII、HTMLJSON、XML、CSV
按程序歸因
以守護程序模式運行
需要 root 權限
最適合快速檢查具備多個網路介面卡的主機容量規劃、計費

這些工具都無法告訴您是哪個程序或連線導致流量。若要了解這點, iftop (按連線) 和 nethogs (按進程) 才是正確的工具,且它們與上述所有工具搭配使用效果極佳。

何時使用哪種工具

對於具有每月流量上限的單介面 VPS,請在啟用首日安裝 vnstat,並在需要快速檢查時使用 nload。這可涵蓋 95% 的情況。

若為專用伺服器、虛擬化主機或任何運行容器的環境,請將 nload 替換為 bmon。當您擁有超過三、四個網路介面卡(NIC)和橋接器時,多介面檢視功能能有效節省時間。

若需針對整個機群進行容量規劃,vnstat 的 JSON 匯出功能可完美整合至 Prometheus、Grafana 或您現有的任何指標監控系統。設定一次後便無需再管,直到您需要每月報告時再處理即可。

當流量異常且需要找出來源時,上述三者皆無法提供答案。此時 iftop (按頻寬排序的前幾名連線) 和 nethogs (前幾大進程) 便展現其價值。

這三款工具皆讀取核心計數器而非擷取封包,因此即使在飽和的 10Gbps 鏈路上,其開銷也微乎其微。沒有理由不將這三者全都安裝上。

總結

nload、bmon 和 vnstat 各自針對不同的問題:某個介面當下的狀況、多個介面的整體狀況,以及歷史流量趨勢。針對每種需求各選用一個工具,您就能透過約五分鐘的設定,建立一套不增加可測量負載的頻寬監控方案。

若您的工作負載產生穩定流量,且希望不再擔心超額帳單,無流量限制的 VPS 可提供固定費率的埠與可預測的成本,這將使 vnstat 的歷史數據成為規劃工具,而非計費警報。

博客

本周特色

更多文章
Linux 伺服器工作負載最佳化的調校設定檔

Linux 伺服器工作負載最佳化的調校設定檔

如何為 GPU、資料庫和高頻寬 Linux 伺服器選擇、應用和客製化已調整的配置文件,並提供範例和 Ansible 部署技巧。

16 分鐘閱讀 - 2026年6月9日

Linux OOM Killer Tuning for VPS:實用指南

12 分鐘閱讀 - 2026年6月8日

更多文章