天天看點

Linux 下使用Trickle限制下載下傳/上傳帶寬

你有沒有遇到過一個程式占用了你所有的網絡帶寬的情況?如果你遇到過,那麼你就需要限制帶寬的應用。不管你是一個系統管理者還是一名普通linux使用者,您都應該學習如何控制應用的上傳和下載下傳速度來確定你的網絡帶寬不會被一個程式耗光。

Linux 下使用Trickle限制下載下傳/上傳帶寬

<a target="_blank"></a>

trickle是一款帶寬控制供給,用來限制如firefox, ftp , ssh以及其他使用網絡帶寬的程式的帶寬。你希望你的youtube音樂體驗影響到你的ftp下載下傳麼?如果不想,請繼續閱讀這篇文章,學習如何在你的機器上安裝和使用trickle。

trickle工具有一些依賴包,安裝和使用trickle之前必須安裝“libevent 庫”,不過這個庫在大多數現在的linux機器上已經預設安裝。

在debian/ubuntu/mint 機器上運作 apt-get install trickle進行安裝。請確定源清單已經更新,接着安裝你想要的應用。

首先你需要更新系統,然後使用下面的指令安裝trickle。

trickle通過控制socket資料讀寫量來控制和限制應用的上傳/下載下傳速度。它使用另一個版本的bsd套接字api,但是差別是trickle還管理socket調用。

要注意的是trickle使用動态連結和加載,是以它隻對于使用"glibc庫"的程式有用。由于trickle可以設定資料在socket上的傳輸延遲,是以它可以用來限制一個應用的網絡帶寬。

trickle不能用于限制使用udp協定的應用的帶寬,它隻可用于tcp連接配接,但是你要知道它也并不是對所有的tcp連接配接有效。如果你一直仔細地看這篇文章,你可以猜到原因是什麼。你還記得trickle隻對使用glibc庫應用有效吧?

還要說一下,trickle無法工作在使用靜态連結的可執行程式上。

既然trickle無法限制每個應用的上傳/下載下傳速度,就應該有個方法找出trickle可以工作的應用。

ldd工具可以幫我們找出某個特定的程式是否使用了libc.so庫。如果程式使用了這個庫,就可以使用trickle來限制它的網絡帶寬使用。

ldd指令用于列印每個程式需要的共享庫。如果你是一個好奇的linux geek,那麼你可以使用man指令來找出關于ldd工具的更多資訊。

filezilla是一款使用ftp協定傳輸檔案的程式,trickle可以用來限制它的下載下傳或者上傳速度麼?在你考慮的時候,我使用以下的指令來找出trickle是否可用于filezilla。

就我而言,它輸出了如下:

既然filezilla使用了“libc.so”庫,那麼trickle可以用來限制它的網絡帶寬。這個方法可以用在任何你感興趣的程式上。

使用下面的指令輸出trickle工具的版本。

從輸出可以看到,下載下傳速度大約是381 kb/s。我想限制下載下傳速度到13 k/s,這樣我就可以用我的帶寬做其他的事情了。下面的指令用來限制wget速度到13 k/s。

從輸出可以看到,下載下傳速度被限制到了13k/s。下載下傳将會持續21小時5分鐘。上面的“-d”選項表示下載下傳,還可以結合使用 “-d”選項和上傳選項(-u),如下例所示。

上面的指令限制ftp 用戶端的上傳速度為100k/s,下載下傳速度為50k/s。還可以使用下面的指令,限制在一個shell裡運作的所有指令的帶寬。

每個指令行工具都對使用者提供了幫助,使用"trickle -h"指令來找出更多trickle工具的用法。

本篇文章介紹如何在linux機器上安裝trickle工具,并用它如何做一些簡單的事情。無論你為大公司工作還是自己使用,trickle都是進階linux使用者的必備工具。

原文釋出時間為:2013-12-14

本文來自雲栖社群合作夥伴“linux中國”

繼續閱讀