因为PT站优先qbittorrent,所以弃用aria2,而在Debian 11上安装qbittorrent,并配置Nginx反代。注意:qbittorrent是自带GUI的,适用于桌面环境;而qbittorrent-nox才是服务器用的,并没有提供桌面GUI,但是提供了网络访问的Web-GUI界面。
安装qbittorrent-nox

没什么好说的,直接执行以下命令就好了,debian 11仓库的qbittorrent-nox是5.25版本,并不算老,各大站点的兼容性也不错。

  1. apt update
  2. apt install qbittorrent-nox -y

配置qbittorrent-nox进程守护

不粗暴的使用root执行,而是用户谈执行,这样可以防止万一Web-GUI被爆破了,服务器全被黑了。

1. 添加专属的qbittorrent-nox用户组

  1. adduser --system --group qbittorrent-nox

2. 将当前用户添加进qbittorrent-nox用户组中,注意: “your-username”是你当前用户的名字,比如root账户就是root,ubuntu账户就是ubuntu,可以通过命令whoami获取。

  1. adduser your-username qbittorrent-nox

3. 新建systemd文件,如下所示:

  1. touch /etc/systemd/system/qbittorrent-nox.service

使用你顺手的编辑器,比如vim/nano之类的,将以下内容填入刚才新建的文件中

  1. [Unit]
  2. Description=qBittorrent Command Line Client
  3. After=network.target
  4. [Service]
  5. Type=forking
  6. User=qbittorrent-nox
  7. Group=qbittorrent-nox
  8. UMask=007
  9. ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
  10. Restart=on-failure
  11. [Install]
  12. WantedBy=multi-user.target

4. 启用进程守护,直接执行以下命令就行了,最后一条命令执行完,出现active关键字就说明一切都如预期的那样跑起来了。

  1. systemctl daemon-reload
  2. systemctl start qbittorrent-nox
  3. systemctl enable qbittorrent-nox
  4. systemctl status qbittorrent-nox

至此,在浏览器中输入服务器的IP和qbittorrent-nox的端口就可以进入了,例如http://1.1.1.1:8080,这里的1.1.1.1是服务器的IP,8080是刚才进程守护文件中写入的端口。用户名是admin,用户密码:adminadmin。
强烈建议进去之后,立马修改用户名和用户密码!!!具体位置在tool>options>webui这里,还可以修改成中文。
Nginx反代qbittorrent-nox的Web-GUI

1. 修改监听地址
http+非标端口,总让人强迫症犯了,所以搞了个SSL和Nginx反代,让qbittorrent-nox的Web-GUI看起来舒服一些。
首先,在tool>options>webui中,将监听的IP地址从*改成127.0.0.1,然后执行重启命令systemctl restart qbittorrent-nox以生效。这样只有服务器本地才能访问,其他都不行。

2. 安装Nginx并配置反代,安装命令如下:

  1. apt install nginx

修改配置文件/etc/nginx/sites-available/,将server_name _;中的_改成域名,在location /中注释掉try_files $uri $uri/ =404;,并将以下内容写入:

  1. proxy_pass http://127.0.0.1:8080/;
  2. proxy_http_version 1.1;
  3. proxy_set_header X-Forwarded-Host $http_host;
  4. proxy_set_header X-Real-IP $remote_addr;
  5. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  6. proxy_set_header X-Forwarded-Proto $scheme;
  7. http2_push_preload on;

到此处,执行nginx -t检查配置文件是否支持,如果都是ok,那就可以重启nginx,命令为systemctl reload nginx。
实际上,我还添加了SSL(需要先注释掉server中的listen 80 default_server;和listen [::]:80 default_server;两行
)。整体示例如下,就不细说了,可以对照着自己配置文件修改。如果不熟悉的,强烈建议使用Let’s Encrypt等一键SSL/TLS程序添加SSL功能。

  1. server {
  2. #listen 80 default_server;
  3. #listen [::]:80 default_server;
  4. root /var/www/html;
  5. # Add index.php to the list if you are using PHP
  6. index index.html index.htm index.nginx-debian.html;
  7. server_name qbt.example.com; # 此处的示例域名为qbt.example.com
  8. location / {
  9. #try_files $uri $uri/ =404;
  10. proxy_pass http://127.0.0.1:8080/;
  11. proxy_http_version 1.1;
  12. proxy_set_header X-Forwarded-Host $http_host;
  13. proxy_set_header X-Real-IP $remote_addr;
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  15. proxy_set_header X-Forwarded-Proto $scheme;
  16. http2_push_preload on;
  17. }
  18. listen 443 ssl;
  19. ssl_certificate /path/qbt.example.com_bundle.crt; # SSL/TLS的证书,注意路径
  20. ssl_certificate_key /path/qbt.example.com.key; #SSL/TLS的密钥,注意路径
  21. ssl_session_timeout 5m;
  22. ssl_protocols TLSv1.2 TLSv1.3;
  23. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  24. ssl_prefer_server_ciphers on;
  25. add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; #开启了HSTS
  26. access_log /var/log/nginx/access.qbt.example.com.log; #记录访问日志
  27. error_log /var/log/nginx/error.qbt.example.com.log; #记录错误日志
  28. }
  29. server { #此功能为强制所有http跳转到https
  30. listen 80 default_server;
  31. server_name qbt.example.com;
  32. return 301 https://$host$request_uri;
  33. }