最近入了 PT 这个深坑,有时候需要在自己的电脑和远程下载的盒子之间传输文件,一个方便的方法是直接在种子文件里添加 tracker 服务器,将双方连接起来。在 IPV6 普及的今天,你也可以方便地通过 BT 分享文件。因为某些原因,网络上公开的 tracker 服务器不是很稳定,对 IPV6 支持不佳,自建 BT 服务器即安全又稳定。
后端搭建
在 GitHub 找到一个基于 nodejs 的项目 webtorrent/bittorrent-tracker 。根据简介,这个程序支持 ipv4 & ipv6 ,更重要的是能通过 x-forwarded-for HTTP头信息获取到客户端的 IP地址 ,这意味着即使我们通过nginx等web服务器进行反向代理后,程序仍能通过http header获取源客户端的ip地址。
接着按照Wiki步骤用 npm install -g bittorrent-tracker 安装 bt-tracker 。注意,这里需要较新版本的nodejs,请到官网。如果你想直接通过 apt 安装 npm ,至少需要 Debian10 或 Ubuntu18.04。 指定端口的启动命令为 bittorrent-tracker –trust-proxy -p 6000 ,默认开启 http udp ws 以及连接统计。
接着是把 bittorrent-tracker 设为开机启动项。在 /etc/rc.local 新增 nohup bittorrent-tracker –trust-proxy -p 6000 > /tmp/tracker.log 2>&1 & 这一行就可以了。不过因为 Ubuntu18.04 不再使用 initd 管理系统,启用 rc.local 设置开机启动需要一些步骤。
前端搭建
HTTP 明文传输很容易被干扰,因此在使用前记得上HTTPS。这里用 nginx 反向代理。Tracker服务器能通过 x-forwarded-for 获取到客户端的真实 IP。
然后,在种子里添上地址(https://tracker.mrning.com/announce),如果一方有公网IP且端口是开着的,双方就能愉快地传输文件了。