自建Chihaya Tracker服务器

上回说到bittorrent-tracker项目性能较低,于是便换为chihaya项目,Github地址如下:

该Tracker使用GOLang编写,实测在日请求量400W+的情况下,CPU占用不超过5%。

基本组件与GO环境安装

首先安装一些基本组件(已经安装的可以跳过)

sudo apt-get install wget curl vim git -y

然后下载一个预构建好的GO环境:

wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz
sudo tar -xzvf go1.14.2.linux-amd64.tar.gz -C /usr/bin

打开账户配置文件,把GO的PATH写到账户配置文件下:

# 切换到root用户
sudo -i

# 打开账户配置文件
vim ~/.bash_profile

# 将下行内容写到该配置文件中
export PATH=$PATH:/usr/bin/go/bin

# 使其生效
source ~/.bash_profile

拉取Chihaya并构建

首先从github拉取Chihaya仓库

# SSH方式
git clone [email protected]:chihaya/chihaya.git

# HTTPS方式
git clone https://github.com/chihaya/chihaya.git

然后进入仓库内,开始构建

cd chihaya
go build ./cmd/chihaya

构建完成后仓库内会出现一个名为chihaya的可执行二进制文件,将其复制到/usr/bin:

cp chihaya /usr/bin
chmod +x /usr/bin/chihaya

执行如下命令,可以检查Chihaya是否正常:

chihaya --help

下载配置文件,并保存到/etc中。

sudo wget https://raw.githubusercontent.com/chihaya/chihaya/master/dist/example_config.yaml -O /etc/chihaya.yaml

打开并根据需要编辑其中的配置选项,相关配置都有英文说明。

sudo vim /etc/chihaya.yaml

创建Systemd启动项

# 新建systemd配置文件,将以下代码一起复制到SSH运行
sudo cat > /lib/systemd/system/chihaya.service <<EOF
[Unit]
Description=chihaya tracker server
    
[Service]
User=root
ExecStart=/usr/bin/chihaya --config /etc/chihaya.yaml
Restart=on-abort
LimitCORE=infinity
LimitNOFILE=infinity
LimitNPROC=infinity
    
[Install]
WantedBy=multi-user.target
EOF
# 以上为命令的全部内容
# 设置开机启动
sudo systemctl enable chihaya
# 启动服务
sudo systemctl start chihaya
# 查看服务状态
sudo systemctl status chihaya
# 停止服务
sudo systemctl stop chihaya
# 重启服务
sudo systemctl restart chihaya

启动之后chihaya便会根据配置文件监听相应的http和udp端口(默认6969),此时Tracker服务器地址如下:
http://你的服务器公网IP:6969/announce
udp://你的服务器公网IP:6969/announce

至于反向代理和CloudFlare接入,方法参照上一篇文章,不过接入Cloudfare时不需要筛选IP了,Chihaya的配置文件里有一个选项可以指定使用CF的连接IP。

real_ip_header: "CF-Connecting-IP"

Chihaya具有丰富的配置文件,同时还支持Redis,这里就不展开讲了。

本组Tracker地址为:

https://tracker.tamersunion.org/announce

点赞
  1. 寒夜方舟说道:
    Google Chrome Windows 10

    大佬,如果我要配置支持ipv6怎么弄?用的opentracker的时候没找到用什么参数,不知道这个有没有参数可以配置。

    1. 寒夜方舟说道:
      Google Chrome Windows 10

      或者这个默认开启了ipv6支持吗?我服务器已经有v6,并且可以ping通ipv6 谷歌

      1. Hanada说道:
        Google Chrome Windows 10

        试一下监听那里填[::]:6880(可以不用填0.0.0.0:6880),或者直接nginx反向代理,在nginx上添加ipv6支持

        1. 寒夜方舟说道:
          Google Chrome Windows 10

          您好,我看yaml的注释,6880是提供的状态的端口吧,如果是提供ipv4+ipv6的tracker服务的话,应该是
          # This block defines configuration for the tracker's HTTP interface.
          # If you do not wish to run this, delete this section.
          http:
          # The network interface that will bind to an HTTP server for serving
          # BitTorrent traffic. Remove this to disable the non-TLS listener.
          addr: "[::]:6969"

        2. 寒夜方舟说道:
          Google Chrome Windows 10

          我看了下,不行,它只监听IPV6
          ![image.png](https://i.loli.net/2021/05/17/r1TK84vyqlwI6dO.png)
          ![image.png](https://i.loli.net/2021/05/17/q9uYKpA3Ls8vbDf.png)

          1. Hanada说道:
            Google Chrome Windows 10

            没事的,ipv6监听对ipv4有效,你可以测测,ipv4也能访问。或者你可以试试叠两行addr看看chihaya支持不支持。

  2. HHH说道:
    Google Chrome Windows 10

    剧毒

  3. Hanada说道:
    Google Chrome Windows 10

    What are you talking about. I don't understand?

发表评论

电子邮件地址不会被公开。必填项已用 * 标注