Linux 系統管理員需要即時掌握網卡流量 (輸入/輸出速率、封包數、連線狀態) 以排查效能瓶頸、偵測異常流量、驗證頻寬使用。本文介紹六大主流工具:iptraf-ng、nload、iftop、iostat、bmon、vnstat,涵蓋安裝、操作介面、適用場景與優缺點對比,助你選擇最適合的監控利器。
| 工具 | 類型 | 顯示模式 | 核心功能 | 安裝難度 | 適合場景 |
|---|---|---|---|---|---|
| iptraf-ng | 互動式 TUI | 文字圖形化 | 即時連線表、流量統計、封包捕獲 | 低 (yum/dnf/apt) | 詳細連線分析、封包級偵錯 |
| nload | 即時流量圖 | ASCII 條形圖 | 單/多網卡即時進出流量、總計 | 極低 | 快速查看頻寬使用率 |
| iftop | 連線級流量 | 類 top 介面 | 每連線 (IP:Port) 流量排序、反向解析 | 低 | 找出佔用頻寬的具體連線 |
| iostat | 系統統計 | 文字報表 | 磁碟 I/O、CPU、網卡 (需 -n 參數) 統計 | 內建 (sysstat) | 腳本自動化、歷史趨勢記錄 |
| bmon | 圖形化監控 | 多視圖 (圖表/統計/詳情) | 多網卡即時圖表、歷史記錄、單位自動換算 | 低 | 視覺化監控、多網卡對比 |
| vnstat | 常駐守護程式 | 命令列查詢 | 長期流量記錄 (小時/天/月)、JSON/CSV 輸出 | 低 (需啟動服務) | 長期流量統計、計費依據、報表產生 |
經典的互動式網路監控工具,提供豐富的選單驅動介面。
# 安裝
yum -y install iptraf-ng # CentOS/RHEL 7/8
dnf -y install iptraf-ng # Fedora/RHEL 9
apt -y install iptraf-ng # Debian/Ubuntu
# 基本啟動 (需 root)
iptraf-ng
# 直接監控指定網卡 (非互動)
iptraf-ng -d eth0 # 詳細流量統計
iptraf-ng -s eth0 # 連線表
iptraf-ng -f eth0 # 封包捕獲 (類 tcpdump)
# 常用快捷鍵 (互動模式)
# F2: 選擇網卡 | F3: 切換顯示模式 | F4: 過濾器 | F10: 結束
優點:功能最全 (流量+連線+封包)、互動式選單易上手、無需額外依賴。
缺點:介面較老舊、無 JSON/CSV 輸出、難以腳本化、高流量下介面更新延遲明顯。
# 安裝
yum -y install nload # EPEL
apt -y install nload
# 使用
nload # 所有網卡
nload eth0 # 指定網卡
nload -m # 多網卡並排 (不顯示圖表)
nload -u M # 單位 MB/s (預設自動)
# 操作鍵
# ←/→ 切換網卡 | F2 選項 | q 退出
優點:極簡、即時條形圖直觀、啟動快、資源佔用極低。
缺點:無連線級細節、無歷史記錄、無過濾功能。
# 安裝
yum -y install iftop # EPEL
apt -y install iftop
# 使用 (需 root)
iftop # 預設第一張網卡
iftop -i eth0 # 指定網卡
iftop -n # 不做反向 DNS 解析 (加快顯示)
iftop -P # 顯示連接埠
iftop -F 192.168.1.0/24 # 只顯示特定網段流量
# 介面說明
# => 發送流量 | <= 接收流量 | TX/RX 累計 | 最後 2s/10s/40s 平均
# 按鍵: n(關閉解析) P(顯示Port) S(來源排序) D(目的排序) q(退出)
優點:連線級流量排序、支援過濾、顯示 Port、極適合找出「誰在佔頻寬」。
缺點:需 root、無歷史記錄、高連線數時介面擁擠。
# 安裝 (通常預裝)
yum -y install sysstat
apt -y install sysstat
# 網卡統計 (需 -n 參數,支援 sysstat 11.5+)
iostat -n 1 5 # 每 1 秒顯示一次,共 5 次
iostat -n -h 2 # 人類可讀單位,每 2 秒
# 輸出欄位
# tps: 每秒傳輸 | kB_read/s: 讀取速率 | kB_wrtn/s: 寫入速率
# 適用於腳本擷取: iostat -n -y 1 1 | tail -n +4 | awk '{print $1,$3,$4}'
優點:標準輸出易解析、系統級工具無額外依賴、可同時監控磁碟/CPU/網路。
缺點:無互動介面、無連線細節、舊版 sysstat 不支援 -n。
# 安裝
yum -y install bmon # EPEL
apt -y install bmon
# 使用
bmon # 多視圖介面
# 分頁: 圖表/統計/詳情/屬性
# 圖表模式: 即時 ASCII 線圖,支援多網卡疊加顯示
優點:多視圖切換、即時圖表美觀、單位自動換算、支援 JSON 輸出 (bmon -o json)。
缺點:終端機需支援 256 色/Unicode 才完美顯示。
# 安裝與啟動
yum -y install vnstat
systemctl enable --now vnstat
# 查詢
vnstat # 所有介面摘要
vnstat -i eth0 # 指定介面
vnstat -d # 每日統計
vnstat -m # 每月統計
vnstat -h # 每小時統計
vnstat --json # JSON 輸出 (整合 Grafana/Prometheus)
# 重置資料庫
vnstat -i eth0 --remove
systemctl restart vnstat
優點:常駐記錄、極低資源佔用、跨重開機持久化、多種輸出格式、適合長期趨勢分析。
缺點:非即時 (資料庫每 5 分鐘更新)、無連線級細節。
# 終端機 1: 即時找出異常連線
iftop -i eth0 -P
# 終端機 2: 查看長期趨勢
vnstat -i eth0 -h | head -20
#!/bin/bash
# 每分鐘檢查 eth0 流量是否超過 100MB/s
THRESHOLD=104857600 # 100MB in bytes
RX_BYTES=$(cat /sys/class/net/eth0/statistics/rx_bytes)
TX_BYTES=$(cat /sys/class/net/eth0/statistics/tx_bytes)
sleep 60
RX_NEW=$(cat /sys/class/net/eth0/statistics/rx_bytes)
TX_NEW=$(cat /sys/class/net/eth0/statistics/tx_bytes)
RATE=$(( (RX_NEW - RX_BYTES + TX_NEW - TX_BYTES) / 60 ))
if [ $RATE -gt $THRESHOLD ]; then
echo "ALERT: eth0 flow rate $RATE B/s" | mail -s "Flow Alert" admin@example.com
fi
# Docker 容器網路流量 (需 host network 或 --cap-add=NET_ADMIN)
# 宿主機執行
iftop -i docker0
nload docker0
# 容器內 (需安裝工具)
apt update && apt install -y nload iftop
nload (秒開、直觀)。iftop -i eth0 -P。iptraf-ng 或 tcpdump -i eth0 -nn。iostat -n、/sys/class/net/*/statistics/*、vnstat --json。bmon (終端機) + Grafana + Prometheus node_exporter (Web)。vnstat (常駐守護程式,跨重開機)。# CentOS/RHEL 通常需啟用 EPEL
yum -y install epel-release
yum -y install iptraf-ng nload iftop bmon vnstat
# 編譯安裝 iptraf (舊版無套件管理器時)
yum -y install gcc glibc ncurses-devel
wget https://iptraf.seul.org/iptraf-3.0.1.tar.gz
tar zxvf iptraf-3.0.1.tar.gz
cd iptraf-3.0.1
make
make install
掌握這六大工具的特性與組合方式,能讓你在從「突發流量排查」到「長期容量規劃」的完整光譜中,隨時拿出最適合的監控利器,精準掌控 Linux 系統的網路脈動。