服务器带宽跑满怎么办?零基础排查与急救指南

你的网站变慢了?先别急着重启,三步找出带宽杀手

服务器带宽跑满是最常见也最让人头疼的问题之一:网站加载缓慢、图片刷不出来、甚至远程连接都断开。
遇到这种情况,很多新手会直接重启服务器,但重启治标不治本,流量很快又会涨回去。
本文从零基础出发,带你一步步定位流量来源并解决问题,全部操作都可以在 SSH 下完成,不需要额外安装面板。

准备阶段:确认你有 SSH 权限和基础工具

在执行排查之前,确保你能够通过 SSH 登录服务器(Windows 用 PuTTY,Mac/Linux 直接终端)。
大部分 Linux 发行版默认没有安装 iftop 和 nethogs,需要先安装它们:

# CentOS / Rocky Linux
yum install -y epel-release
yum install -y iftop nethogs

# Ubuntu / Debian
apt update && apt install -y iftop nethogs

如果 yum 或 apt 命令报错,那是因为网络太慢?
可以先尝试用 ping baidu.com 检查基础连通性,如果连 ping 都丢包,说明带宽已经被占满,安装软件包可能失败,这时可以用备用方案——系统自带的 ssnetstat 命令快速查看连接数。

手工排查:用 iftop 和 nethogs 揪出流量大户

1. 查看整体带宽流向(iftop)

执行以下命令,按 T 可以切换流量单位,按 p 显示端口:

iftop -i eth0  # 将 eth0 替换为你实际的网卡名称,可以用 ip addr 查看

界面上方会显示实时进出流量,下方按 IP 和端口列出占用带宽的通信对。
如果你看到某个 IP 持续向你发送大流量(比如几十 Mb/s),很可能就是攻击或大量下载。
记住那个 IP 地址。

2. 按进程定位流量(nethogs)

nethogs 能显示每个进程占用的带宽,非常适合发现是哪个程序(比如 nginx、php-fpm、或者恶意进程)在发疯:

nethogs eth0

如果提示“process not found”,请用 root 或 sudo 运行。
你会看到类似这样的输出:

PID   USER  PROGRAM                         SENT      RECEIVED
12345 www-data nginx: worker process        1.2 MB/s  25 MB/s

这说明 nginx 正在大量接收流量,可能是被刷了或者服务异常。

3. 快速查看连接数(ss 命令)

iftop/nethogs 安装失败时,可以用 ss 统计连接状态:

ss -ant | grep :80 | wc -l   # 统计端口 80 的 TCP 连接数
ss -ant | grep SYN-RECV | wc -l  # 统计半连接,如果数值很高说明可能遭受 SYN Flood 攻击

如果连接数达到几千甚至上万,基本可以断定被攻击了。

常见元凶和解决方法

攻击流量(DDoS / CC)

  • 症状:大量陌生 IP 发请求,CPU 可能也会飙升。
  • 临时方案:在 iptables 或防火墙中封掉来源 IP(如果是单点攻击)。
iptables -A INPUT -s 恶意IP -j DROP
  • 长期方案:接入 CDN 或高防 IP,配置 WAF。

爬虫或采集

搜索引擎爬虫或恶意采集也会占满带宽。
可以用日志分析,限制 User-Agent 或频率:

# nginx 限制单个 IP 连接数(http 段)
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn addr 10;

日志文件过大导致磁盘 I/O 异常

访问日志、错误日志、慢查询日志如果一直写,也会消耗带宽(尤其是 syslog 发送到远程)。
检查日志文件大小:

du -sh /var/log/*.log

如果某日志超过 1GB,建议关闭访问日志或配置 logrotate 轮转。

程序后门或挖矿病毒

nethogs 中看到不明进程(例如随机名称的二进制),用 ps aux 查看其路径,然后 kill 并删除文件,再检查开机自启动项。

避坑指南

  • 不要直接重启服务器:重启后旧进程消失,但恶意脚本或定时任务很可能还会重新启动。一定要先找到根因。
  • 不要随意升级内核或禁用防火墙:稳定大于一切,先隔离流量,再慢慢修补。
  • 如果你使用的是宝塔面板,可以在“面板设置 -> 安全 -> 防火墙”中添加来源 IP 规则,或在“监控”页面查看带宽趋势。
  • 如果带宽瞬间跑满导致 SSH 连接不上:联系机房或云服务商请求紧急限流,或通过 VNC/控制台进入。

效果验证:如何确认带宽已经恢复正常?

完成上述操作后,重复执行以下命令:

iftop -i eth0 -t -s 5   # 显示5秒的平均流量

观察流量是否下降到正常范围(比如低于 1Mb/s)。
同时用 curl -I http://你的域名 测试页面响应,或者直接打开浏览器访问。
如果速度明显变快,说明问题已解决。

建议后续开启持续监控:使用 nloadvnstat 记录带宽历史,一旦突发流量可自动报警。
如果问题反复出现,考虑升级带宽或接入 CDN。

以上就是一个完整的服务器带宽跑满排查与急救流程,零基础也能照着做。
如果你在处理过程中遇到其他异常,欢迎在评论区留言,我会根据常见场景补充解决方案。

分享到:
上一篇
服务器磁盘满了怎么办?零基础排查清理与扩容完整教程
下一篇
服务器频繁宕机怎么排查?新手也能看懂的六步自救指南
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意