0

0

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

P粉602998670

P粉602998670

发布时间:2025-09-19 13:02:02

|

324人浏览过

|

来源于php中文网

原创

使用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 10
tc 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)设备来间接实现。

步骤如下:

  1. 加载
    ifb
    模块并创建虚拟设备:
modprobe ifb
ip link add name ifb0 type ifb
ip link set ifb0 up
  1. 将入口流量重定向到
    ifb0
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
  1. ifb0
    上设置限速规则(如限制为512kbps):
tc qdisc add dev ifb0 root handle 1: htb
tc class add dev ifb0 parent 1: classid 1:1 htb rate 512kbit
Linux如何限制网卡的速率和带宽

查看和删除限速规则

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

造好物
造好物

一站式AI造物设计平台

下载
tc qdisc show dev eth0
tc class show dev eth0

删除所有规则(恢复原始状态):

tc qdisc del dev eth0 root
tc qdisc del dev eth0 ingress
tc qdisc del dev ifb0 root
ip link del ifb0
Linux如何限制网卡的速率和带宽

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

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

wondershaper
,适合快速上手。

安装(以Ubuntu为例):

sudo apt install wondershaper

限制

eth0
上传1000kbps,下载500kbps:

wondershaper eth0 1000 500

清除限制:

wondershaper clear eth0

基本上就这些。使用

tc
能更灵活地控制网络流量,而
wondershaper
适合快速部署简单限速策略。

相关专题

更多
登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6084

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

803

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1059

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1220

2024.03.01

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

180

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

277

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

252

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

121

2025.08.07

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

36

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

微信小程序开发之API篇
微信小程序开发之API篇

共15课时 | 1.2万人学习

Bootstrap4.x---十天精品课堂
Bootstrap4.x---十天精品课堂

共22课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号