不花一分钱,服务器带宽流量优化实战指南
前置准备
- 一台服务器:已安装 CentOS 7/8、Ubuntu 20/22 或 Debian 系统,且有 SSH 权限。
- 宝塔面板(可选):已安装宝塔面板(
curl -s install.bt.cn | bash)且能通过http://你的IP:8888访问。 - 基本概念:带宽(单位 Mbps)即流量传输速率;流量(单位 GB)即一段时间内传输的数据总量。本文优化指监控当前占用 + 限制单 IP 或总带宽,防止被单个应用占满。
如果你只懂网页操作,推荐直接使用宝塔面板步骤;如果你喜欢命令行,跳到“分步操作·命令行方案”。
分步操作
方案一:宝塔面板(图形化,适合新手)
- 登录宝塔面板 → 左侧菜单「监控」→ 点击「带宽」标签,可看到实时的流入/流出曲线。
- 开启站点限速:左侧「网站」→ 选择目标站点 → 点击「设置」→「限速」→ 勾选「开启限速」,填写单连接速度(如 1024 KB/s)和并发数(如 50)。点击保存。
- 全局流量限制:左侧「安全」→「防火墙」→ 添加规则:端口范围填
1:65535,协议TCPUDP,源IP 留空,动作限制,速率 填10M(即总带宽限制 10 Mbps)。 - 验证:几秒后打开站点测试下载,速度应被限制在约 1.25 MB/s。
方案二:命令行(通用,适合无面板场景)
1. 安装监控工具 iftop
# CentOS/RHEL
yum install -y epel-release && yum install iftop -y
Ubuntu/Debian
apt-get install iftop -y
运行 iftop -i eth0(网卡名替换为实际,可用 ip a 查看),按 q 退出。
观察哪个 IP 的流量飙高。
2. 使用 tc 限制单 IP 带宽(以 eth0 网卡为例)
# 下载大文件测试前,先清理已有规则(可选)
tc qdisc del dev eth0 root 2>/dev/null
创建根队列,限制总带宽为 10Mbps
tc qdisc add dev eth0 root handle 1: htb default 30
创建父类,限速 10Mbps
tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit ceil 10mbit
创建子类,针对 IP 192.168.1.100 限速 2Mbps
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 2mbit ceil 2mbit
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.1.100 flowid 1:10
替换 192.168.1.100 为你想要限制的 IP 地址。如果想限制多个 IP,重复添加 filter。3. 验证限速效果
在目标 IP 的机器上执行 wget http://你的服务器IP/大文件 观察速度。
或在本机运行 iftop -i eth0 查看实时流量。
避坑指南
- tc 规则重启后失效:建议写入开机自启脚本(如
/etc/rc.local或 systemd service)。 - 宝塔限速对 CDN 无效:如果网站套了 CDN,限速应设在源站层或 CDN 控制台。
- 别把 SSH 排除了:使用 iptables 限制前,确保已添加允许 SSH(22端口)的规则,否则会把自己卡掉。
- 监控插件占用带宽:部分监控脚本(如
netdata)会自产流量,需排除自身才算带宽优化。
高频问题解答
- Q:服务器带宽跑满了,怎么快速找到“罪魁祸首”?
A:SSH 运行 nethogs(安装:apt-get install nethogs 或 yum install nethogs -y),按进程实时显示带宽占用,最直观。
- Q:宝塔面板限速后速度没变?
A:检查是否开启了 CDN;
另外宝塔的限速仅对 80/443 端口生效,如果通过其他端口(如 8080)传输,不会被限制。
- Q:tc 限速后某 IP 仍然超速?
A:确认 filter 的 match 方向:src 控制传出流量,dst 控制传入流量。
如果流量方向反了,规则无效。
效果验证
- 验证监控是否正常工作:在服务器上连续运行
iftop或nethogs,用另一台机器下载大文件,观察流量变化。 - 验证限速是否生效:
- 宝塔:在站点设置里查看限速状态,或通过测速网站测试下载速度。
- 命令行:用
tc -s qdisc show dev eth0查看统计信息,rate和ceiling应该有实际值。
- 验证业务是否受影响:打开网页、API 接口,确认关键业务响应正常。如果限速后页面加载变慢,适当调高限制值。
如果你正在处理服务器带宽流量优化,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。