前言

由于新网服务到期且续费没有优惠,又恰逢寒假时间充裕,于是在一个月黑风高的夜晚,本站的服务器被我偷偷地搬到腾讯云啦!服务器型号是 [轻量应用服务器],2 核 CPU,4 G 内存,再加上 80 GB SSD 和 1200GB / 月的流量,相比于旧的新网主机有了质的飞跃。既然要迁移服务器,于是顺手更新了 SSL 证书,宝塔面板自带的 Let's Encrypt 免费证书服务能够在距离到期时间 1 个月内自动续签,以后就不用再担心证书过期啦!
既然服务器到手了,不干点酷炫的事怎么行呢?于是我想到了——搭建一台 Tracker 服务器。

Tracker

全称 BitTorrent tracker,是帮助 BitTorrent 协议在节点与节点之间做连接的服务器。
目前开源的 Tracker Server 实现有不少,例如 Chihayabittorrent-tracker,分别是 GONode.js 的实现,不过我最后选择了配置相对简单且性能优秀的 Opentracker。我昨天也试着制作了一个种子进行测试,目前表现良好。

接下来便是正式的教程了,系统为 CentOS 7,使用 SSL 连接服务器执行命令。

准备

安装EPEL,开发工具包以及编译所需依赖:

yum -y install epel-release
yum -y groupinstall "Development Tools"
yum -y install openssl-devel zlib-devel

由于官网的下载方式过于繁琐,我把所需源码传到博客中:

libowfat.tar.gz
opentracker.tar.gz

在终端内下载源码并解压:

cd ~
wget https://kokodayo.site/usr/uploads/Opentracker/libowfat.tar.gz
wget https://kokodayo.site/usr/uploads/Opentracker/opentracker.tar.gz
tar -xzvf libowfat.tar.gz
tar -xzvf opentracker.tar.gz

编译

cd libowfat
make
cd ..
cd opentracker
make

在编译全部完成后,将二进制文件移动到 /usr/bin

cp opentracker /usr/bin

编写服务文件

[Unit]
Description=opentracker server

[Service]
User=root
ExecStart=/usr/bin/opentracker -p 6969 -P 6969
Restart=on-abort

[Install]
WantedBy=multi-user.target

这里监听的端口是 6969,这个端口可以自行更改,并且opentracker支持同时监听多端口。
-p 指TCP端口,-P 指UDP端口。

设置开机启动并立即运行:

systemctl enable opentracker.service  #开机启动服务
systemctl start opentracker.service   #启动服务进程

其他

可用的管理命令:

systemctl status opentracker.service  #查询服务状态
systemctl stop opentracker.service    #终止服务进程
systemctl restart opentracker.service #重启服务进程

别忘了防火墙呀,添加通行规则后重新载入防火墙:

firewall-cmd --permanent --add-port=6969/tcp
firewall-cmd --permanent --add-port=6969/udp
firewall-cmd --reload

到此为止,Tracker 服务器的配置已经全部完成了。
制作种子的时候,在添加Tracker服务器一栏中,可以这么写:

http://你的服务器公网IP:6969/announce
udp://你的服务器公网IP:6969/announce

OpenTracker还有一个自带的统计功能:

#简要信息统计
http://你的服务器公网IP:6969/stats
#详细信息统计
http://你的服务器公网IP:6969/stats?mode=everything

TODO

  • 使用 Nginx 反向代理
  • 开启 HTTPS 加密传输
  • 接入 CloudFlare CDN

这些都是未来能够优化的方向,不过既然已经跑起来了,就下次再说吧(逃
因为都是命令行,也没啥图好配的,要是有啥不清楚的欢迎评论交流呀!
(Nginx 反向代理 确实是没搞明白,有大佬的话可以留言指导 w~
Chihaya 的功能确实比 Opentracker 强不少,以后学会用了的话可能会换成 Chihaya。