wondershaper 是基于 tc 的轻量级带宽限制工具,通过 sudo wondershaper <接口> <下载速率> <上传速率> 限速,支持一键清除;还可结合 iptables 标记与 tc 实现精准流量分流,或用 systemd-run 限制更新进程资源。

系统更新常在后台静默下载数GB补丁,导致网页卡顿、视频缓冲、远程桌面延迟——这不是网络慢,是更新进程霸占了全部出口带宽。
用wondershaper快速限制更新通道
这一步操作起来很简单,直接把命令复制粘贴执行就行。
安装工具:sudo apt install wondershaper(Ubuntu/Debian)或 sudo dnf install wondershaper(Fedora/RHEL 8+)。
查出更新流量走的网卡名:ip -br a | grep -E 'UP|DOWN',常见为eth0、ens33、wlan0,【记准这个接口名,后面所有命令都依赖它】。
限制该网卡总出口带宽为2Mbps(留足1Mbps给SSH和浏览器):sudo wondershaper ens33 0 2048。
清除限制只需运行:sudo wondershaper clear ens33。
用tc精准分流:只限更新,放行其他
如果你的系统同时跑着Web服务、数据库或远程桌面,不能一刀切限整个网卡,得把更新流量单独揪出来限速。
第一步:用iptables给apt/dnf/yum的出站包打标记
Ubuntu/Debian上执行:
sudo iptables -t mangle -A OUTPUT -p tcp --dport 80 -m string --string "debian.org" --algo bm -j MARK --set-mark 1
sudo iptables -t mangle -A OUTPUT -p tcp --dport 443 -m string --string "archive.ubuntu.com" --algo bm -j MARK --set-mark 1
CentOS/RHEL上执行:
sudo iptables -t mangle -A OUTPUT -p tcp --dport 443 -m string --string "mirror.centos.org" --algo bm -j MARK --set-mark 1
sudo iptables -t mangle -A OUTPUT -p tcp --dport 443 -m string --string "dnf.baseurl.org" --algo bm -j MARK --set-mark 1
第二步:清空网卡原有队列规则
sudo tc qdisc del dev ens33 root 2>/dev/null
第三步:挂HTB根队列并创建限速子类
sudo tc qdisc add dev ens33 root handle 1: htb default 30
sudo tc class add dev ens33 parent 1: classid 1:1 htb rate 512kbit ceil 512kbit
第四步:将标记为1的流量导向限速类
sudo tc filter add dev ens33 protocol ip parent 1:0 prio 1 handle 1 fw flowid 1:1
【注意:iptables字符串匹配对大小写敏感,必须与实际域名完全一致,否则标记失败,限速无效】
用systemd临时抑制更新进程带宽
方法一:用cpulimit软性压制(适合已启动的apt-get或dnf进程)
先找到正在下载的PID:pgrep -f "apt-get|dnf|yum" | head -n1
然后限其CPU使用率到15%(降低调度权重,间接减少网络吞吐):cpulimit -p 12345 -l 15 -b
方法二:启动时直接限流(适用于手动触发更新)
Ubuntu/Debian:
systemd-run --scope -p IOWeight=10 -p CPUQuota=10% apt-get update && apt-get upgrade -y
RHEL/CentOS:
systemd-run --scope -p IOWeight=10 -p CPUQuota=10% dnf --refresh upgrade -y
IOWeight=10表示磁盘I/O优先级压到最低档(默认是100),CPUQuota=10%让内核强制分配不超过10%的CPU时间——这两项叠加,能显著拖慢下载解压节奏,但不中断连接。

















