宝塔面板中真实的出网带宽峰值应以「监控」页“实时带宽”曲线及标注的“峰值带宽”为准,它每5秒读取/proc/net/dev,单位为mbps;误判常因小包高频请求所致,需结合7天/30天视图比对突增情况,并用iftop、ss等命令定位真实发包进程。

怎么看宝塔面板里真实的出网带宽峰值
宝塔面板的「监控」页面显示的“实时带宽”曲线和下方标注的“峰值带宽”数值,是唯一可信的出网流量参考源。它直接读取 /proc/net/dev,每5秒采样一次,峰值为所选时间范围(默认24小时)内的最高瞬时速率,单位是 Mbps,不是 MB/s —— 这点极易看错,比如显示“120”,实际是 120 Mbps ≈ 15 MB/s。
常见误判现象:你看到图表上“出网”线冲到顶部,但服务器没卡、网站还能打开。这说明问题不在带宽跑满本身,而可能是某类小包高频请求(如 DNS 查询、HTTP 长连接心跳)拉高了包速率,而非真实数据吞吐。此时应切换到「7天」或「30天」视图,比对历史峰值是否突增 —— 若仅今天异常,才值得继续排查。
- 确保右上角监控开关已开启,且等待至少30秒再读数
- 不要依赖「系统状态」页的概览数字,它刷新慢、精度低,只作粗略参考
- 如果图表空白或始终为 0,检查是否禁用了宝塔监控服务:
btpanel进程是否在运行,或执行systemctl status bt确认状态
怎么确认是哪个进程或IP在疯狂出网
宝塔面板不提供进程级出网流量排序,必须进终端用原生命令定位。重点不是“谁在连外网”,而是“谁在持续发大量数据包出去”。
先查实时出口流量大户:
ss -tnp | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10
这条命令统计当前所有 ESTABLISHED 连接的目标 IP 出现频次,频次高 ≠ 流量大,但能快速筛出疑似攻击源或爬虫 IP。若某 IP 占比超 30%,基本可锁定。
再查真实发包进程:
iftop -P 80,443 -n -t -L 50 | head -20
注意:需提前安装 iftop(yum install -y iftop 或 apt install -y iftop),该命令按实时字节数排序,-P 限定 HTTP/HTTPS 端口,-t 是文本模式,-L 限制行数。重点关注 “TX”(发送)列数值持续 >1MB/s 的那一行,右侧会显示对应 pid/program。
- 若看到
php-fpm或nginx占高位,说明是网站自身逻辑异常(如循环调用第三方 API、未加限制的文件下载接口) - 若看到
curl、wget、python进程,大概率是被植入后门或定时任务失控 -
iftop默认以 KB/s 显示,别和面板的 Mbps 单位混淆;1 MB/s = 8 Mbps
封禁恶意IP前必须绕过宝塔WAF的两个盲区
很多人在「安全 → WAF → CC防护」里设了规则,却仍挡不住出网洪流,因为 WAF 只拦截入站请求,对服务器主动发起的出网连接完全无感。真正要阻断,得用底层防火墙规则,且必须避开两个典型配置错误:
- 用
iptables -I OUTPUT -d 恶意IP -j DROP封出向 —— 错!OUTPUT 链管的是本机**发起**的连接,但多数攻击是通过 PHP/curl 主动连接外部,封 OUTPUT 会同时干掉你的更新、邮件、数据库备份等合法出网行为 - 只在面板「安全 → IP黑名单」里加 IP —— 错!该功能只作用于 INPUT 链(即别人连你),对服务器自己往外发包无效
- 正确做法是封 INPUT + 配合应用层限流:先用
iptables -I INPUT -s 恶意IP -j DROP切断其访问入口,再进对应站点的「流量限制」里把并发压到 1,双保险防止其触发后端脚本出网
紧急情况下,可临时用 ipset 批量封禁:
ipset create badips hash:ip<br>ipset add badips 203.0.113.45<br>iptables -I OUTPUT -m set --match-set badips dst -j DROP
注意:OUTPUT 链加 ipset 规则虽有效,但务必在封禁后立刻验证业务是否中断,建议仅用于已确认为纯恶意 C2 通信的 IP。
为什么限制完还是跑满?检查Nginx的proxy_buffering和fastcgi_buffering
最常被忽略的根源:Nginx 作为反向代理时,若后端(如 PHP)响应慢,Nginx 会缓存大量未发出的数据在内存里,然后一股脑刷到网卡,造成“假性出网打满”。尤其当 proxy_buffering off 或 fastcgi_buffering off 时,Nginx 不缓冲,直接透传,后端一卡,就变成持续小包推送。
检查方法:进目标站点「后端设置」→ 查看「Nginx配置」区域,确认以下两行是否存在且为 on:
proxy_buffering on;fastcgi_buffering on;
若被手动关掉,或配置中写成 off,请立即改回 on 并保存重载。这是无侵入、零成本、见效最快的缓解手段 —— 它不会减少总流量,但能把突发毛刺削平,让出网曲线变得平滑,避免被 IDC 误判为 DDoS。
补充一点:如果你用的是宝塔 7.7.0+,「网站 → 设置 → 流量限制」里的“单IP限制”值如果设得过大(如 1000),反而会助长攻击者用多 IP 轮询刷量,建议严格控制在 5–20 区间,并配合 WAF 的 CC 防护周期(60 秒内 ≤5 次)共同生效。










