前言

本身打算拿webtorrent/bittorrenttracker 来搭建tracker服务器的,结果npm安装完后死活没用,所以还是用回Open Tracker吧

环境

GCC(dnf group install “Development Tools”)

安装

我们需要先安装brew软件管理器,然后通过brew安装libowfat

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install libowfat

也可以通过编译安装libowfat

wget http://www.fefe.de/libowfat/libowfat-0.32.tar.xz
tar -xvf libowfat-0.32.tar.xz
cd libowfat-0.32
make
cd ..
mv libowfat-0.32 libowfat

然后将最新的opentracker通过git获取

>git clone git://erdgeist.org/opentracker
cd opentracker
make

如果出现缺失文件的报错
opentracker.c:25:10: fatal error: XXX.h: No such file or directory
就用

find / -name XXX.h

其实缺失的都在libowfat里面有233,我直接图省事全部都拷贝进来了,你们可以自己拷贝也可以直接无脑用我的:GD 文件库

编译完毕,目录下就会有一个opentracker的可执行文件了

启动

软件自带的帮助:

 

Usage: ./opentracker [-i ip] [-p port] [-P port] [-r redirect] [-d dir] [-u user] [-A ip] [-f config] [-s livesyncport]
-f config include and execute the config file
-i ip specify ip to bind to (default: *, you may specify more than one)
-p port specify tcp port to bind to (default: 6969, you may specify more than one)
-P port specify udp port to bind to (default: 6969, you may specify more than one)
-r redirecturlspecify url where / should be redirected to (default none)
-d dir specify directory to try to chroot to (default: ".")
-u user specify user under whose priviliges opentracker should run (default: "nobody")
-A ip bless an ip address as admin address (e.g. to allow syncs from this address)

Example: ./opentracker -i 127.0.0.1 -p 6969 -P 6969 -f ./opentracker.conf -i 10.1.1.23 -p 2710 -p 80

官方文档中也提供了配置文件,其实直接用命令也是一样的

./opentracker -i 127.0.0.1 -p 6969 -P 6969

如果需要https,使用nginx反代即可

自启动

本处需要使用到systemd,最近接触了下systemd,真的爽死了

vim /usr/lib/systemd/system/opentracker.service

将以下代码粘贴入内

[Unit]
Description=Open Tracker
After=network-online.target
[Service]
Type=simple
ExecStart=/root/opentracker/opentracker -i 127.0.0.1 -p 6969 -P 6969
Restart=on-failure
[Install]
WantedBy=multi-user.target

:wq保存

启用自启

systemctl enable opentracker

启动指令

systemctl start opentracker

停止指令

systemctl stop opentracker

状态查询

systemctl status opentracker

优化

本处参考樱佬的一篇远古文章:https://bbs.itzmx.com/thread-18214-1-1.html

在opentracker根目录编辑trackerlogic.h文件

vim trackerlogic.h

利用vim的查询功能(/)将以下参数进行修改

rackerlogic.h:#define OT_CLIENT_REQUEST_INTERVAL (60*120)#客户端默认间隔请求时间
trackerlogic.h:#define OT_CLIENT_TIMEOUT_SEND (60*30)#客户端最小间隔请求时间,部分客户端的可能不会准守
trackerlogic.h:##define OT_PEER_TIMEOUT 144#服务端删除peer时间,单位分钟
:wq
make

参考

https://erdgeist.org/arts/software/opentracker/index/

https://bbs.itzmx.com/thread-18214-1-1.html