linux 网卡限速

2025-11-19 09:26:28

在 Linux 系统中,对网卡进行限速(如设置带宽限制)可以通过多种方式实现,常见的方法包括使用 tc(Traffic Control)、iptablesqdisc 等工具。以下是几种常用的方法:

linux 网卡限速

✅ 方法一:使用 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 Mbps
  • ceil 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,但需要 iptableslimit 模块支持。

✅ 方法三:使用 qdisc + netem(推荐)

netemtc 的一个子模块,用于网络延迟、丢包、限速等。

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 是一个用于管理网络带宽的工具,支持限速。

linux 网卡限速

sudo apt install bandwidthctl
sudo bandwidthctl set eth0 100mbit

✅ 总结

方法 适用场景 优点 缺点
tc 精细控制 高效、灵活 需要命令行操作
iptables 旧方式 简单 不推荐(不安全)
netem tc 配合 简单 需要 tc 支持
ifcfg 系统级配置 简单 需要手动配置
bandwidthctl 某些发行版 简单 依赖发行版支持

✅ 问题补充

如果你是想限制 上传/下载 速度,可以使用 tcclass 模块,或者使用 iperf 工具进行测试。

如需进一步帮助,欢迎继续提问!

相关推荐

Linux设备驱动开发详解
开发教程

linux安装jdk6

在 Linux 系统中,安装 JDK 6(Java Development Kit 6)并不是推荐的做法,因为 JDK 6 已经在 2011 年停止支持,且在大多数现代 Linux 发行版中已经不再提供。此外,JDK 6 与现代的 Java

2025-12-11
Linux设备驱动开发详解
开发教程

vmware 嵌入式linux

VMware 嵌入式 Linux 是一种在 VMware 虚拟化环境中运行的 Linux 系统,通常用于嵌入式开发、测试或演示。它允许用户在虚拟机中运行一个轻量级的 Linux 系统,从而在不占用大量物理资源的情况下进行开发和调试。VMwa

2025-12-11
Linux设备驱动开发详解
开发教程

linux安装mysql5.6.20

在 Linux 系统上安装 MySQL 5.6.20,通常需要以下几个步骤:1. 确认系统环境确保你使用的是一个支持 MySQL 的 Linux 发行版(如 Ubuntu、CentOS、Debian 等)。2. 下载 MySQL 5.6.2

2025-12-11
Linux设备驱动开发详解
开发教程

linux 查找进程号

在 Linux 系统中,查找进程号(PID)有多种方法,以下是常用的几种方式:ps 命令可以显示当前运行的进程信息,可以通过 --pid 参数来查看某个进程的 PID。ps -p <PID>示例:ps -p 1234说明:<PID> 是你要

2025-12-11
Linux设备驱动开发详解
开发教程

linux 有名信号量

在 Linux 中,有名信号量(Named Semaphore) 是一种用于进程间通信(IPC)的机制,它允许进程在不同的进程中共享一个唯一的信号量。有名信号量通常用于进程间同步和协调,特别是在多线程或跨进程的环境中。1. 创建有名信号量使

2025-12-11
Linux设备驱动开发详解
开发教程

linux无法卸载u盘

在 Linux 系统中,如果遇到“无法卸载 U 盘”(umount 失败)的问题,通常是因为 U 盘还在使用中,或者文件系统未正确卸载。以下是常见的解决方法:ls /dev/sdX* # 查看 U 盘的设备文件(如 /dev/sdb1)l

2025-12-11
Linux设备驱动开发详解
开发教程

Linux ssh什么意思

在 Linux 系统中,SSH 是 Secure Shell(安全壳)的缩写,是一种用于网络远程登录的加密协议。它主要用于在不安全的网络环境中(如公共网络)安全地登录到远程主机,进行文件传输、命令执行等操作。加密通信:所有传输的数据都经过加

2025-12-11
Linux设备驱动开发详解
开发教程

linux修改文件属主

在 Linux 系统中,修改文件或目录的属主(即文件所有者)可以通过多种命令实现。以下是几种常用的方法:chown 是修改文件或目录所有者、组的常用命令。语法:chown [选项] 用户:组 文件或目录示例:修改文件属主为 user1:ch

2025-12-11