你有沒有遇到過一個程式佔用了你所有的網路頻寬的情況?如果你遇到過,那麼你就需要限制頻寬的應用。不管你是一個系統管理員還是一名普通Linux使用者,您都應該學習如何控制應用的上傳和下載速度來確保你的網路頻寬不會被一個程式耗光。
Trickle 是什麼?
Trickle是一款頻寬控制供給,用來限制如Firefox, FTP , SSH以及其他使用網路頻寬的程式的頻寬。你希望你的Youtube音樂體驗影響到你的ftp下載嗎?如果不想,請繼續閱讀這篇文章,學習如何在你的機器上安裝和使用trickle。
怎樣在Linux上安裝Trickle
trickle工具有一些依賴包,安裝和使用trickle之前必須安裝“libevent 庫”,不過這個庫在大多數現在的Linux機器上已經預設安裝。
在 Debian/Ubuntu/Linux Mint 上
在Debian/Ubuntu/Mint 機器上運行 apt-get install trickle進行安裝。請確保源列表已經更新,接著安裝你想要的應用。
$ sudo apt-get update$ sudo apt-get install trickle
在 RHEL/CentOS/Fedora 上
首先你需要更新系統,然後使用下面的命令安裝trickle。
# yum update# yum install trickle
Trickle如何工作?
Trickle通過控制socket資料讀寫量來控制和限制應用的上傳/下載速度。它使用另一個版本的BSD通訊端API,但是區別是trickle還管理socket調用。
要注意的是trickle使用動態連結和載入,所以它只對於使用"Glibc庫"的程式有用。由於trickle可以設定資料在socket上的傳輸延遲,所以它可以用來限制一個應用的網路頻寬。
Trickle不能做什嗎?
Trickle不能用於限制使用UDP協議的應用的頻寬,它只可用於TCP串連,但是你要知道它也並不是對所有的TCP串連有效。如果你一直仔細地看這篇文章,你可以猜到原因是什麼。你還記得trickle只對使用Glibc庫應用有效吧?
還要說一下,trickle無法工作在使用靜態連結的可執行程式上。
確定Trickle是否可運行在某個特定應用上
既然trickle無法限制每個應用的上傳/下載速度,就應該有個方法找出trickle可以工作的應用。
ldd工具可以幫我們找出某個特定的程式是否使用了libc.so庫。如果程式使用了這個庫,就可以使用trickle來限制它的網路頻寬使用。
ldd命令用於列印每個程式需要的共用庫。如果你是一個好奇的Linux Geek,那麼你可以使用man命令來找出關於ldd工具的更多資訊。
# man ldd
Filezilla是一款使用ftp協議傳輸檔案的程式,trickle可以用來限制它的下載或者上傳速度嗎?在你考慮的時候,我使用以下的命令來找出trickle是否可用於filezilla。
# ldd filezilla | grep libc.so
就我而言,它輸出了如下:
oltjano@oltjano-X55CR:/usr/bin$ ldd filezilla | grep libc.so libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6bc4000)
既然filezilla使用了“libc.so”庫,那麼trickle可以用來限制它的網路頻寬。這個方法可以用在任何你感興趣的程式上。
Linux下的頻寬控制心得體會