假如你經常在 linux 桌面上運作多個網絡應用,或在家中讓多台電腦共享帶寬;那麼你可能想更好地控制帶寬的使用。否則,當你使用下載下傳器下載下傳一個大檔案時,互動式 ssh 會話可能會變得緩慢以至不可用;或者當你通過 dropbox 來同步一個大檔案夾時,你的室友可能會抱怨在她的電腦上,視訊流變得斷斷續續。
在本教程中,我将為你描述兩種在 linux 中限制網絡流量速率的不同方法。

<a target="_blank"></a>
在 ubuntu,debian 及其衍生發行版中安裝 trickle :
<code>$ sudo apt-get install trickle</code>
<code>$ sudo yum install trickle</code>
trickle 的基本使用方法如下。僅需簡單地把 trickle 指令(及速率參數)放在你想運作的指令之前。
<code>$ trickle -d <download-rate> -u <upload-rate> <command></code>
這就可以将 <code><command></code> 的下載下傳和上傳速率限定為特定值(機關 kbytes/s)。
例如,将你的 scp 會話的最大上傳帶寬設定為 100 kb/s:
<code>$ trickle -u 100 scp backup.tgz alice@remote_host.com:</code>
<code>trickle -d 300 firefox %u</code>
最後, trickle 也可以以守護程序模式運作,在該模式下,它将會限制所有通過 trickle 啟動且正在運作的程式的總帶寬之和。 啟動 trickle 使其作為一個守護程序(例如, trickled):
<code>$ sudo trickled -d 1000</code>
一旦 trickled 守護程序在背景運作,你便可以通過 trickle 指令來啟動其他程式。假如你通過 trickle 啟動一個程式,那麼這個程式的最大下載下傳速率将是 1000 kb/s, 假如你再通過 trickle 啟動了另一個程式,則每個程式的(下載下傳)速率極限将會被限制為 500 kb/s,等等。
事實上, wondershaper 的既定目标不僅僅是對一個接口增加其帶寬上限;當批量下載下傳或上傳正在進行時,wondershaper 還試圖去保持互動性會話如 ssh 的低延遲。同樣的,它還會控制批量上傳(例如, dropbox 的同步)不會使得下載下傳“窒息”,反之亦然。
在 ubuntu debian 及其衍生發行版中安裝 wondershaper:
<code>$ sudo apt-get install wondershaper</code>
<code>$ sudo yum install wondershaper</code>
wondershaper 的基本使用如下:
<code>$ sudo wondershaper <interface> <download-rate> <upload-rate></code>
舉個例子, 将 <code>eth0</code> 的最大下載下傳/上傳帶寬分别設定為 1000kbit/s 和 500kbit/s:
<code>$ sudo wondershaper eth0 1000 500</code>
你也可以通過運作下面的指令将速率限制進行消除:
<code>$ sudo wondershaper clear eth0</code>
假如你對 wondershaper 的運作原理感興趣,你可以閱讀其 shell 腳本源檔案(/sbin/wondershaper)。
原文釋出時間:2015-03-27
本文來自雲栖合作夥伴“linux中國”