天天看點

怎樣在 Linux 中限制網絡帶寬使用怎樣在 Linux 中限制網絡帶寬使用

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

在本教程中,我将為你描述兩種在 linux 中限制網絡流量速率的不同方法。

怎樣在 Linux 中限制網絡帶寬使用怎樣在 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 &lt;download-rate&gt; -u &lt;upload-rate&gt; &lt;command&gt;</code>

這就可以将 <code>&lt;command&gt;</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 &lt;interface&gt; &lt;download-rate&gt; &lt;upload-rate&gt;</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中國”

繼續閱讀