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

安装qbittorrent-nox

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

apt update 
apt install qbittorrent-nox -y

配置qbittorrent-nox进程守护

不粗暴的使用root执行,而是用户谈执行,这样可以防止万一Web-GUI被爆破了,服务器全被黑了。
1. 添加专属的qbittorrent-nox用户组

adduser --system --group qbittorrent-nox

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

adduser your-username qbittorrent-nox

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

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

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

[Unit]
Description=qBittorrent Command Line Client
After=network.target

[Service]
Type=forking
User=qbittorrent-nox
Group=qbittorrent-nox
UMask=007
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure

[Install]
WantedBy=multi-user.target

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

systemctl daemon-reload
systemctl start qbittorrent-nox
systemctl enable qbittorrent-nox
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并配置反代,安装命令如下:

apt install nginx

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

                proxy_pass http://127.0.0.1:8080/;
                proxy_http_version 1.1;
                proxy_set_header X-Forwarded-Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                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功能。

server {
        #listen 80 default_server;
        #listen [::]:80 default_server;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name qbt.example.com; # 此处的示例域名为qbt.example.com

        location / {
                #try_files $uri $uri/ =404;

                proxy_pass http://127.0.0.1:8080/;
                proxy_http_version 1.1;
                proxy_set_header X-Forwarded-Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                http2_push_preload on;
        }

        listen 443 ssl;

        ssl_certificate /path/qbt.example.com_bundle.crt; # SSL/TLS的证书,注意路径
        ssl_certificate_key /path/qbt.example.com.key; #SSL/TLS的密钥,注意路径
        ssl_session_timeout 5m;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; #开启了HSTS

        access_log /var/log/nginx/access.qbt.example.com.log; #记录访问日志
        error_log /var/log/nginx/error.qbt.example.com.log; #记录错误日志

}

server { #此功能为强制所有http跳转到https
        listen 80 default_server;
        server_name qbt.example.com;
        return 301 https://$host$request_uri;
}

标签: nginx, qbittorrent

添加新评论