VPS搭建私人BT离线服务器


使用闲置的VPS搭建私人BT离线服务器的方法,亦或者推广至树莓派或者家用路由器亦可。

安装及配置 Transmission

  • 安装 sudo apt-get install transmission-daemon
  • 配置 停止服务(否则配置文件锁定,无法修改)sudo service transmission-daemon stop
  • 编辑配置文件

sudo vim /etc/transmission-daemon/settings.json

1
2
3
4
5
6
7
{
"ratio-limit": 0.0100,
"ratio-limit-enabled": true,
"rpc-password": "*******",
"rpc-username": "frank",
"download-dir": "/var/www/html/Downloads",
}

我只列出了我修改过且无法在 Transmission Web-GUI 中无法完成修改的几项,四项依次是下载完成做种率,开启限制做种率,Web-GUI 密码,Web-GUI 用户名。像保存路径,下载/ 上传速度限制,都可以在 Web-GUI 中直接设定,为了方便之后对下载文件的 Web 管理,我直接将保存路径改到了 Web 发布路径下的一个子目录。

重启服务

sudo service transmission-daemon start

此时在浏览器打开VPS的IP地址/域名:9091并输入刚刚设置的用户名及密码应该就可以访问 Transmission 的 Web-GUI了。
Screen Shot 2018-04-08 at 11.25.35

可是在添加了第一个任务后出现保存路径写入权限的问题。
解决办法如Permission denied when downloading with transmission deamon - Ask Ubuntu所示:

我们的下载地址是 /var/www/html/Downloads 用户名是znwindy:
那么

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 将本用户加入 `debian-transmission`组
sudo usermod -a -G debian-transmission znwindy
# 文件夹所有者
sudo chgrp debian-transmission /var/www/html/Downloads
# 组添加写权限
sudo chmod -R 755 /var/www
# 停止后台deamon
sudo service transmission-daemon stop
# 更改 file creation mask
sudo vim /etc/transmission-daemon/settings.json
# 把"umask": 18 改为 "umask": 2
# 重启服务
sudo service transmission-daemon start

即可解决写的问题。

配置 Apache 加密区域

安装apache2

1
2
sudo apt-get update
sudo apt-get install apache2

Adjust the Firewall

1
2
3
4
sudo ufw app list
sudo ufw allow 'Apache Full'
sudo ufw status
sudo systemctl status apache2

密码生成

1
sudo htpasswd -c /etc/apache2/.htpasswd 用户名

然后会被提示输入两次该 “用户名” 的密码。

修改虚拟 host 的配置文件
sudo vim /etc/apache2/sites-enabled/000-default.conf

1
2
3
4
5
6
<Directory "/var/www/html">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>

保存后重启

sudo service apache2 restart

总结

通过 HTTP 将下载的任务取回本地,速度也很快!这样,通过访问 Transmission Web-GUI “投喂” 种子,磁力链,然后在下载完成后通过 HTTP 方式从 VPS 将资源取回本地,甚至直接对 .mp3、.mp4 等文件格式进行在线播放,实现了一个简化版的迅雷离线下载,可是它却在下载某些特定资源时远比迅雷离线管用。

参考自