在 Linux 系统中,对网卡进行限速(如设置带宽限制)可以通过多种方式实现,常见的方法包括使用 tc(Traffic Control)、iptables 或 qdisc 等工具。以下是几种常用的方法:
✅ 方法一:使用 tc(Traffic Control)设置限速
tc 是 Linux 中用于管理网络流量整形的工具,可以设置带宽限制。
1. 安装(如果未安装):
sudo apt update && sudo apt install -y tc
2. 设置限速(例如 100 Mbps):
sudo tc qdisc add dev eth0 root handle 1: htb 2 parent 1:1
sudo tc class add dev eth0 classid 1:1 htb rate 100mbit ceil 100mbit
eth0: 网卡名称100mbit: 限速为 100 Mbpsceil 100mbit: 最大带宽为 100 Mbps
3. 验证:
sudo tc qdisc show dev eth0
✅ 方法二:使用 iptables(较旧方式,不推荐)
sudo iptables -A OUTPUT -m limit --limit 100k/s -j ACCEPT
sudo iptables -A OUTPUT -m limit --limit 100k/s -j DROP
此方法限制输出流量不超过 100 KB/s,但需要 iptables 和 limit 模块支持。
✅ 方法三:使用 qdisc + netem(推荐)
netem 是 tc 的一个子模块,用于网络延迟、丢包、限速等。
sudo tc qdisc add dev eth0 root netem rate 100kbit
100kbit: 限速 100 KB/s
✅ 方法四:使用 ifcfg 配置文件(适用于系统级别配置)
在 /etc/network/interfaces 或 /etc/network/interfaces.d/ 下配置限速:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
# 设置限速
up iptables -A OUTPUT -m limit --limit 100k/s -j ACCEPT
up iptables -A OUTPUT -m limit --limit 100k/s -j DROP
✅ 方法五:使用 bandwidthctl(适用于某些 Linux 发行版)
bandwidthctl 是一个用于管理网络带宽的工具,支持限速。
sudo apt install bandwidthctl
sudo bandwidthctl set eth0 100mbit
✅ 总结
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
tc |
精细控制 | 高效、灵活 | 需要命令行操作 |
iptables |
旧方式 | 简单 | 不推荐(不安全) |
netem |
与 tc 配合 |
简单 | 需要 tc 支持 |
ifcfg |
系统级配置 | 简单 | 需要手动配置 |
bandwidthctl |
某些发行版 | 简单 | 依赖发行版支持 |
✅ 问题补充
如果你是想限制 上传/下载 速度,可以使用 tc 的 class 模块,或者使用 iperf 工具进行测试。
如需进一步帮助,欢迎继续提问!

