新手也能上手的服务器带宽流量优化操作指南

前置准备


进行服务器带宽流量优化前,你需要准备以下几项:



  • 一台 Linux 服务器(CentOS 7/8、Ubuntu 20.04+ 均可),已通过 SSH 登录并拥有 root 或 sudo 权限。

  • 已安装常用网络工具(如 nload、iftop、curl)。若未安装,可通过包管理器快速安装:


  # CentOS / RHEL
sudo yum install epel-release -y && sudo yum install nload iftop -y

Ubuntu / Debian

sudo apt update && sudo apt install nload iftop -y



  • 确认服务器网卡名称:运行 ip addrifconfig 查看,常见有 eth0ens3ens160 等。

  • 如果你使用宝塔面板,请在后台确认已安装 Nginx 或 Apache,本文以 Nginx 为例。


注意:带宽流量优化需要实际访问服务器的操作权限,以下步骤均不会影响现有网站正常运行,请放心操作。

---


分步操作


第一步:监控当前流量,找到瓶颈


在动手优化前,先用工具看清带宽到底被谁用了。



  1. 实时流量监控(nload)


在终端输入 nload 或指定网卡:


   nload eth0

界面会显示实时入站(Incoming)和出站(Outgoing)流量,按 q 退出。



  1. 查看连接来源(iftop)


   iftop -i eth0 -n

界面会列出当前占用带宽最高的 IP 和端口(按 t 切换显示模式)。

若发现某个 IP 持续高流量,说明需要限制它。


第二步:使用 Nginx 限制单连接速度(最简单)


如果你的站点使用 Nginx 提供下载或大文件服务,可以通过配置限制每个连接的速率,防止单个用户占满带宽。



  1. 编辑站点配置文件(宝塔用户:在网站设置 → 配置文件中找到 server 段;手动用户:进入 /etc/nginx/conf.d//etc/nginx/sites-available/)。

  2. location 段中添加 limit_rate 指令:


   location /download/ {
limit_rate 500k; # 限制每个连接最大 500KB/s
}

若要限制全局(所有请求),可在 server 段中添加:


   server {
limit_rate 2m; # 每个连接 2MB/s
...
}


  1. 保存后测试配置并重载 Nginx:


   nginx -t                  # 测试语法
systemctl reload nginx # 或 service nginx reload

第三步:使用 tc 命令对特定 IP 限速(更强大)


当需要对某个 IP 整体限速(不依赖应用层)时,可以使用 Linux 自带的流量控制工具 tc

以下示例限制 IP 192.168.1.100 的最大带宽为 1Mbps:


# 创建根队列规则(假设网卡 eth0)
tc qdisc add dev eth0 root handle 1: htb default 30

创建类别,限定总带宽

tc class add dev eth0 parent 1: classid 1:1 htb rate 1000mbit ceil 1000mbit

创建子类别,为指定 IP 限速

tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.100 flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.1.100 flowid 1:10



  • rate 是保证带宽,ceil 是最大带宽。

  • 上述命令只针对单个 IP,替换 IP 即可。

  • 若要删除所有 tc 规则:tc qdisc del dev eth0 root


注意:tc 命令对新手有一定门槛,建议先在测试环境试验。宝塔面板目前未直接集成 tc 功能,需要通过 SSH 手动执行。

---


避坑指南



  1. 限速单位不要搞混


limit_rate 的单位是 字节/秒(k 表示 KB/s,m 表示 MB/s);

tcmbit 是指兆比特,1 MB/s = 8 Mbit

配置时一定要换算清楚,否则可能限制太松或太紧。



  1. 限速后用户反馈慢


单个连接限速后,如果用户使用多线程下载,仍可能占满带宽。

建议同时限制并发连接数(如 Nginx 的 limit_conn 指令)。



  1. nload / iftop 不显示数据


多数情况是权限不够,使用 sudo nloadsudo iftop 即可。



  1. 宝塔用户找不到 limit_rate 配置位置


在宝塔面板 → 网站 → 选择站点 → “配置文件”选项卡,在里面找到 locationserver 块手动添加。

添加后记得点击“保存”并重启 Nginx。


---


高频问题解答


问:如何查看当前服务器总带宽使用情况?

答:使用 nloadvnstat 实时查看。vnstat 还可以生成历史流量统计。


问:限制了单连接速度,但用户用迅雷等工具仍能跑满带宽,怎么办?

答:Nginx limit_rate 只限制单个连接。若用户开启多线程,可以配合 limit_conn 限制同一 IP 的并发连接数。例如在 server 块中加入:


limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
limit_conn addr 5; # 每个 IP 最多 5 个并发连接
}

问:tc 限速后不生效,可能是什么原因?

答:最常见原因是未匹配到正确的网卡(用 ip addr 确认),或者防火墙规则干扰。建议先执行 tc -s qdisc show dev eth0 查看队列统计,确认是否命中。


问:优化后用户下载速度变慢,但服务器带宽还有空闲,怎么办?

答:适当调高 limit_ratetc 的速率限制,并结合业务实际调整。建议先设置一个保守值,再通过持续监控逐步放开。


---


效果验证


完成配置后,按以下方法确认优化已生效:



  1. 检查 Nginx 限速


从另一台机器用 curl 测试下载速度:


   curl -o /dev/null -s -w "%{speed_download}\n" http://你的服务器地址/一个大文件

输出速度应接近你设定的 limit_rate 值(注意单位转换)。



  1. 检查 tc 限速


在目标 IP 的机器上运行 iperf3speedtest-cli 测速,观察结果是否被限制。



  1. 实时监控确认


持续运行 nloadiftop,观察目标 IP 或总带宽曲线,峰值不应超过你设定的上限。


---


如果你正在处理服务器带宽流量优化,建议先按本文步骤完整执行,再根据自己的环境做微调;

遇到异常时优先回看避坑和高频问题部分。

持续监控与逐步调整是带宽优化的核心思路,不要追求一次性完美。

分享到:
上一篇
服务器被挖矿病毒处理:服务器CPU飙到100%?可能是挖矿病
下一篇
WP商城WooCommerce搭建:新手快速搭建WooCom
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意