前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用腾讯云轻量编译安装 qBittorrent 搭建下载环境

使用腾讯云轻量编译安装 qBittorrent 搭建下载环境

作者头像
Nyarime
发布于 2021-12-14 01:22:13
发布于 2021-12-14 01:22:13
5.2K00
代码可运行
举报
文章被收录于专栏:云外科技云外科技
运行总次数:0
代码可运行

  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 获得最新软件包列表并更新系统版本号和基础软件包。 等待命令执行完毕后,按顺序输入以下命令安装必要的依赖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 以上的新版本)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 日)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

  依次执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 .. 返回上一级,尔后依次执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd qBittorrent-release-4.3.1
./configure --disable-gui --disable-debug
make -j$(nproc)
make install

  同样的,编译需等待数分钟至数小时(这取决于机器性能)。

收尾工作

6. 写入 systemd 文件

  复制以下代码块的全部内容并一次性粘贴至 SSH 窗口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 块内添加以下字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【Java】java 集合框架(详解)
🔥 Java集合框架 提供了一系列用于存储和操作对象组的接口和类。这些工具是为了解决不同数据结构通用操作的需求而设计的。集合框架主要包括两种类型的容器:
IsLand1314
2025/06/02
1480
【Java】java 集合框架(详解)
Java学习笔记——集合
存储对象可以使用数组 (基本数据类型 & 引用数据类型) 和集合 (引用数据类型),用数组存储对象的弊端有:一旦创建,其长度不可变;数组中真正存储的对象个数不可知,除非自定义类。使用集合可以解决这些问题。
梦飞
2022/06/23
2880
Java学习笔记——集合
五、集合基础【黑马JavaSE笔记】
注:以上方法时List集合特有的方法,Collection集合没有这些方法,但是ArrayLIst集合有这些方法,因为ArrayList继承自List集合。
啵啵鱼
2022/11/23
7790
五、集合基础【黑马JavaSE笔记】
Java基础(十九):集合框架
List除了从Collection集合继承的方法外,List 集合里添加了一些根据索引来操作集合元素的方法
Java微观世界
2025/01/21
3580
Java基础(十九):集合框架
Java学习笔记(三):集合类与常用数据结构的典型用法
foochane :https://foochane.cn/article/2019122801.html 1 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合A
foochane
2020/02/13
9350
Java基础之集合
-集合结构只要发生改变,迭代器必须重新获取,如果还是用的之前的迭代器,就会出现异常java.util.ConcurrentModificationException
shaoshaossm
2022/12/27
5410
Java基础之集合
50道Java集合经典面试题(收藏版)
Collection.sort是对list进行排序,Arrays.sort是对数组进行排序。
捡田螺的小男孩
2020/06/19
9300
50道Java集合经典面试题(收藏版)
阶段01Java基础day18集合框架04
声明:本文为原创,作者为 对弈,转载时请保留本声明及附带文章链接:http://www.duiyi.xyz/c%e5%ae%9e%e7%8e%b0%e9%9b%b7%e9%9c%86%e6%88%98%e6%9c%ba-25/
对弈
2019/09/04
5590
【17】JAVASE-集合专题【从零开始学JAVA】
Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。
用户4919348
2024/05/25
2070
【17】JAVASE-集合专题【从零开始学JAVA】
Java基础——集合
集合是java中提供的一种容器,可以用来存储多个数据,集合框架主要java.util 包中,存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map。 Collection是单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实现类有java.util.HashSet和java.util.TreeSet。
羊羽shine
2019/05/28
6260
13 Java 集合
Java 集合定义了两种基本的数据结构,一种是 Collection,表示一组对象的集合;另一种是Map,表示对象间的一系列映射或关联关系。Java 集合的基本架构如下图。
acc8226
2022/05/17
2.4K0
13  Java 集合
Java官方笔记14流
The Stream API is probably the second most important feature added to Java SE 8, after the lambda expressions. In a nutshell, the Stream API is about providing an implementation of the well known map-filter-reduce algorithm to the JDK.
dongfanger
2023/07/20
2210
Java 集合补充
集合和数组不一样,数组元素可以是基本类型的值,也可以是对象(的引用变量),集合里只能保存对象(的引用变量)。
二十三年蝉
2018/08/01
1.1K0
Java 集合补充
Java学习之集合篇
上篇文章的常用类,其实就已经讲到了,这个ArrayList集合,但是ArrayList只是集合中的其中一种,那这篇文章就来讲讲关于集合的一些对象。
全栈程序员站长
2022/07/13
3350
Java 类集初探
List属于接口,如果想使用接口进行操作,就必须存在子类;使用 ArrayList 子类实现(和Vector子类)
Mirror王宇阳
2020/11/10
5940
Java(集合④)
当方法的参数列表数据类型已经确定,但是参数个数不确定,就可以使用可变参数;
全栈开发日记
2022/05/12
8060
Java 集合框架全景解析:从原理到实战
在 Java 编程中,集合框架(Collection Framework)是开发者处理数据结构的核心工具。它为开发者提供了一整套结构化的数据容器,帮助我们以更高效、更面向对象的方式组织和操作数据。
用户11690571
2025/06/06
760
Java 集合框架全景解析:从原理到实战
Java类集框架详细汇总
Java的类集框架比较多,也十分重要,在这里给出图解,可以理解为相应的继承关系,也可以当作重要知识点回顾;
BUG弄潮儿
2021/04/12
7470
Java-集合
哈喽!大家好,我是小简。今天开始学习《Java-集合》,此系列是我做的一个 “Java 从 0 到 1 ” 实验,给自己一年左右时间,按照我自己总结的 Java-学习路线,从 0 开始学 Java 知识,并不定期更新所学笔记,期待一年后的蜕变吧!<有同样想法的小伙伴,可以联系我一起交流学习哦!>
小简
2023/01/04
1.2K0
Java-集合
务实java基础之集合总结
Java 提供了容纳对象(或者对象的句柄)的多种方式。其中内建的类型是数组,此外, Java 的工具库提供了一些 “集合类”,利用这些集合类,我们可以容纳乃至操纵自己的对象。 声明:本篇博客内容参考自《java编程思想》,代码均来自书中,大部分内容截取自该书
老马的编程之旅
2022/06/22
6460
务实java基础之集合总结
相关推荐
【Java】java 集合框架(详解)
更多 >
目录
  • 准备工作
    • 1. 系统选用
    • 2. 环境配置
    • 3. 源码下载
  • 进行编译
    • 4. 编译 Libttorrent
    • 5. 编译 qBittorrent
  • 收尾工作
    • 6. 写入 systemd 文件
    • 7. 初始化 qBittorrent 并开机启动
  • 进阶用法
    • 8. 访问 Web UI 并进行基础设置
    • 9. 反向代理 Web UI 端口
      • 9.1. 使用宝塔面板
      • 9.2. 使用 LNMP.org 一键包
  • 鸣谢
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档