加油
努力

怎么查看服务器的网络流量使用情况?

查看服务器网络流量使用情况有多种方法,可根据需求选择实时监控、历史统计、按进程/接口/协议分析等不同维度。以下是常用且实用的方法(适用于 Linux 服务器):


✅ 一、基础命令行工具(无需安装,系统自带)

1. iftop —— 实时按连接/进程查看流量(类似 top

sudo iftop          # 默认监控 eth0,显示实时连接的IP、端口、带宽
sudo iftop -P        # 显示端口号
sudo iftop -f "port 80"  # 过滤特定端口(如HTTP)
sudo iftop -n        # 不解析域名(加快响应)

💡 提示:需 sudo 权限;若未安装,用 apt install iftop(Debian/Ubuntu)或 yum install iftop(CentOS/RHEL)。

2. nethogs —— 按进程实时监控流量(最直观查哪个程序在“吃”带宽)

sudo nethogs          # 默认监控所有网卡
sudo nethogs eth0     # 指定网卡
sudo nethogs -t       # 显示时间戳

✅ 优势:直接显示 PID、程序名、发送/接收速率,适合排查异常进程(如X_X、备份、爬虫)。

3. ip -s linkcat /proc/net/dev —— 查看各网卡累计收发字节数

ip -s link show eth0    # 简洁显示 eth0 的 rx/tx 总量(bytes/packets/errors)
# 或
cat /proc/net/dev | grep eth0

📌 可结合脚本计算速率(如每秒增量),适合写监控脚本。

4. ss -inetstat -s —— 查看协议级统计(TCP/UDP 重传、丢包等)

ss -i state established | head -10   # 查看活跃连接的 TCP 信息(含 cwnd、rtt)
netstat -s | grep -A 5 "Tcp:"         # TCP 协议统计摘要

✅ 二、进阶/可视化工具(需安装)

1. vnstat —— 轻量级长期流量统计(后台守护进程,断电不丢数据)

# 安装 & 初始化数据库(以 eth0 为例)
sudo apt install vnstat
sudo vnstat -u -i eth0      # 创建数据库
sudo systemctl enable vnstat && sudo systemctl start vnstat

# 查看统计
vnstat                          # 今日/本月汇总
vnstat -d                         # 按天查看
vnstat -h                         # 按小时查看(最近24h)
vnstat -l                         # 实时速率估算(非实时流,是平均值)

✅ 优势:低开销、支持图表导出、可集成到 Web(如 vnstati 生成图片)。

2. bmon / slurm —— 终端图形化实时监控(支持多网卡、颜色/图表)

sudo apt install bmon
bmon -p eth0    # 启动交互式界面(支持缩放、排序、导出)

🎨 支持 ASCII 图形、峰值标记,适合运维值班查看。

3. iftop + tcpreplay 配合抓包分析(深度排错)

sudo tcpdump -i eth0 -w traffic.pcap port 443 &   # 抓HTTPS流量
# 后续用 Wireshark 分析,或用 tshark 统计:
tshark -r traffic.pcap -qz io,phs

✅ 三、快速诊断技巧(排查异常流量)

场景 命令
哪个进程占带宽高? sudo nethogs -t
谁在连外部可疑IP? sudo ss -tunp | grep ESTABsudo lsof -i -P -n
是否有大量短连接/连接风暴? watch -n1 'ss -s' (看 totalestablished 变化)
网卡是否丢包/错误? ip -s link show eth0 | grep -A 3 "errors|dropped"
DNS 请求是否异常? sudo tcpdump -i lo port 53 -c 20(本地DNS)

✅ 四、生产环境建议

  • 🔹 日常巡检vnstat -d(看日流量趋势) + nethogs(突发时快速定位)
  • 🔹 告警集成:用 vnstat --oneline 输出文本,配合脚本 + Prometheus + Grafana 实现可视化监控
  • 🔹 安全审计:定期 ss -tulnp + netstat -tulnp 检查监听端口,结合 journalctl -u systemd-networkd 查网络服务日志
  • 🔹 容器环境:K8s 用 kubectl top pods/nodes;Docker 用 docker statsdocker network inspect bridge

需要我帮你:

  • ✅ 写一个自动检测流量突增并告警的 Bash 脚本?
  • ✅ 配置 vnstat + Grafana 可视化面板?
  • ✅ 分析 tcpdump 抓包结果识别攻击行为?
  • ✅ Docker/Kubernetes 环境下的流量监控方案?

欢迎随时告诉我你的具体场景(如:CentOS 7 / Ubuntu 22.04 / 有无 root 权限 / 是否容器化 / 关注入站还是出站),我可以给出定制化命令和配置 👇

云服务器