使用腾讯云轻量编译安装 qBittorrent 搭建下载环境
qBittorrent 是一款开源种子和磁力链接下载工具,支持 Windows, Mac 和 Linux 等主流操作系统和 ARM, x86 和 amd64 等主流架构,功能非常强大。他不仅支持从种子文件和磁力链接下载,还支持做种、编辑 Tracker、设置下载优先级、RSS 订阅等功能。Web UI 功能更是为其如虎添翼——我们可以将 qBittorrent 安装在存储空间较大的服务器(俗称“大盘鸡”)上,并通过强大而易用的 Web UI 操作 qBittorrent,既减轻了本地设备的压力,也将服务器的高在线率和网络优良的特性充分地利用了起来。
本文旨在介绍 qBittorrent 在 Linux 下的编译安装。利用腾讯云轻量应用服务器存储版的大容量磁盘空间加上 qBittorrent 可以将机器变身为一台多功能的实用下载机。
准备工作
1. 系统选用
服务器系统推荐选用 Debian 10,因其软件包较新,而 Debian 9 和 CentOS 系列因 Libtorrent 编译阶段重要的依赖缺失或版本过于陈旧等导致编译失败。
2. 环境配置
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
3. 源码下载
下载并解压 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 编译失败。
如果下载缓慢,请将 https://github.com/arvidn/libtorrent/releases/download/v1.2.11/libtorrent-rasterbar-1.2.11.tar.gz
替换为 https://static.gmx0.cn/files/libtorrent/libtorrent-rasterbar-1.2.11.tar.gz
,将 https://github.com/qbittorrent/qBittorrent/archive/release-4.3.1.tar.gz
替换为 https://static.gmx0.cn/files/qBittorrent/release-4.3.1.tar.gz
。
进行编译
4. 编译 Libttorrent
依次执行以下命令:
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 核心数。编译需等待数分钟至数小时(这取决于机器性能)。
5. 编译 qBittorrent
由于上一步操作结束后工作目录还停留在 libtorrent-rasterbar-1.2.11
内,故先执行 cd ..
返回上一级,尔后依次执行以下命令:
cd qBittorrent-release-4.3.1
./configure --disable-gui --disable-debug
make -j$(nproc)
make install
同样的,编译需等待数分钟至数小时(这取决于机器性能)。
收尾工作
6. 写入 systemd 文件
复制以下代码块的全部内容并一次性粘贴至 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
7. 初始化 qBittorrent 并开机启动
执行 qbittorrent-nox
,输入 y
并回车以确认使用协议。然后使用 Ctrl + C 键退出。
执行 systemctl enable qbittorrent
以使 qBittorrent 开机启动;
执行 systemctl start qbittorrent
以使 qBittorrent 在后台运行。
停止 qBittorrent 进程: systemctl stop qbittorrent
;
取消 qBittorrent 开机启动: systemctl disable qbittorrent
。
至此,qBittorrent 已经完全安装完成,关于 Web UI 的内容请阅读下方的“进阶用法”部分。
进阶用法
8. 访问 Web UI 并进行基础设置
访问腾讯云后台,为你的那台轻量应用服务器添加一条防火墙规则:
设置项 | 值 |
---|---|
协议 | TCP |
端口 | 8080 |
策略 | 允许 |
访问 http://服务器公网IP地址:8080/
,输入 Web UI 的初始用户名 admin
和初始密码 adminadmin
。
为了保障您的数据安全和服务器安全,请修改 Web UI 的初始用户名和初始密码。
9. 反向代理 Web UI 端口
反向代理可以实现使 Web UI 复用标准 Web 服务端口 (80, 443)、绑定域名防止端口扫描暴露服务和配置 HTTP 证书等,下面介绍在宝塔面板和 LNMP.org 一键包下使用 Nginx 反向代理 qBittorrent Web UI。本项配置完成后,可以在腾讯云后台将本服务器防火墙的 8080 端口开放的策略删除,防止被扫描。
9.1. 使用宝塔面板
登录宝塔面板后台,添加一个站点。域名自定义;PHP 版本选择“静态”,单击确定。
修改网站配置(可以先行设置 SSL 证书等),选择“反向代理”选项卡,代理名称自定义,目标URL填写 http://127.0.0.1:8080
,单击提交。
将域名解析到服务器并访问域名,效果如图:
9.2. 使用 LNMP.org 一键包
使用 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
以应用更改。
鸣谢
- Ubuntu/Debian Linux編譯qBittorrent安裝指南
原创文章,作者:iks,如若转载,请注明出处:https://www.idc.moe/archives/qcloud-Lighthouse-qBittorrent.html
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击