在 Linux 中使用 Wondershaper 限制网络带宽
创始人
2024-03-02 00:27:59
0

以下内容将向你介绍如何轻松对网络带宽做出限制,并在类 Unix 操作系统中对网络流量进行优化。通过限制网络带宽,可以节省应用程序不必要的带宽消耗,包括软件包管理器(pacman、yum、apt)、web 浏览器、torrent 客户端、下载管理器等,并防止单个或多个用户滥用网络带宽。在本文当中,将会介绍 Wondershaper 这一个实用的命令行程序,这是我认为限制 Linux 系统 Internet 或本地网络带宽的最简单、最快捷的方式之一。

请注意,Wondershaper 只能限制本地网络接口的传入和传出流量,而不能限制路由器或调制解调器的接口。换句话说,Wondershaper 只会限制本地系统本身的网络带宽,而不会限制网络中的其它系统。因此 Wondershaper 主要用于限制本地系统中一个或多个网卡的带宽。

下面来看一下 Wondershaper 是如何优化网络流量的。

在 Linux 中使用 Wondershaper 限制网络带宽

wondershaper 是用于显示系统网卡网络带宽的简单脚本。它使用了 iproute 的 tc 命令,但大大简化了操作过程。

安装 Wondershaper

使用 git clone 克隆 Wondershaper 的版本库就可以安装最新版本:

$ git clone https://github.com/magnific0/wondershaper.git

按照以下命令进入 wondershaper 目录并安装:

$ cd wondershaper
$ sudo make install

然后执行以下命令,可以让 wondershaper 在每次系统启动时都自动开始服务:

$ sudo systemctl enable wondershaper.service
$ sudo systemctl start wondershaper.service

如果你不强求安装最新版本,也可以使用软件包管理器(官方和非官方均可)来进行安装。

wondershaperArch 用户软件仓库(Arch User Repository,AUR)中可用,所以可以使用类似 yay 这些 AUR 辅助软件在基于 Arch 的系统中安装 wondershaper

$ yay -S wondershaper-git

对于 Debian、Ubuntu 和 Linux Mint 可以使用以下命令安装:

$ sudo apt-get install wondershaper

对于 Fedora 可以使用以下命令安装:

$ sudo dnf install wondershaper

对于 RHEL、CentOS,只需要启用 EPEL 仓库,就可以使用以下命令安装:

$ sudo yum install epel-release
$ sudo yum install wondershaper

在每次系统启动时都自动启动 wondershaper 服务。

$ sudo systemctl enable wondershaper.service
$ sudo systemctl start wondershaper.service

用法

首先需要找到网络接口的名称,通过以下几个命令都可以查询到网卡的详细信息:

$ ip addr
$ route
$ ifconfig

在确定网卡名称以后,就可以按照以下的命令限制网络带宽:

$ sudo wondershaper -a  -d  -u 

例如,如果网卡名称是 enp0s8,并且需要把上行、下行速率分别限制为 1024 Kbps 和 512 Kbps,就可以执行以下命令:

$ sudo wondershaper -a enp0s8 -d 1024 -u 512

其中参数的含义是:

  • -a:网卡名称
  • -d:下行带宽
  • -u:上行带宽

如果要对网卡解除网络带宽的限制,只需要执行:

$ sudo wondershaper -c -a enp0s8

或者:

$ sudo wondershaper -c enp0s8

如果系统中有多个网卡,为确保稳妥,需要按照上面的方法手动设置每个网卡的上行、下行速率。

如果你是通过 git clone 克隆 GitHub 版本库的方式安装 Wondershaper,那么在 /etc/conf.d/ 目录中会存在一个名为 wondershaper.conf 的配置文件,修改这个配置文件中的相应值(包括网卡名称、上行速率、下行速率),也可以设置上行或下行速率。

$ sudo nano /etc/conf.d/wondershaper.conf

[wondershaper]
# Adapter
#
IFACE="eth0"

# Download rate in Kbps
#
DSPEED="2048"

# Upload rate in Kbps
#
USPEED="512"

Wondershaper 使用前:

Wondershaper 使用后:

可以看到,使用 Wondershaper 限制网络带宽之后,下行速率与限制之前相比已经大幅下降。

执行以下命令可以查看更多相关信息。

$ wondershaper -h

也可以查看 Wondershaper 的用户手册:

$ man wondershaper

根据测试,Wondershaper 按照上面的方式可以有很好的效果。你可以试用一下,然后发表你的看法。


via: https://www.ostechnix.com/how-to-limit-network-bandwidth-in-linux-using-wondershaper/

作者:SK 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

CentOS网卡速度测试攻...
网络性能对服务器运行效率和用户体验具有直接影响。作为系统管理员或运...
2025-05-18 06:22:33
DeepSeek开源第二弹...
衡宇 发自 凹非寺 量子位 | 公众号 QbitAI 好消息如约而...
2025-02-25 17:20:59
刚刚,DeepSeek开源...
机器之心报道 机器之心编辑部 上周五,DeepSeek 发推说本周...
2025-02-25 12:50:48
DeepSeek开源首个代...
北京商报讯(记者 魏蔚)2月24日,DeepSeek宣布,开源代码...
2025-02-24 21:45:56
不同信道上的带宽比较
解决不同信道上的带宽比较的方法可以使用网络编程库,如Python中...
2025-01-09 22:02:14
不同的监测工具如何计算内存...
计算内存带宽的方法取决于所使用的监测工具。下面是使用Python编...
2025-01-08 15:31:18

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...