欢迎访问生活随笔!

生活随笔

您现在的位置是:首页 > 形式科学 > 操作系统 > Linux

Linux

如何在Linux中用Wondershaper限制网络带宽?译文

发布时间:2022-06-09Linux 系统管理员
本教程将帮助你在类似Unix的操作系统中轻松限制网络带宽,并限制网络流量。通过限制网络带宽的使用,你可以节省应用程序不必要的带宽消耗,比如软件包管理器(pacman、yum和apt)、Web浏览器、torrent客户软件和下载管理器等,防止网络中的一个或多个用户滥用带宽。

【51CTO.com快译】本教程将帮助你在类似Unix的操作系统中轻松限制网络带宽,并限制网络流量。通过限制网络带宽的使用,你可以节省应用程序不必要的带宽消耗,比如软件包管理器(pacman、yum和apt)、Web浏览器、torrent客户软件和下载管理器等,防止网络中的一个或多个用户滥用带宽。

我们在本文中将使用名为Wondershaper的命令行实用程序。相信我,它不像你想的那么难用。它是我用过的在你自己的Linux系统中限制互联网或本地网络带宽使用的最简单、最快捷的工具之一。

请注意,上述实用程序只能限制进出本地网络接口的流量,而不能限制进出路由器或调制解调器的接口的流量。换句话说,Wondershaper只限制本地系统本身中的网络带宽,而不限制网络中的其他任何系统。这类实用程序主要用于限制本地系统中一个或多个网络适配器的带宽。

不妨看看如何使用Wondershaper来限制网络流量。

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

Wondershaper是用于限制系统网络适配器带宽的简单脚本。它限制了带宽IP路由(iproute)的tc命令,但大大简化了它的操作。

安装Wondershaper

想装***版本,输入命令git clone wondershaoer repository: 

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

进入到wondershaper目录,按如下所示安装。 

  1. $ cd wondershaper  
  2. $ sudo make install 

接着运行以下命令,以便在每次重启时自动启动wondershaper服务。 

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

如果你不介意***版本,还可以使用所用发行版的软件包管理器(官方或非官方)进行安装。

Wondershaper可在AUR中找到,因此你可以使用AUR帮助程序(比如Yay)将其安装在基于Arch的系统中。 

  1. $ yay -S wondershaper-git 

在Debian、Ubuntu或Linux Mint上,输入: 

  1. $ sudo apt-get install wondershaper 

在Fedora上,输入: 

  1. $ sudo dnf install wondershaper 

在RHEL或CentOS上,启用EPEL存储库并安装wondershaper,如下所示。 

  1. $ sudo yum install epel-release  
  2. $ sudo yum install wondershaper 

***,每次重启时自动启动wondershaper服务。 

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

用法

首先,找到网络接口的名称。以下是查找网卡详细信息的几个常用方法。 

  1. $ ip addr  
  2. $ route  
  3. $ ifconfig 

一旦你找到了网卡名称,就可以限制带宽速率了,如下所示。 

  1. $ sudo wondershaper -a <adapter> -d <rate> -u <rate> 

比如说,如果你的网卡名是enp0s8,你希望将下载和上传的带宽限制分别限制于1024 Kbps和512 kbps,命令应该是: 

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

其中,

-a:网卡名

-d:下载速率

-u:上传速度

想取消网络适配器的速度限制,只要运行: 

  1. $ sudo wondershaper -c -a enp0s8 

或者 

  1. $ sudo wondershaper -c enp0s8 

如果你的系统中有多个网卡,需要为每个网卡手动设置下载/上传速率,如上所述。

如果你通过克隆GitHub存储库安装了Wondershaper,/etc/conf.d/下有一个名为wondershaper.conf的配置文件。通过修改该文件中的相应值(网卡名和下载/上传速率),就可以确保已设置了下载或上载速率。 

  1. $ sudo nano /etc/conf.d/wondershaper.conf  
  2. [wondershaper]  
  3. # Adapter  
  4. #  
  5. IFACE="eth0"  
  6. # Download rate in Kbps  
  7. #  
  8. DSPEED="2048"  
  9. # Upload rate in Kbps  
  10. #  
  11. USPEED="512" 

这是启用Wondershaper前的示例: 

图1:启用Wondershaper前

启用Wondershaper后: 

图2:启用Wondershaper后

如你所见,在我的Ubuntu 18.o4 LTS服务器中使用WOndershaper限制带宽后,下载速率已大大降低。

想了解更多详细信息,请运行以下命令,查看帮助部分: 

  1. $ wondershaper -h 

或者查阅参考手册页。 

  1. $ man wondershaper 

据测试,Wondershaper用起来就跟上面描述的一样好。试一下,交流使用实用程序的感受。但愿本文对各位有所帮助。

原文标题:How To Limit Network Bandwidth In Linux Using Wondershaper 

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】