BitTorrent 协议守护进程
btpd
是一个通过 BitTorrent 网络协议共享文件的实用程序。它以守护进程模式运行,因此不需要控制终端或 GUI。相反,守护进程由 btcli、其命令行实用程序或能够在控制套接字上发送命令和查询的其他程序控制。
btpd
由以下程序组成:
btpd
- BitTorrent 客户端。btcli
- btpd 的命令行界面。btinfo
- 显示 torrent 文件中的信息。所有程序都接受--help
选项。
btcli
实用程序有几种不同的操作模式。运行btcli
时必须指定以下命令之一:
add
- 将 torrent 添加到 btpd。del
- 从 btpd 中删除 torrent。kill
- 关闭 btpd。list
- 列出种子。rate
- 设置全局下载速率(以 KB/秒为单位)。start
- 激活种子。stat
- 显示活动种子的统计信息。stop
- 停用种子。 要开始与 btpd 共享 torrent,需要将 torrent 添加到 btpd。这是通过btcli add
完成的。当您自动添加 torrent 时(如果您没有另外指定),btpd 会开始共享 torrent 并下载任何丢失的数据。添加 torrent 时指定的内容目录不需要存在;它将由 btpd 创建。
您可以使用btcli list
查看哪些种子已添加到 btpd 中。 list 命令还显示每个添加的 torrent 的编号。该数字可用于指定 btcli 命令的目标 torrent,因此添加 torrent 文件后无需保留它。
可以使用btcli stat
命令跟踪上传和下载进度。 list 和 stat 命令都使用以下指示器来显示 torrent 的状态:
+
- 洪流正在开始。如果 btpd 需要测试此 torrent 或之前启动的 torrent 的内容,这可能需要一些时间。-
- 洪流正在停止。I
- 激流不活跃。S
- btpd 正在为 torrent 播种。L
- btpd 正在窃取种子。您可以使用btcli stop
停止活动的 torrent,当然也可以使用btcli start
启动不活动的 torrent。
仅当您完全完成 torrent 共享时才应使用btcli del
命令。该命令将从 btpd 中删除 torrent 及其关联数据。删除未完全下载的 torrent 然后再次添加它是一个特别糟糕的主意,因为 btpd 丢失了未完全下载的片段的信息,并且需要再次下载数据。
要关闭 btpd,请使用btcli kill
。不要忘记阅读每个 btcli 命令的帮助。
注意:无论您想要共享多少 torrent,您都应该只需要一个 btpd 实例。
要使用默认设置启动 btpd,您只需运行它。但是,您可能想要使用许多有用的选项。要查看完整列表,请运行btpd --help
。如果您没有另外指定,btpd 将以与上次关闭时相同的一组活动 torrent 启动。
btdp 将存储信息并将其日志写入$HOME/.btpd
。因此它需要能够在执行期间在那里写入。您可以通过-d
选项或$BTPD_HOME
变量指定另一个目录。
我建议指定最大上传数量。 Bittorrent 采用针锋相对的算法,因此以良好的速率上传可以进行下载。尝试在上传/传出带宽和活动种子数量之间找到平衡。
启动 btpd,并将所有选项设置为默认值。
# btpd
启动 btpd 并使其侦听端口 12345,将传出带宽限制为 200kB/s,将对等点数量限制为 40,并且不启动上次关闭 btpd 时活动的任何 torrent。
# btpd -p 12345 --bw-out 200 --max-peers 40 --empty-start
显示 btpd 的 torrent 列表及其数量、大小、状态等。
# btcli list
与上面相同,但仅适用于 torrent 12 和 my.little.torrent。
# btcli list 12 my.little.torrent
与上面相同,但仅适用于活跃的种子。
# btcli list -a
与上面相同,但使用自定义格式打印
# btcli list -a -f "btcli list -f "%nt%#t%p%st%rn"
添加 foo.torrent,内容为 foo.torrent.d,然后启动它。
# btcli add -d foo.torrent.d foo.torrent
与上面相同,无需启动。
# btcli add --no-start -d foo.torrent.d foo.torrent
启动 bar.torrent 和 7 号种子。
# btcli start bar.torrent 7
停止 7 号种子。
# btcli stop 7
停止所有活动的种子。
# btcli stop -a
从 btpd 中删除 bar.torrent 及其相关信息。
# btcli del bar.torrent
显示活动种子的上传/下载统计信息摘要。
# btcli stat
每五秒显示一次摘要。
# btcli stat -w 5
与上面相同,但还显示每个活动 torrent 的单独统计信息。
# btcli stat -w 5 -i
设置全局上传速率为20KB/s,下载速率为1MB/s。
# btcli rate 20K 1M
关闭 btpd。
# btcli kill
如果 btpd 由于某种未知原因而关闭,请检查日志文件以获取可能的线索。
您应该有一个 BSD、Linux 或足够相似的系统。
确保您拥有以下软件的最新版本:
您还需要一个 c99 编译器。一个非古董 GCC 应该可以。
为了能够打开doc
中的手册,您需要安装man-pages
。
# ./configure
# make
# make install
如果上述失败,请参阅./configure --help
以获取可用的构建选项。
自 btpd 0.11 以来,btpd 目录中 torrent 目录的布局已更改。请在运行更高版本之前删除 torrent 目录。
如果 btpd 在关闭之前需要向跟踪器发送停止消息,它将进入预退出模式。可以安全地忽略此模式下的 btpd 进程,并且不会干扰在同一目录中启动的任何新 btpd。
不幸的是,在 btpd 中同时启用 IPv6 和 IPv4 并没有应有的用处。问题在于,一些站点同时拥有这两种版本的跟踪器,并且可能会使用 IPv6 版本(其对等点可能较少)来取代 IPv4 版本。
为了解决这个问题,在 btpd 的未来版本中,IP 版本选项应该更改为每个 torrent。
如果您希望联系以获得帮助、贡献或只是打个招呼,请随时访问我们在 freenode 上的 IRC 频道#btpd。