transmission下载服务器搭建

admin 2024年02月19日 263次浏览

Transmission 是一种 BitTorrent 客户端,也可以使用该工具搭建一个自己的 BT 下载服务器
本文简单介绍在 Debian12 最小安装环境中搭建 Transmission 下载服务器的方法

1、安装Transmission服务端

在 Debian 系统中,可以直接使用 APT 工具安装 Transmission 软件

  • 在官方库中查看Transmission软件名称

    root@debian:~# apt search transmission
    transmission/stable 3.00-2.1+deb12u1 all
      轻量级的 BT 客户端
    
    transmission-cli/stable 3.00-2.1+deb12u1 amd64
      lightweight BitTorrent client (command line programs)
    
    transmission-common/stable 3.00-2.1+deb12u1 all
      lightweight BitTorrent client (common files)
    
    transmission-daemon/stable 3.00-2.1+deb12u1 amd64
      lightweight BitTorrent client (daemon)
    
    transmission-gtk/stable 3.00-2.1+deb12u1 amd64
      lightweight BitTorrent client (GTK+ interface)
    
    transmission-qt/stable 3.00-2.1+deb12u1 amd64
      轻量级 BT 客户端(Qt 界面)
    
    transmission-remote-gtk/stable 1.5.1-1 amd64
      GTK+ interface for the Transmission BitTorrent daemon  
    
  • 安装Transmission软件

    因为我们是将 Transmission 配置为下载服务器,因此这里我们安装 transmission-cli、transmission-daemon 两个软件即可,其中前者是 Transmission 的命令行下载工具,这里主要是用于执行 trackers 配置脚本;后者是服务端守护程序

    root@debian:~# apt install transmission-cli transmission-daemon -y
    
  • 查看transmission安装包

    root@debian:~# dpkg -l | grep transmission
    ii  transmission-cli             3.00-2.1+deb12u1               amd64        lightweight BitTorrent client (command line programs)
    ii  transmission-common          3.00-2.1+deb12u1               all          lightweight BitTorrent client (common files)
    ii  transmission-daemon          3.00-2.1+deb12u1               amd64        lightweight BitTorrent client (daemon)
    

到此,Transmission 软件安装完毕

2、修改配置文件

Transmission 的配置文件路径为:/etc/transmission-daemon/settings.json ,这里只需要修改几个简单参数即可,后续可以使用 web 界面修改

root@debian:~# vim /etc/transmission-daemon/settings.json
{
	// 默认下载路径
	"download-dir": "/var/Download",
	// 传输端口,默认为51413
	"peer-port": 51413,
	// RPC web访问密码
	"rpc-password": "12345",
	// RPC 监听端口,默认为9091
	"rpc-port": 9091,
	// RPC web访问用户名
	"rpc-username": "admin",
	// RPC白名单,多个地址使用逗号隔开,支持通配符
	"rpc-whitelist": "127.0.0.1,192.168.137.*",
   	// 是否启用RPC白名单
	"rpc-whitelist-enabled": true,
	// 开启做种(上传)队列
	"seed-queue-enabled": ftrue,
	// 做种队列大小(同时上传数量) 
	"seed-queue-size": 5,
}

注意: 如果需要修改配置文件,需要先将服务停止后才能修改,否则修改后无法保存

3、创建文件下载目录

我这里以将文件下载到samba服务器中为例,samba服务器的搭建,参见:centos7搭建samba服务器

3.1、创建挂载点

root@debian:~# mkdir /var/download
root@debian:~# ls -la /var/
drwxr-xr-x  2 root root  4096  2月17日 16:33 download

3.2、安装cifs文件系统支持

Debian 最小化安装默认是不支持 cifs 文件系统的,因此在挂载 samba 共享文件夹时,需要先安装 cifs 文件系统实用程序

# 查看软件包名称
root@debian:~# apt search cifs
cifs-utils/stable 2:7.0-2 amd64
  Common Internet File System utilities

# 安装cifs实用程序
root@debian:~# apt install cifs-utils -y

3.3、查看Transmission创建的用户

安装完毕 Transmission 后,Transmission 将会在系统中创建一个默认用户,在后面的挂载中,需要将挂载点的权限设置为该用户,否则下载时会出现 permission denied 错误

root@debian:~# cat /etc/passwd | grep transmission
debian-transmission:x:102:109::/var/lib/transmission-daemon:/usr/sbin/nologin

3.4、挂载samba共享文件夹

root@debian:~# mount -t cifs //192.168.137.100/download /var/download/ -o user=user,password=123456,uid=debian-transmission,gid=debian-transmission

参数解释:

user:共享文件夹的访问用户名

password:共享文件夹的访问密码

uid:挂载后文件夹的属主

gid:挂载后文件夹的属组

4、启动Transmission服务

root@debian:~# systemctl start transmission-daemon
root@debian:~# systemctl enable transmission-daemon
Synchronizing state of transmission-daemon.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable transmission-daemon

5、访问web服务

直接访问 http://SERVER-IP:9091 即可

6、安装transmission-web-control

