Linux 原生無圖形化流量儀表板,運維需組合工具實現即時、歷史、告警三層監控。本文提供三套方案:iftop 即時連線級視覺化、ifconfig 差值腳本秒級速率、SNMP + 監控系統長期趨勢。
# CentOS/RHEL
yum install epel-release && yum install iftop
# 或編譯安裝(需 libpcap、ncurses、gcc)
yum install -y flex byacc libpcap ncurses ncurses-devel libpcap-devel
wget https://www.ex-parrot.com/pdw/iftop/download/iftop-1.0pre4.tar.gz
tar zxf iftop-*.tar.gz && cd iftop-*
./configure && make && make install
# Debian/Ubuntu
apt-get update && apt-get install iftop
iftop -i eth0 # 指定介面
iftop -i eth0 -n # 直接顯示 IP,不解析主機名(更快)
iftop -i eth0 -P # 顯示埠號
介面說明:
h 説明、n 切換 IP/主機名、s 顯示來源埠、d 顯示目的埠、N 服務名/埠號、b 柱狀圖開關、q 退出。原理:每秒讀取 RX bytes、TX bytes 計算差值。
#!/bin/bash
# rx_tx_rate.sh [interval_sec]
IFACE=${1:-eth0}
INTERVAL=${2:-1}
rx_prev=$(awk '/RX bytes/{print $2}' /proc/net/dev | cut -d: -f2 | sed -n "$(($(grep -n "$IFACE" /proc/net/dev | cut -d: -f1))p)")
tx_prev=$(awk '/TX bytes/{print $6}' /proc/net/dev | cut -d: -f2 | sed -n "$(($(grep -n "$IFACE" /proc/net/dev | cut -d: -f1))p)")
while true; do
sleep $INTERVAL
rx_now=$(awk -v iface="$IFACE" '$1 ~ iface":" {print $2}' /proc/net/dev)
tx_now=$(awk -v iface="$IFACE" '$1 ~ iface":" {print $10}' /proc/net/dev)
rx_kb=$(( (rx_now - rx_prev) / 1024 / INTERVAL ))
tx_kb=$(( (tx_now - tx_prev) / 1024 / INTERVAL ))
echo "$(date '+%H:%M:%S') RX: ${rx_kb} KB/s TX: ${tx_kb} KB/s"
rx_prev=$rx_now; tx_prev=$tx_now
done
運行:./rx_tx_rate.sh eth0 1
#!/bin/bash
IFACE=eth0
rx0=$(ifconfig $IFACE | grep -oP 'RX bytes:\K\d+')
tx0=$(ifconfig $IFACE | grep -oP 'TX bytes:\K\d+')
sleep 1
rx1=$(ifconfig $IFACE | grep -oP 'RX bytes:\K\d+')
tx1=$(ifconfig $IFACE | grep -oP 'TX bytes:\K\d+')
echo "RX: $(( (rx1-rx0)/1024 )) KB/s TX: $(( (tx1-tx0)/1024 )) KB/s"
snmpd,配置 rocommunity public、view systemview included .1.3.6.1.2.1.2.2.1.10(ifInOctets)與 .1.3.6.1.2.1.2.2.1.16(ifOutOctets)。snmp_exporter 抓取,Grafana 繪製 rate(ifInOctets[5m]) 流量圖表。| 需求 | 推薦工具 |
|---|---|
| 即時排查「誰在佔頻寬」 | iftop / nethogs(進程級) |
| 腳本嵌入、無依賴、秒級速率 | ifconfig/ss + /proc/net/dev 差值 |
| 歷史趨勢、告警、多主機聚合 | SNMP + Prometheus/Grafana/Zabbix |
| 容器/ Kubernetes Pod 網路 | cAdvisor + node-exporter / Cilium Hubble |
根據場景組合使用,構建從「當下看」到「長期管」的完整流量可觀測體系。
Nginx try_files 指令詳解與 WordPress Super Cache 實戰應用
CentOS 5 建立用戶並授予 sudo 權限:useradd、passwd、visudo、PATH 擴充
Git 進階技巧與最佳實踐:別名、自動補全、著色、Rebase 原則、忽略檔案、區域網共享倉庫
CentOS 配置 SSH 存取控制:hosts.allow/deny 設定與服務重啟驗證
GNOME 面板時鐘自訂顯示格式:strftime 參數完整應用
Linux 核心關鍵檔案深度解析:vmlinuz、initrd 與 System.map