首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

CentOS/Linux 即時網卡流量監控:iptraf、nload、iftop、iostat 六大工具實戰對比

     編輯:更多程式設計知識

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 輸出低 (需啟動服務)長期流量統計、計費依據、報表產生

重點工具深度解析

1. iptraf-ng (原文重點工具)

經典的互動式網路監控工具,提供豐富的選單驅動介面。

# 安裝
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 輸出、難以腳本化、高流量下介面更新延遲明顯。

2. nload (最快上手)

# 安裝
yum -y install nload          # EPEL
apt -y install nload

# 使用
nload                         # 所有網卡
nload eth0                    # 指定網卡
nload -m                      # 多網卡並排 (不顯示圖表)
nload -u M                    # 單位 MB/s (預設自動)

# 操作鍵
# ←/→ 切換網卡 | F2 選項 | q 退出

優點:極簡、即時條形圖直觀、啟動快、資源佔用極低。
缺點:無連線級細節、無歷史記錄、無過濾功能。

3. iftop (連線級流量王者)

# 安裝
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、無歷史記錄、高連線數時介面擁擠。

4. iostat (腳本自動化首選)

# 安裝 (通常預裝)
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。

5. bmon (視覺化最強)

# 安裝
yum -y install bmon           # EPEL
apt -y install bmon

# 使用
bmon                          # 多視圖介面
# 分頁: 圖表/統計/詳情/屬性
# 圖表模式: 即時 ASCII 線圖,支援多網卡疊加顯示

優點:多視圖切換、即時圖表美觀、單位自動換算、支援 JSON 輸出 (bmon -o json)。
缺點:終端機需支援 256 色/Unicode 才完美顯示。

6. vnstat (長期統計/計費神器)

# 安裝與啟動
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 分鐘更新)、無連線級細節。

進階組合拳

即時 + 歷史:iftop + vnstat

# 終端機 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 (秒開、直觀)。
  • 找出哪個 IP/Port 佔頻寬: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 系統的網路脈動。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved