歡迎光臨
每天分享高質量文章

在 Linux 中使用 Wondershaper 限制網路頻寬 | Linux 中國

在本文當中,將會介紹 Wondershaper 這一個實用的命令列程式,這是我認為限制 Linux 系統 Internet 或本地網路頻寬的最簡單、最快捷的方式之一。
— Sk


致謝
編譯自 | 
https://www.ostechnix.com/how-to-limit-network-bandwidth-in-linux-using-wondershaper/
 
 作者 | Sk
 譯者 | Hank Chow (HankChow) ??共計翻譯:14.0 篇 貢獻時間:311 天

以下內容將向你介紹如何輕鬆對網路頻寬做出限制,併在類 Unix 作業系統中對網路流量進行最佳化。透過限制網路頻寬,可以節省應用程式不必要的頻寬消耗,包括軟體包管理器(pacman、yum、apt)、web 瀏覽器、torrent 客戶端、下載管理器等,並防止單個或多個使用者濫用網路頻寬。在本文當中,將會介紹 Wondershaper 這一個實用的命令列程式,這是我認為限制 Linux 系統 Internet 或本地網路頻寬的最簡單、最快捷的方式之一。

請註意,Wondershaper 只能限制本地網路介面的傳入和傳出流量,而不能限制路由器或數據機的介面。換句話說,Wondershaper 只會限制本地系統本身的網路頻寬,而不會限制網路中的其它系統。因此 Wondershaper 主要用於限制本地系統中一個或多個網絡卡的頻寬。

下麵來看一下 Wondershaper 是如何最佳化網路流量的。

在 Linux 中使用 Wondershaper 限制網路頻寬

wondershaper 是用於顯示系統網絡卡網路頻寬的簡單指令碼。它使用了 iproute 的 tc 命令,但大大簡化了操作過程。

安裝 Wondershaper

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

  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 在 Arch 使用者軟體倉庫[1](Arch User Repository,AUR)中可用,所以可以使用類似 yay[2] 這些 AUR 輔助軟體在基於 Arch 的系統中安裝 wondershaper 。

  1. $ yay -S wondershaper-git

對於 Debian、Ubuntu 和 Linux Mint 可以使用以下命令安裝:

  1. $ sudo apt-get install wondershaper

對於 Fedora 可以使用以下命令安裝:

  1. $ sudo dnf install wondershaper

對於 RHEL、CentOS,只需要啟用 EPEL 倉庫,就可以使用以下命令安裝:

  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

如果系統中有多個網絡卡,為確保穩妥,需要按照上面的方法手動設定每個網絡卡的上行、下行速率。

如果你是透過 git clone 克隆 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 使用前:

Wondershaper 使用後:

可以看到,使用 Wondershaper 限制網路頻寬之後,下行速率與限制之前相比已經大幅下降。

執行以下命令可以檢視更多相關資訊。

  1. $ wondershaper -h

也可以檢視 Wondershaper 的使用者手冊:

  1. $ man wondershaper

根據測試,Wondershaper 按照上面的方式可以有很好的效果。你可以試用一下,然後發表你的看法。


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

作者:SK[4] 選題:lujun9972 譯者:HankChow 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂

© 2024 知識星球   網站地圖