本文原载于 https://www.idc.moe/archives/qcloud-Lighthouse-qBittorrent.html
qBittorrent 是一款开源种子和磁力链接下载工具,支持 Windows, Mac 和 Linux 等主流操作系统和 ARM, x86 和 amd64 等主流架构,功能非常强大。他不仅支持从种子文件和磁力链接下载,还支持做种、编辑 Tracker、设置下载优先级、RSS 订阅等功能。Web UI 功能更是为其如虎添翼——我们可以将 qBittorrent 安装在存储空间较大的服务器(俗称“大盘鸡”)上,并通过强大而易用的 Web UI 操作 qBittorrent,既减轻了本地设备的压力,也将服务器的高在线率和网络优良的特性充分地利用了起来。
本文旨在介绍 qBittorrent 在 Linux 下的编译安装。利用腾讯云轻量应用服务器存储版的大容量磁盘空间加上 qBittorrent 可以将机器变身为一台多功能的实用下载机。
服务器系统推荐选用 Debian 10,因其软件包较新,而 Debian 9 和 CentOS 系列因 Libtorrent 编译阶段重要的依赖缺失或版本过于陈旧等导致编译失败。
SSH 登录服务器后,首先执行 apt update && apt upgrade -y
获得最新软件包列表并更新系统版本号和基础软件包。
等待命令执行完毕后,按顺序输入以下命令安装必要的依赖:
apt install -y build-essential pkg-config automake libtool git libgeoip-dev python3 python3-dev
apt install -y libboost-dev libboost-system-dev libboost-chrono-dev libboost-random-dev libssl-dev
apt install -y qtbase5-dev qttools5-dev-tools libqt5svg5-dev zlib1g-dev
下载并解压 Libtorrent 源码包:(libtorrent-rasterbar 1.2.11 版本较为稳定且支持 qBittorrent 4.3 以上的新版本)
wget https://github.com/arvidn/libtorrent/releases/download/v1.2.11/libtorrent-rasterbar-1.2.11.tar.gz
tar xf libtorrent-rasterbar-1.2.11.tar.gz
Libittorrent 是 qBittorrent 的后端主程序,在大流量、长时间和大量的种子的场景下,Libittorrent 的性能直接决定着 qBittorrent 的稳定性和性能。Libtorrent 1.1.14 版本是广受好评的一个版本,但是现在看来过于陈旧,也不支持新版的 qBittorrent,故本文演示编译 Libtorrent 1.2.11.
下载并解压 qBittorrent 源码包:(qBittorrent 4.3.1 版本,发布于 2020 年 11 月 25 日)
wget https://github.com/qbittorrent/qBittorrent/archive/release-4.3.1.tar.gz
tar xf release-4.3.1.tar.gz
需要说明的是,Libttorrent 的版本与 qBittorrent 的版本需要按照如上所述对应,否则可能导致 qBittorrent 编译失败。
依次执行以下命令:
cd libtorrent-rasterbar-1.2.11
./configure --disable-debug --enable-encryption --with-libgeoip=system CXXFLAGS=-std=c++14
make -j$(nproc)
make install
ldconfig
其中,参数 -j$(nproc)
为变量 CPU 核心数。编译需等待数分钟至数小时(这取决于机器性能)。
由于上一步操作结束后工作目录还停留在 libtorrent-rasterbar-1.2.11
内,故先执行 cd ..
返回上一级,尔后依次执行以下命令:
cd qBittorrent-release-4.3.1
./configure --disable-gui --disable-debug
make -j$(nproc)
make install
同样的,编译需等待数分钟至数小时(这取决于机器性能)。
复制以下代码块的全部内容并一次性粘贴至 SSH 窗口:
cat << EOF > /etc/systemd/system/qbittorrent.service
[Unit]
Description=qBittorrent Daemon Service
After=network.target
[Service]
LimitNOFILE=512000
User=root
ExecStart=/usr/local/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox
[Install]
WantedBy=multi-user.target
EOF
执行 qbittorrent-nox
,输入 y
并回车以确认使用协议。然后使用 Ctrl + C 键退出。
执行 systemctl enable qbittorrent
以使 qBittorrent 开机启动;
执行 systemctl start qbittorrent
以使 qBittorrent 在后台运行。
停止 qBittorrent 进程: systemctl stop qbittorrent
;
取消 qBittorrent 开机启动: systemctl disable qbittorrent
。
至此,qBittorrent 已经完全安装完成,关于 Web UI 的内容请阅读下方的“进阶用法”部分。
访问腾讯云后台,为你的那台轻量应用服务器添加一条防火墙规则:
设置项 | 值 |
---|---|
协议 | TCP |
端口 | 8080 |
策略 | 允许 |
访问 http://服务器公网IP地址:8080/
,输入 Web UI 的初始用户名 admin
和初始密码 adminadmin
。
为了保障您的数据安全和服务器安全,请修改 Web UI 的初始用户名和初始密码。
反向代理可以实现使 Web UI 复用标准 Web 服务端口 (80, 443)、绑定域名防止端口扫描暴露服务和配置 HTTP 证书等,下面介绍在宝塔面板和 LNMP.org 一键包下使用 Nginx 反向代理 qBittorrent Web UI。本项配置完成后,可以在腾讯云后台将本服务器防火墙的 8080 端口开放的策略删除,防止被扫描。
登录宝塔面板后台,添加一个站点。域名自定义;PHP 版本选择“静态”,单击确定。
修改网站配置(可以先行设置 SSL 证书等),选择“反向代理”选项卡,代理名称自定义,目标URL填写 http://127.0.0.1:8080
,单击提交。
将域名解析到服务器并访问域名,效果如图:
使用 lnmp vhost add
命令添加一个站点,不用设置伪静态,按需设置 SSL 证书。完成后,修改 /usr/local/nginx/conf/vhost/对应的域名.conf
,在 server
块内添加以下字段:
location /
{
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
执行 nginx -s reload
以应用更改。