使用tc命令结合htb可限制Linux网卡出站带宽,如将eth0上传限速至1Mbps;通过ifb设备间接限制入站流量,实现下载限速;也可用wondershaper简化操作。

在Linux系统中限制网卡的速率和带宽,通常使用
tc
(Traffic Control)命令结合
htb
(Hierarchical Token Bucket)队列规则来实现。这种方法可以精细控制网络接口的上传和下载速度,适用于测试环境、带宽管理或防止某个服务占用过多网络资源。
使用tc命令限制网卡出站带宽(上传)
限制从本机发出的数据速率(即上传速度),可以通过在指定网卡上设置
htb
规则来完成。
例如:将
eth0
网卡的出站带宽限制为1Mbps。
tc qdisc add dev eth0 root handle 1: htb default 10tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
说明:
qdisc add
添加一个队列规则,
root
表示作用于网卡根队列。
handle 1:
是该队列的标识符。
htb
是常用的可控制带宽的队列类型。
classid 1:1
定义一个类,限制速率为1mbit(即1Mbps)。
如果规则已存在,需要先清除:
tc qdisc del dev eth0 root

限制入站带宽(下载)的技巧
tc
不能直接限制入站流量(inbound),因为数据在进入网卡后才被系统控制。但可以通过
ifb
(Intermediate Functional Block)设备来间接实现。
步骤如下:
加载
ifb
模块并创建虚拟设备:
modprobe ifbip link add name ifb0 type ifbip link set ifb0 up
将入口流量重定向到
ifb0
:
tc qdisc add dev eth0 ingresstc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
在
ifb0
上设置限速规则(如限制为512kbps):
tc qdisc add dev ifb0 root handle 1: htbtc class add dev ifb0 parent 1: classid 1:1 htb rate 512kbit

查看和删除限速规则
查看当前网卡的队列规则:
tc qdisc show dev eth0tc class show dev eth0
删除所有规则(恢复原始状态):
tc qdisc del dev eth0 roottc qdisc del dev eth0 ingresstc qdisc del dev ifb0 rootip link del ifb0

使用工具简化操作(可选)
也可以使用更简单的工具如
wondershaper
,适合快速上手。
安装(以Ubuntu为例):
sudo apt install wondershaper
限制
eth0
上传1000kbps,下载500kbps:
wondershaper eth0 1000 500
清除限制:
wondershaper clear eth0
基本上就这些。使用
tc
能更灵活地控制网络流量,而
wondershaper
适合快速部署简单限速策略。
以上就是Linux如何限制网卡的速率和带宽的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/198296.html
微信扫一扫
支付宝扫一扫