在 Linux 上,您可能需要限製網絡帶寬。了解如何使用兩個簡單的程序在 Linux 上限制全局和特定於應用程序的網絡帶寬:Wonder Shaper 和 Trickle。
內容
為什麼要限製網絡帶寬?
您需要在 Linux 上限製網絡帶寬有幾個原因。
我們的一位訂閱者說 互聯網數據價格 他住在高處,希望限製網絡帶寬以減少互聯網支出。作為前 Windows 用戶,他為此運行 Netlimiter。他目前正在尋找 Linux 上 Netlimiter 的替代方案。
流量限制在以下情況下也很有用: 減緩..應用程序競爭流量。為特定應用程序設置流量限制有助於您優先考慮如何使用流量。
在另一種情況下,服務器管理員應將出站流量限制為: 服務器不會宕機 因為高峰時段的活動是活躍的。
在本文中,您將學習如何做到這一點 限製網絡帶寬 對於 Linux 全世界 什麼時候 特定應用 那裡有兩個 光 什麼時候 方便使用的 應用..
使用 Wondershaper 限制每個網絡接口的帶寬
奇蹟製造者 一個簡單的命令行實用程序,用於限制 Linux 上的網絡帶寬。 您可以對其進行配置以限制 Linux 機器上每個網絡接口的下載和上傳速度。讓我們來看看。
安裝 Wondershaper
安裝 Wondershaper Linux 包管理器..這是一個開源應用程序,應該適用於所有 Linux 發行版。這是我推薦的安裝。 在 Ubuntu 和其他基於 Debian 的發行版上,您可以運行以下命令:
sudo apt install wondershaper
如果你想 最新版本 您可以從 Wondershaper 下載它。 GitHub:
git clone https://github.com/magnific0/wondershaper.git
cd wondershaper
sudo make install
希望這個安裝不會工作。 安裝 Wondershaper 不如使用發行版提供的版本可靠。我已經在 Ubuntu 20.04.3 上測試了這個安裝,它工作正常。但是,如果您對 Github 版本有疑問, 除了它 從 wondershaper
git克隆目錄:
sudo make uninstall
如果您決定保留 Wondershaper 的 GitHub 版本,與發行版中包含的版本不同, 不要更新自己 當新版本發佈時。您需要手動更新它。你可以輸入 wondershaper
文件夾, 從 GitHub 拉取更新並重新安裝:
cd wondershaper
git pull
sudo make install
如果您是 Linux 的完全初學者,我們建議您學習 Linux命令行基礎..
學習 Wondershaper 的語法
取決於版本 wondershaper
, 配置語法可能不同。你可以使用它 man
命令:
man wondershaper
您將獲得類似於以下內容的輸出:
就我而言,這是一系列界面、下載和上傳速度限制。
wondershaper [ interface ] [ downlink ] [ uplink ]
在較新的版本中,您需要指定選項名稱。
wondershaper -a [interface] -d [downlink] -u [uplink]
檢查網絡接口名稱
現在您知道 Wonder Shaper 的語法,您可以通過簡單地查找網絡接口名稱來限制語法。在大多數現代 Linux 系統上,您可以使用以下命令列出可用的網絡接口。
ip addr show
但是,一些較舊的系統可能需要運行 ifconfig
從 net-tools
:
sudo apt install net-tools
ifconfig
我的系統只有一個以太網接口 enp0s3
:
您還可以列出 Wi-Fi 接口,如下所示: wlan0
或類似的。
測試奇蹟塑造者
一旦您知道網絡接口名稱,您就可以測試您的 Wonder shaper。例如,讓我們將帶寬限制設置為 6MB/秒下載, 什麼時候 1MB/秒上傳 在以太網接口上 enp0s3
:
sudo wondershaper enp0s3 6144 1024
現在您可以測試您的網速以查看是否應用了這些設置 極速網絡..以下是您通過這些設置獲得的結果:
如果您清除所有限制:
sudo wondershaper clear enp0s3
如果您再次測試您的互聯網速度,您將獲得以下值:
如果您同時擁有 Wi-Fi 連接和以太網連接,請務必設置限制並測試相同的接口。
繼續運行Wondershaper
上面測試的設置僅在您重新啟動 Linux 系統之前有效。要永久應用限制,您需要創建 系統 Wondershaper 配置和服務文件。
打開 配置、設置 文檔:
sudo nano /etc/systemd/wondershaper.conf
將以下內容粘貼到界面和限制設置中。
[wondershaper]
# Adapter
IFACE="enp0s3"
# Download rate in Kbps
DSPEED="6144"
# Upload rate in Kbps
USPEED="1024"
然後創建 服務 文檔:
sudo nano /etc/systemd/system/wondershaper.service
內容如下所述。
[Unit]
Description=Bandwidth shaper/Network rate limiter
After=network-online.target
Wants=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/systemd/wondershaper.conf
ExecStart=/usr/sbin/wondershaper $IFACE $DSPEED $USPEED
ExecStop=/usr/sbin/wondershaper clear $IFACE
[Install]
WantedBy=multi-user.target
請注意,如果 Wondershaper 使用選項名稱,您將需要對其進行編輯。 ExecStart
什麼時候 ExecStop
線:
ExecStart=/usr/sbin/wondershaper -a $IFACE -d $DSPEED -u $USPEED
ExecStop=/usr/sbin/wondershaper -c -a $IFACE
供參考,如果你不熟悉 nano
在編輯器中,按 Ctrl + O 保存更改,按 Ctrl + X 退出。
然後激活 Wondershaper 並連續運行它。
sudo systemctl enable --now wondershaper.service
Wondershaper 現在即使在重新啟動系統後也會限制 Linux 網絡帶寬。
如果你想 禁用 Wondershaper 的連續執行。 嵌入:
sudo systemctl disable --now wondershaper.service
使用涓流限制每個應用程序的帶寬
涓涓細流 是一種輕量級帶寬整形器,可用於設置每個應用程序的數據限制。 使用 Unix 加載程序預加載通過套接字向應用程序添加新版本的數據傳輸功能,並通過延遲通過套接字發送和接收數據來抑制流量。與 Wonder Shaper 不同,Trickle 無需root權限無需使用 sudo
當你這樣做的時候。
安裝涓流
Trickle 在大多數 Linux 發行版上都可用。 在 Ubuntu 上,您可以使用以下命令安裝它:
sudo apt install trickle
如何使用涓涓細流
獲取有關所有可用選項以及如何使用它們的幫助。
trickle -h
大多數情況下,您只需要設置下載/上傳限制和應用名稱即可。
trickle -d [ download speed ] -u [ upload speed ] [ application/command ]
這是一個例子 下載限制為 6MB/秒, 什麼時候 1MB/秒上傳 存在 火狐:
trickle -d 6144 -u 1024 firefox
如果您只想限制其中之一,您可以分別設置下載速率和上傳速率。
trickle -d 6144 firefox
您還可以限制 Linux 命令的網絡帶寬。例如,您可能希望限制 wget
下載速度:
trickle -d 512 wget https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
你也可以開始 bash
具有所有命令帶寬限制的 Shell:
trickle -d 6144 -u 1024 bash
要重置帶寬限制,請按如下方式關閉此 bash: exit
命令或 Ctrl + Q。
您還可以向涓流命令添加一些高級設置。 您可以使用 man 命令閱讀每個選項的詳細說明。
man trickle
例如,在這裡您可以看到平滑時間選項的功能。
平滑時間決定了 Trickle 嘗試允許應用程序發送和接收數據的時間間隔。減小該值會使會話更加連續(平滑),而增大該值會導致發送和接收數據的突發。較小的值(0.1 – 1 s)非常適合交互式應用,而稍大的值(1 – 10 s)則適合需要批量傳輸的應用。
使用 rsync 涓涓細流
使用帶有 rsync 的涓流通過 ssh 複製文件有一個小區別。如果你只是把涓涓細流放在 rsync 前面,它是行不通的,因為 rsync 分叉了 ssh 進程。因此,ssh 運行沒有涓流限制。要使用涓流限制調用 rsync,請執行以下操作:
rsync --rsh="trickle -d 6144 -u 1024 ssh" SORCE DESTINATION
測試涓涓細流
您可以像測試 Wondershaper 一樣測試涓涓細流 極速網絡.. 設置 Firefox 下載限制並添加一個小的平滑值,因為它是一個交互式應用程序。
trickle -d 6144 -u 1024 -t 0.1 firefox
通過這些設置,獲得了以下網絡速度:
您還可以測試涓涓細流 wget
:
trickle -d 512 wget https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
可以看到速度限制在 547KB/秒。
永久應用特定於應用程序的限制
涓流也可以配置為具有持久的網絡帶寬限制。它可以是全局的,包括所有應用程序和特定於應用程序的。這是通過涓流守護進程完成的。
檢查該選項 -h
還 man
:
您可以為使用涓流啟動的所有應用程序設置默認帶寬限制。
trickled -d 6144 -u 1024 -s
您現在開始使用的所有應用程序 trickle application
有了這些限制,您無需指定最大上傳和下載速率。使用此命令可在重新啟動後保持這些選項持續存在 ~/.bashrc
還 /etc/profile
如果要為所有用戶啟用這些設置。
要設置每個應用程序如何共享這些限制,您需要將它們添加到 trickled.conf
文檔。打開配置文件。
sudo nano /etc/trickled.conf
按以下格式添加每個應用程序:
[service]
Priority = <value>
Time-Smoothing = <value>
Length-Smoothing = <value>
我們看到了 時間平滑 以上參數。目標 平滑長度 相同,但唯一的區別是它是在 KB 中定義的。這是平滑時間選項的後備。
這個 優先 這些參數定義瞭如何跨應用程序對流量進行優先級排序。較小的值賦予較高的優先級,因此值較低的應用程序比值較高的應用程序獲得更多的帶寬。
這是一個真實的例子 trickled.conf
該文件如下所示:
[www]
Priority = 1
Time-Smoothing = 1
[ssh]
Priority = 2
Time-Smoothing = 0.1
Length-Smoothing = 2
[ftp]
Priority = 8
Time-Smoothing = 5
Length-Smoothing = 10
為圖形應用程序創建涓流啟動器
跑 trickle application
可能不是終端中最有用的圖形應用程序。幸運的是,您還可以選擇添加 trickle
對於圖形啟動器。
打開啟動器配置文件。
sudo nano /usr/share/applications/application.desktop
例如,要編輯 Firefox 啟動器,請製作備份副本並打開並編輯原始文件。
sudo cp /usr/share/applications/firefox.desktop /usr/share/applications/firefox.desktop.backup
sudo nano /usr/share/applications/firefox.desktop
找到以開頭的行 Exec=
添加和編輯 trickle
對於每個命令。有這樣的三行 firefox.desktop
:
Exec=trickle -d 6144 -u 1024 firefox %u
...
Exec=trickle -d 6144 -u 1024 firefox -new-window
...
Exec=trickle -d 6144 -u 1024 firefox -private-window
現在,每次單擊菜單中的啟動器時,Firefox 都會使用修改後的命令和有限的網絡帶寬啟動。
如果要刪除這些限制,請還原備份副本。
sudo cp /usr/share/applications/firefox.desktop.backup /usr/share/applications/firefox.desktop
某些應用程序可能不會 application.desktop
文件 /usr/share/applications/
..這適用於 AppImages、snap 和 flatpak 應用程序。 您可以按照有關如何在 Linux 上創建自定義啟動器的教程輕鬆創建這些自定義啟動器。
禁用自動更新
我想與您分享一些關於如何在 Linux 上限制 Internet 流量的技巧。我們建議禁用自動系統更新,以降低更新頻率並讓您訪問更快、更便宜的互聯網連接。
在 Ubuntu 上,您可以通過啟用“即用即付”來做到這一點。
[設定]->[ネットワーク]->[有線/Wi-Fi接続設定]->[詳細]->[従量制接続を有効にする]
如果您需要更新系統,可以從更新管理器或命令行手動進行。
結論是
我會盡力提供 簡單明了的說明 如何在沒有任何技術細節的情況下使用 Wondershaper 和 Trickle 來限制 Linux 網絡帶寬。我們希望這些步驟將幫助您配置 Linux 帶寬。 它為您節省了一些後腿..
如果您想了解更多 技術資料 閱讀涓流 涓流技術論文有關 .Wondershaper 的更多信息,請訪問: Wondershaper GitHub 頁面..
我有另一種選擇 tc
用命令 iptables
流量整形配置是本網站未涵蓋的高級主題之一。但你可以學習如何 tc
從設置 Arch Linux 維基..
如果 你知道更多用戶友好的工具 這有助於限制 Linux 網絡帶寬。請在下面的評論中分享。