跳转至内容

Trickle

来自 ArchWiki

trickle 是一个可移植的轻量级用户空间带宽整形器,它可以以协作模式(与 trickled 一起)或独立模式运行。

它通过预加载自己的套接字库包装器来工作,通过延迟数据来限制流量。

Trickle 完全在用户空间运行。[1]

安装

安装 trickleAUR 包。

用法

警告
  • 生成大量流量但通过(流量非常小的)Web 界面控制的程序,其 Web 界面流量也会被整形。这意味着它们将几乎无法访问。
  • Trickle 只能限制不进行 fork 的程序的流量,因此不能通过这种方式整形 FTP 服务器的流量。

如果你正在运行守护进程(见下文),只需在任何程序前面加上“trickle”即可启动它。

# trickle pacman -Syu

否则,也请指定上传和下载限制以及其他配置选项(有关更多信息,请参阅 trickle(1))。

# trickle -s -d200 -u50 pacman -Syu

修改其他 systemd 服务

修改所需 systemd 服务的 ExecStart,在末尾附加 /usr/bin/trickle。例如:

ExecStart=/usr/bin/daemon

更改为

ExecStart=/usr/bin/trickle /usr/bin/daemon

当使用独立模式时,还要添加如 #Usage 中所述的配置选项。重启守护进程,它现在应该已经整形了带宽。

与 rsync 结合使用

不要将 trickle 放在 rsync 命令前面(这不起作用,因为 rsync 可能会 fork ssh 进程),而是像这样调用 rsync:

rsync --rsh="trickle -d 10 -u 10 ssh" SRC DEST

守护进程配置

如果你想在 trickled 中使用特定于应用程序的设置,请按照 trickled.conf(5) man 页面的说明创建可选的 /etc/trickled.conf 文件。例如:

[ssh]
Priority = 1
Time-Smoothing = 0.1
Length-Smoothing = 2
[ftp]
Priority = 8
Time-Smoothing = 5
Length-Smoothing = 20