努力
加油

如何查看服务器的流入和流出带宽使用情况?

查看服务器带宽使用情况,核心思路其实就两条:看监控面板(最简单、最直观)和 进系统内部查(最精准、能定位具体进程)。

不同的场景和需求,方法完全不同。我按从“小白”到“极客”的顺序给你梳理一下,重点放在实操上。

一、 云平台控制台查看(最推荐,适合大多数用户)

如果你用的是阿里云、腾讯云、华为云等主流厂商,他们自带的监控功能已经非常完善。这是最省心的方式,不用你装任何软件。

  1. 登录控制台:进入你的云服务器 ECS/CVM 管理页面。
  2. 找到监控指标:通常在“实例详情”或“监控中心”里。
  3. 关键指标解读:
    • 入网带宽 (Inbound):别人访问你服务器的流量。
    • 出网带宽 (Outbound):你服务器向外发送的流量(通常这个才是扣费的重点,尤其是按流量计费的实例)。
    • 带宽利用率:当前带宽占购买上限的比例。

注意坑点:

  • 时间粒度:默认可能只显示5分钟或15分钟的聚合数据。如果有突发流量(比如DDoS攻击或瞬间高并发),你需要把时间范围拉大,或者切换成更细粒度的监控(部分厂商高级监控需要额外付费或配置)。
  • 峰值 vs 平均值:计费通常是按95峰值或固定带宽,但监控显示的平均值可能掩盖了瞬间的拥堵。一定要看峰值曲线。

二、 Linux 系统内部实时查看(适合排查问题)

当你发现服务器卡了,或者想看看现在到底谁在吃带宽,得进 SSH 连进去看。

1. 快速概览:iftop 或 nethogs

这两个工具比 top 更适合看网络。

  • 安装:

    # CentOS/RHEL
    yum install iftop -y
    # Ubuntu/Debian
    apt install iftop -y
  • 使用:

    iftop -i eth0  # eth0 换成你的网卡名,用 ip addr 查看
    • 优势:实时显示当前连接双方的 IP 和端口,以及当前的流量大小。能一眼看出是哪个 IP 在拖慢网速。
    • 进阶:加上 -P 参数可以显示端口号,方便判断是 Web 服务还是数据库请求。
  • 如果想知道哪个进程在占用带宽,用 nethogs:

    nethogs eth0

    它会直接列出 PID 和对应的程序名(如 nginx, mysql, python 等),这对排查“不明流量”非常有用。

2. 历史数据统计:sar 或 vnstat

如果你错过了实时监控,想复盘昨天的带宽情况,命令行里的 ifconfig 只能看累计总量,没法看趋势。

  • 方案 A:使用 vnstat(轻量级,记录历史)

    yum install vnstat -y
    vnstat --json  # 查看 JSON 格式的历史数据
    vnstat -h      # 按小时查看
    vnstat -d      # 按天查看

    它会在后台默默记录流量,重启不丢失数据,非常适合做简单的历史分析。

  • 方案 B:使用 sar(系统自带,需提前开启)
    如果你的系统之前没配置过 sysstat,可能看不到历史数据。但如果装了,可以用:

    sar -n DEV 1 5  # 每1秒采样一次,共5次

    输出里的 rxkB/s 是接收,txkB/s 是发送。

3. 极端情况:内核日志与 dmesg

有些时候,带宽跑满是因为 TCP 重传过多,导致有效吞吐量极低。这时候看带宽监控可能觉得正常,但实际业务很慢。

netstat -s | grep retrans

如果重传率很高,说明不是带宽不够,而是网络质量差或丢包严重。

三、 Windows Server 查看方法

如果是 Windows 服务器:

  1. 任务管理器:Ctrl+Shift+Esc -> 性能 -> 以太网。这里能看到实时的上传/下载速度。
  2. 资源监视器:在任务管理器的“性能”标签页底部点击“打开资源监视器”,切换到“网络”标签。这里能看到每个进程的 TCP 连接和带宽占用,比 Linux 的 top 还要直观一点。
  3. PowerShell:
    Get-NetAdapterStatistics -Name "Ethernet"

    可以看到累计收发字节数,适合做长期统计脚本。

四、 避坑指南 & 专业建议

  1. 区分“公网带宽”和“内网带宽”:
    • 很多云厂商的内网带宽(VPC 内互通)是千兆甚至万兆起步且不限量,只有公网出口带宽才严格限制且收费。别把内网同步数据的流量误认为是公网攻击。
  2. CDN 和 LB 的影响:
    • 如果你的服务器前面挂了 CDN 或负载均衡(SLB/ELB),你在源站服务器上看到的带宽会大幅降低。此时查看带宽使用情况,应该去 CDN 或 SLB 的控制台看,那里才是流量的真实入口。
  3. 安全组与防火墙:
    • 有时候带宽看起来“异常低”,可能是被安全组规则限制了。检查入站/出站规则是否过于严格。
  4. 防刷策略:
    • 如果发现流出带宽突然激增,且 iftop 显示大量未知 IP 连接,大概率是被撞库或 DDoS。第一时间联系云厂商的安全中心,他们能提供清洗服务或封禁 IP 的建议。

总结:
日常运维,云控制台监控足够应付;出了问题排查,iftop + nethogs 是黄金组合;需要历史报表,vnstat 最省心。别迷信 top 命令里的网络字段,那玩意儿对现代多核 CPU 和多网卡环境支持并不友好。