由于官方的 web 页面太过于精简,我们可以使用第三方的 webUI,安装方法很简单。参考 transmission-web-control 的 gitee 或者 github.com 文档,安装后效果如下图

如果使用脚本无法安装,可以采用手动方式安装

  • 从官方仓库克隆或下载安装包

  • 将安装包上传到服务器

  • 解压安装包

    root@debian:~# mkdir tmp
    root@debian:~# cd tmp
    root@debian:~/tmp# mv /home/user/transmission-web-control-1.6.1-update1.tar.gz ./
    root@debian:~/tmp# tar -zxvf transmission-web-control-1.6.1-update1.tar.gz
    
  • 重命名原index文件

    root@debian:~/tmp# cd /usr/share/transmission/web/
    # 重命名的名称必须是下面的名称,否则在web中使用【原版UI】时会出错
    root@debian:/usr/share/transmission/web# mv index.html index.original.html
    
  • 替换原有文件

    root@debian:/usr/share/transmission/web# cp -r /root/tmp/transmission-web-control-1.6.1-update1/src/* ./
    
    root@debian:/usr/share/transmission/web# ls
    favicon.ico  index.html         index.original.html  style
    images       index.mobile.html  javascript           tr-web-control
    

到此,手动安装 transmission-web-control 完成,其中 index.html 为第三方 webUI,index.original.html 为官方 webUI

7、添加Tracker服务器

因为 BT 下载文件全都是其他用户上传分享给我们的,因此 BT 下载速度就等于其他用户的上传速度,链接到的做种上传用户越多,我们的下载速度就越快,而用户可以通过 Peer、DHT、Tracker 获得

方式 说明
Peer 在获得一个有效用户后才会起作用,该用户会把它知道的其他用户信息告诉你。
DHT Peer 加强版,分布式储存用户信息,获得用户的效率更高,但需要下载热门资源来养
Tracker 记录所有正在上传/下载同一资源的用户信息并提供给你,帮助你与其他用户建立连接。

这里我们可以通过添加 Tracker 的方式提升我们的下载速度,此处推荐使用 transmission-add-trackers 脚本来实现较为方便,具体方法如下

  • 获取下载脚本

    root@debian:~# curl https://raw.githubusercontent.com/qianbinbin/transmission-add-trackers/master/trans-add-trackers.sh -o /home/user/trans-add-trackers.sh
    root@debian:~# chmod +x /home/user/trans-add-trackers.sh
    
  • 编辑脚本文件

    root@debian:~# vim /home/user/trans-add-trackers.sh
    # 修改主机:端口
    HOST="192.168.137.10:9091"
    
    # 用户名:密码
    AUTH="username:password"
    
  • 配置systemd服务

    # 获取配置文件
    root@debian:~# curl https://raw.githubusercontent.com/qianbinbin/transmission-add-trackers/master/transmission-add-trackers.service -o /etc/systemd/system/transmission-add-trackers.service
    
    # 修改服务脚本
    root@debian:~# vim /etc/systemd/system/transmission-add-trackers.service
    ## 用户
    User=root
    ## 脚本路径
    ExecStart=/home/user/trans-add-trackers.sh
    
  • 启动服务

    # 重载服务
    root@debian:~# systemctl daemon-reload
    
    # 启动服务
    root@debian:~# systemctl start transmission-add-trackers.service
    
    # 开机启动
    root@debian:~# systemctl enable transmission-add-trackers.service
    
    # 查看状态
    root@debian:~# systemctl status transmission-add-trackers.service
    ● transmission-add-trackers.service - Add Trackers for Transmission Torrents
         Loaded: loaded (/etc/systemd/system/transmission-add-trackers.service; enabled; preset: enabled)
         Active: active (running) since Mon 2024-02-19 20:25:52 CST; 12s ago
       Main PID: 18570 (sh)
          Tasks: 2 (limit: 2190)
         Memory: 2.2M
            CPU: 5.822s
         CGroup: /system.slice/transmission-add-trackers.service
                 ├─18570 sh /home/user/trans-add-trackers.sh
                 └─19721 sleep 60
    
    2月 19 20:25:52 debian systemd[1]: Started transmission-add-trackers.service - Add Trackers for Transmission Torrents.
    2月 19 20:25:52 debian trans-add-trackers.sh[18570]: Fetching trackers: https://cf.trackerslist.com/all.txt
    2月 19 20:25:55 debian trans-add-trackers.sh[18570]: [528B blob data]
    2月 19 20:25:58 debian trans-add-trackers.sh[18570]: [528B blob data]
    

    到此,我们的 Tracker 服务器就配置完毕,可以到 webUI 中查看服务器列表了,如下图所示

8、后记

8.1、没有下载速度

  • 路由器的 51413 端口是否转发

  • 设置 seed-queue-enabled 参数是否为 true

  • 调整 seed-queue-size 参数值

  • 查看Tracker服务器状态

8.2、刚开始下载,就暂停

出现这种情况时,将 webUI 切换到官方 webUI 时,出现 permission denied 提示,出现这种情况,多数是下载目录权限问题,解决方法参见 3.3节、3.4 节