Linux监测网速脚本的最佳实践是:轻量场景用 vnstat + nload + iftop,自建场景用 shell 读取 /proc/net/dev 或 /sys/class/net/<网卡>/statistics 做差分,生产集群用 eBPF + Prometheus + Grafana 做可观测;若你只问 Linux监测网速脚本怎么实时查看上下行速率,优先选 vnstat 做历史、nload 看实时、iftop 查连接。

先选型:脚本不是越复杂越好
主流方案对比
| 方案 | 监控层级 | 实时性 | 历史数据 | 性能开销 | 适用场景 |
|---|---|---|---|---|---|
shell + /proc/net/dev |
网卡接口 | 秒级 | 需自己写 | 极低 | 临时排查、自定义日志 |
| vnstat | 网卡接口 | 秒级到分钟级 | 强 | 低 | 长期流量统计 |
| nload | 网卡接口 | 秒级 | 弱 | 低 | 人工看实时上下行 |
| iftop | 连接/主机 | 秒级 | 无 | 中 | 查大流量连接 |
| nethogs | 进程 | 秒级 | 无 | 中 | 定位哪个进程占带宽 |
| node_exporter | 指标 | 15秒级 | 强 | 中 | Prometheus 集群 |
| eBPF/bpftrace | 套接字/内核 | 毫秒级 | 需后端 | 低到中 | 生产级深度观测 |
单机看网速,vnstat + nload 足够,要定位“谁在跑流量”,加 iftop 或 nethogs,要告警和容量规划,上 Prometheus。
常见长尾问题一次说清
- iftop和nload哪个更适合Linux服务器? nload 看网卡总吞吐,iftop 看连接明细,服务器长期统计用 vnstat,生产告警用 node_exporter。
- CentOS 7服务器监测网速脚本怎么写? 用 bash 读取
/sys/class/net/eth0/statistics/rx_bytes,每秒差分,CentOS 7 内核较旧,eBPF 能力有限,建议 vnstat 或 sar。 - Linux VPS不限流量套餐下网速监测脚本免费吗? 开源脚本免费,商业可观测平台通常按主机数、指标量或日志量计费,不限流量不等于不限速,仍要关注公平使用政策。
- 北京机房Linux服务器网速监测脚本部署时,脚本只记录本机网卡,不评估 BGP 多线质量,晚高峰丢包、跨网延迟要配合
mtr、iperf3和运营商 Looking Glass。
实战:10 行 shell 脚本
最简实时脚本
#!/bin/bash
IF=${1:-eth0}
LOG=/var/log/net-speed.log
while true; do
RX1=$(cat /sys/class/net/$IF/statistics/rx_bytes)
TX1=$(cat /sys/class/net/$IF/statistics/tx_bytes)
sleep 1
RX2=$(cat /sys/class/net/$IF/statistics/rx_bytes)
TX2=$(cat /sys/class/net/$IF/statistics/tx_bytes)
echo "$(date +%F' '%T) $IF RX=$(( (RX2-RX1)/1024 ))KB/s TX=$(( (TX2-TX1)/1024 ))KB/s" | tee -a $LOG
done
生产增强建议
- 用
systemd托管,避免 SSH 断开后脚本退出。 - 用
logrotate切割日志,防止/var/log被写满。 - 用
vnstat -l看实时,vnstat -m看月流量。 - 用
sar -n DEV 1查看历史网卡吞吐,适合 CentOS 7。 - 用
ethtool -S eth0查看丢包、错包、队列统计。 - 用
tc -s qdisc show dev eth0查看队列和限速。
关键点:脚本只采集本机接口字节数,它无法判断公网质量,也无法区分 TCP/UDP 业务占比。
eBPF + Prometheus:2026 生产级方案
数据链路
node_exporter暴露node_network_receive_bytes_total、node_network_transmit_bytes_total。- PromQL 用
rate(node_network_receive_bytes_total[1m])计算每秒速率。 - Grafana 做面板,Alertmanager 做告警。
- 秒级突发用 eBPF 补充。
bpftrace可跟踪tcp_sendmsg、tcp_cleanup_rbuf。 - Linux 内核文档指出,BPF ring buffer 适合高频事件采集。
Brendan Gregg 在《BPF Performance Tools》中强调,eBPF 能以较低开销获取套接字级吞吐,Cloudflare 等头部厂商在边缘网络使用 XDP/eBPF 做 DDoS 清洗与流量采样,阿里云、腾讯云的可观测产品也普遍集成 node_exporter 指标。
国家标准与主管机构
工信部“双千兆”网络协同发展行动推动固定宽带测速规范化,通信行业标准 YD/T 2400 系列《固定宽带接入速率测试方法》给出测试思路:关注 TCP/UDP、并发连接、包长、测试时长,做 Linux监测网速脚本时,不要只看瞬时峰值,要看 P95、P99 和丢包率。
部署与成本
地域与套餐
- 北京机房:优先看 BGP 多线、晚高峰丢包、跨网延迟。
- 普通 VPS:脚本免费,但受虚拟化邻居影响。
- 不限流量套餐:注意公平使用政策,避免长期跑满。
- 商业可观测:按实例、指标、日志量计费,适合集群。
合规边界
只监测自己拥有或授权的设备,不要抓取他人流量,生产环境避免长期 tcpdump,优先用聚合指标和 eBPF 采样,遵守《网络安全法》《数据安全法》相关要求。
Linux监测网速脚本的核心不是“代码越长越强”,而是选对层级:vnstat 管历史,nload 看实时,iftop 查连接,nethogs 定进程,node_exporter 做告警,eBPF 做深度观测,单机用 shell 差分最快,生产用 Prometheus 最稳,先明确你要秒级、分钟级还是集群级,再决定脚本复杂度。

问答模块
Linux监测网速脚本怎么实时查看上下行速率?
读取 /proc/net/dev 或 /sys/class/net/<网卡>/statistics,每秒差分计算,也可直接用 nload、vnstat -l、iftop。
iftop和nload哪个更适合Linux服务器?
看总带宽选 nload 或 vnstat;看连接明细选 iftop;看进程选 nethogs;要告警选 Prometheus + node_exporter。
CentOS 7服务器监测网速脚本怎么写?
用 bash + awk + systemd,内核旧时少用 eBPF,优先 vnstat、sar、iftop。
你的服务器是物理机、VPS 还是北京机房托管?网卡名和业务类型不同,脚本选型也会不同。
参考文献
-
Linux 内核文档:BPF ring buffer 与 tracing 文档,2026-05 访问。
-
Brendan Gregg:《BPF Performance Tools》,2019。

-
工业和信息化部:YD/T 2400 系列《固定宽带接入速率测试方法》。
-
Prometheus 官方文档:node_exporter 网络指标说明,2026-05 访问。
小伙伴们,上文介绍linux监测网速脚本的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/467860.html