在 Linux 系統下載大型檔案時,常會導致網頁瀏覽變得緩慢卡頓,此時便需要對下載速度進行限制。Trickle 是一款輕量級的用戶空間頻寬控制工具,能針對特定程式(如 Firefox、FTP、SSH、wget 等)限制上傳與下載速度,且無需 root 權限即可運作,非常適合桌面用戶與伺服器環境使用。

Trickle 透過攔截動態連結的 Glibc 函式庫中的 socket 系統呼叫,控制資料在 socket 上的讀寫速率,從而實現對 TCP 連線的頻寬限制。它適用於大多數動態連結的用戶空間程式,但無法作用於靜態編譯的執行檔、使用 UDP 協定的應用,以及非 Glibc 的程式(如 Go、Rust 編譯的二進制檔)。
$ sudo apt-get update
$ sudo apt-get install trickle
# yum update
# yum install trickle
安裝前請確認系統已安裝 libevent 函式庫(現代發行版通常預裝)。
使用 ldd 檢查程式是否動態連結 libc.so:
$ ldd /usr/bin/filezilla | grep libc.so
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f...)
若有輸出,表示該程式可受 Trickle 控制。
$ trickle -d 50 wget https://example.com/largefile.iso
-d 50 限制下載速度為 50 KB/s。
$ trickle -u 100 -d 50 ftp
$ trickle -d 130 -u 13 bash
此後該 Shell 下所有指令皆受限制。
$ trickle -V
$ trickle -h
Trickle 是簡單高效的頻寬管理利器,善用它能讓下載與互動網路體驗並行不悖。