Linux如何限制网卡的速率和带宽

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

linux如何限制网卡的速率和带宽

在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

Linux如何限制网卡的速率和带宽

限制入站带宽(下载)的技巧

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

Linux如何限制网卡的速率和带宽

查看和删除限速规则

查看当前网卡的队列规则:

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

Linux如何限制网卡的速率和带宽

使用工具简化操作(可选)

也可以使用更简单的工具如

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月1日 19:38:46
下一篇 2025年11月1日 19:44:22

相关推荐

发表回复

登录后才能评论
关注微信