Opentracker是一款免费的BitTorrent对等跟踪软件,设计速度快,系统资源消耗低,完全在内存中运行,有很大的速度优势,今日就搭建了一套基于OpenTracker的种子节点,记录一下
服务器位于公网,所以这里就不做类似于NAT映射这些过程说明了
服务器系统为Centos7
首先下载源码
yum install cvs git -y cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat cd libowfat make cd .. git clone git://erdgeist.org/opentracker cd opentracker make
到这里就可以直接使用了,在文件目录内,直接运行编译好的opentracker文件就可以看到使用介绍了,大概是这个样子
usage: ./opentracker [-i ip] [-p port] [-P port] [-r redirect] [-d dir] [-u user] [-A ip] [-f config] [-s livesyncport] -f 配置文件 -i ip 绑定的IP (default: *, you may specify more than one) -p port 绑定的TCP端口 (default: 6969, you may specify more than one) -P port 绑定的UDP端口 (default: 6969, you may specify more than one) -r 导向的URL (default none) -d dir chroot 的目录 (default: ".") -u user 指定以哪个用户权限来运行 (default: "nobody") -A ip 管理的IP地址 (e.g. to 从这个地址同步) Example: ./opentracker -i 127.0.0.1 -p 6969 -P 6969 -f ./opentracker.conf -i 10.1.1.23 -p 2710 -p 80
OpenTracker自带了一个配置文件用作高级调整,一般用不上,这里简单介绍下
# opentracker 配置文件 # # I) opentracker会在地址上用tcp和udp同时监听。 # (注意:如果省略,端口6969是隐含的). # 如果没有给出listen选项(这里或命令行),opentracker侦听0.0.0.0:6969 tcp和udp。 # # 下一个变量确定是否在事件中处理udp套接字事件loop(默认设置为0).或在阻塞读取中处理专用worker线程。 #你必须在之前设置值,listen.ctp_udp 或者 listen.udp的语句才会生效。但是你可以为每个listen语句重新设置,通常你应该保持它在配置文件的顶部。 # # listen.udp.workers 4 # # listen.tcp_udp 0.0.0.0 # listen.tcp_udp 192.168.0.1:80 # listen.tcp_udp 10.0.0.5:6969 # # 为了只监听tcp或udp端口,按照如下方式列出 # # listen.tcp 0.0.0.0 # listen.udp 192.168.0.1:6969 # # 注意: 为upd监听使用0.0.0.0 会产生惊讶的结果。 # 在该套接字上发送的应答包不一定具有该请求客户端可能期望的源地址,可能是这个接口上的任何地址。 # # II) 如果opentracker以非开放模式运行,则将其指向包含所有种子哈希的文件(脚本选项 -w) # access.whitelist /path/to/whitelist # 或者,如果opentracker编译为允许黑名单(脚本选项 -b) # access.blacklist ./blacklist # # 同时编译黑白名单是没有意义的和不可能的。所以编译时选择一个选项。文件格式是简单直接的: # "<hex info hash>\n<hex info hash>\n..." # # 如果你不想授予任何人权限来访问你的统计信息,在Makefile中设置 WANT_RESTRICT_STATS 选项,并将允许访问统计信息的IP放在这里 # access.stats 192.168.0.23 # # 有另外一种方法来隐藏你的统计信息。你可以混淆路径。通常它位于/stats 但是你可以配置它到你的tracker的任何路径上。 # access.stats_path stats # # III) 实时同步使用udp多播数据包来保持一组opentrackers集群同步。此选项告诉opentracker要侦听的端口接收同步数据包。ip地址告诉opentracker,在哪个接口interface加入那些报文将到达的组播组。(shell选项-i 192.168.0.1 -s 9696),端口9696是默认值。 # # livesync.cluster.listen 192.168.0.1:9696 # # 注意将打开两个udp套接字。一个在IP地址0.0.0.0端口9696,会加入多播组 224.0.42.23来接收进入的udp数据包。 一个在192.168.0.1端口9696上输出所有的udp数据包。 # 截至目前,如果opentracker是使用WANT_SYNC_LIVE功能编译构建的,必须给出一个且只有一个ip地址。 # # IV)在群集中运行的Tracker之间的同步仅限于来自可信的IP地址的数据包。虽然源IP验证很完美,opentracker的作者信任正确的应用程序隧道tunnels,过滤器和LAN设置的应用(shell选项-A)。 # # livesync.cluster.node_ip 192.168.0.4 # livesync.cluster.node_ip 192.168.0.5 # livesync.cluster.node_ip 192.168.0.6 # # 这是旧风格(基于http)的异步tracker同步的管理ip # # batchsync.cluster.admin_ip 10.1.1.1 # # V) 管理丢弃行为的权限 # 放入opentracerk会chroot/chdir的目录。 所有的黑/白名单文件必须放在哪个目录(shell选项 -d) # # tracker.rootdir /usr/local/etc/opentracker # # 告诉opentracker对哪个用户setuid # # tracker.user nobody # # VI) opentracker可以被告知回应“GET / HTTP"请求使用重定向另一个位置(shell选项 -r) # # tracker.redirect_url https://your.tracker.local/
接下来我们运行opentracker,使其做为一个公网可用的BT节点
同时通过tcp端口6969,udp端口6969对外提供服务
./opentracker -i x.x.x.x -p 6969 -P 6969
这样我们就可以通过以下连接announce了
http://x.x.x.x:6969/announce udp://x.x.x.x:6969/announce
为了方便管理,我们也可以将opentracker加入系统服务
在opentracker的目录下,复制二进制文件到/usr/bin下面
cp opentracker /usr/bin
新建一个系统服务文件
vim /usr/lib/systemd/system/opentracker.service
复制粘贴以下内容并保存退出
[Unit] Description=opentracker server [Service] User=root ExecStart=/usr/bin/opentracker -p 6969 -P 6969 Restart=on-abort [Install] WantedBy=multi-user.target
设置开机启动
systemctl enable opentracker.service
接下来可以通过systemctl进行运行,退出,重启,状态查看等操作
systemctl start opentracker.service 运行服务 systemctl status opentracker.service 查看服务状态 systemctl stop opentracker.service 停止服务 systemctl restart opentracker.service 重启服务
就到这里了
文章评论