构建家庭NAS之三:在TrueNAS SCALE上安装qBittorrent
本系列文章索引:
构建家庭NAS之一:用途和软硬件选型
构建家庭NAS之二:TrueNAS Scale规划、安装与配置
构建家庭NAS之三:在TrueNAS SCALE上安装qBittorrent
大部分家庭NAS用户应该都会装一个下载工具。本篇以qBittorrent为例,说一下如何在TrueNAS SCALE上使用docker来安装应用。
1. 关于Docker
要顺利地使用docker,首先还是需要理解一些基本概念。
1.1 docker
什么是docker?简单地说,docker镜像(docker image)是自带运行环境的应用程序(本文会混合使用“docker镜像”和“docker应用”这两个词,表示的是同一个意思)。所以部署docker应用非常简单,把docker镜像下载下来直接运行就可以了,不需要传统应用那样复杂的安装过程。拿windows举例,安装一个应用通常需要复制文件到系统目录,安装和更新一些共享库(时不时造成软件冲突),还要修改注册表。卸载也同样麻烦。时间长了,系统里会留下很多垃圾文件和注册项,而这些问题在docker应用上都不存在。
可以把docker镜像理解成一个自带虚拟机的应用,或免安装版的应用。它运行需要的各种环境(依赖的库文件、需要创建的文件目录和配置文件、需要修改的系统文件和参数等)已经在docker镜像里设置好了,所以只需要把这个镜像像虚拟机一样运行起来就OK了。
实际上docker应用也是一个虚拟机,只不过相对于传统虚拟机,它有下面这几个特点。
- 它很轻量,更节省资源。
- 它可以和宿主机(运行TrueNAS的机器)共享文件夹,所以数据交换比起传统虚拟机方便很多。比如我们可以在docker里运行下载工具,下载的文件直接存放在nas的文件系统上。这是通过把宿主机上的文件夹映射到虚拟机里的一个文件夹来实现的。对于docker应用来说,它访问的是本虚拟机内部的一个文件夹和文件,实际上访问的是宿主机上的文件夹和文件。
- 由于有这样的文件共享机制,docker应用的配置信息和数据通常都放在docker镜像外面(宿主机或者云上),所以应用升级非常简便,只需要下载一个升级版本的docker镜像再跑起来就行了。
TrueNAS SCALE支持docker以后,极大提升了系统的可定制性和稳定性。用户可以安装自己喜欢的docker镜像来扩展功能;同时TrueNAS系统本身不会被修改,从而保障系统稳定。
1.2 k8s/k3s
说完docker,再简单地说一下K8S/K3S。K8S全名叫做Kubernetes,因为单词比较长,所以习惯取头尾各一个字母加上中间的字母数量简写为K8S。类似命名还有i18n,是国际化(Internationalization)的缩写。
那么这个K8S究竟是个什么东西呢?K8S就是运行和管理docker应用的操作系统。Windows操作系统是管理单机的资源和应用,而k8s是用来管理云上的资源和应用(把docker镜像看成是云上的应用)。
至于k3s,是k8s的简化版。K8S用来在云上大规模部署和管理docker应用,在我们的nas系统上不需要这么强大和复杂的k8s,所以TrueNAS SCALE采用了一个简化版的k3s来管理和运行docker应用。
在实际使用TrueNAS的过程中,我们基本不会直接操作k8s/k3s,TrueNAS的管理界面把这些功能隐藏在后台了,所以只需要了解概念就好。
介绍完基本概念,我们就可以开始干活了,看看如何安装和运行qBittorrent。
2. 设置下载目录和权限
为了安装qBittorrent应用,首先需要在NAS的数据集里创建一个下载目录,用来存放下载文件,并设置好相应的权限。
2.1 用户和用户组设置
后续的操作都假设已经创建了下列用户和用户组:
- 用户:lqy;用户ID:3000
- 用户组:luoma;用户组ID:3000
2.2 创建存放下载文件的数据集
-
进入TrueNAS的WEB UI,点击左边菜单栏里的“数据集”。
-
在右边的数据集列表里选择(点击)一个顶层数据集(我选择“test”数据集),在数据集“详细信息”页面点击右上角的“添加数据集”

-
输入数据集的名称(我的数据集名称是downloads),点击“保存”。这样我的数据集就创建好了。数据集的访问路径为:/mnt/test/downloads。
2.3 设置数据集的权限。
-
再次进入downloads数据集的“详细信息”页面。
-
下拉到“权限”部分,点击右上角的“编辑”。

-
在“编辑ACL”部分,把所有者和所有者组改成上面预先创建好的用户和用户组,并勾选“申请所有者”和“应用于组”。

-
拉到最下面,勾选“递归应用权限”和“将权限应用于子数据集”,并点击“保存访问控制列表”。

这样,就把downloads数据集以及其下的子目录的用户和组修改好了。
3. 安装和使用qBittorrent
3.1 安装配置
TrueNAS SCALE的应用库里有好几个下载应用,我这里使用qBitttorent。
安装部署的步骤如下:
-
登录到Web界面,点击左边菜单栏里的“应用”,再点击右上角的“探索应用程序”

-
搜索qBittorrent,点开应用,在应用的详情页面点击“安装”。
-
下拉到"User and Group Configuration",把“群组ID”设置为上面提到的"luoma"组的ID:

-
下拉到“Network Configuration”,把“Host Network"勾上。

-
在“Storage Configuration”区域:
- “类型”选择“Host Path(Paht that already exists on the system)”。
- 勾选“启用ACL”。
- "Host Path"选择在“创建存放下载文件的数据集”部分创建的“/mnt/test/downloads”。

- 在“ACL条目”部分:
- 添加一条ACL,“ID Type”选择“Entry for a GROUP”,ID使用前面创建的luoma用户组的ID(3000),“访问”选择“FULL_CONTROL Access”。
- 把下面的“Force Flag”勾选上。(如果/mnt/test/downloads文件夹里已经有文件,不选这个会报错)

- 点击最下方的“安装”,等待安装完成。
3.2 管理qBittorent Web界面密码
3.2.1 查找初始密码
qBittorrent的初始用户名为admin,但初始密码是随机生成的。可以按如下方式找到初始密码:
-
在TrueNAS管理界面选择“应用”菜单,并在右边应用列表里点击 qBitTorrent 应用程序。
-
在工作负载部分,单击该部分右下角的查看日志图标。

-
在“选择 Pod”部分,接受默认设置并单击“选择”。
-
查找日志中包含password的行并复制密码。
-
返回应用程序界面,然后转到“应用程序信息”部分,然后单击“Web Portal”图标打开qBittorrent管理应用。
-
使用用户名admin和步骤4中的密码登录。
3.2.2 更改qBitTorrent登录密码
- 登录 qBitTorrent 管理应用。
- 转到工具→选项。
- 单击“Web UI”选项卡。
- 在“验证”部分,设置新的用户名和密码并记下来。
- 向下滚动并单击“保存”。
3.2.3 关闭身份验证
关闭身份验证之后,登录qBittorrent就不需要输入用户名和密码了。
首先需要知道你自己的IP地址和子网掩码。我自己的ip地址/子网掩码为192.168.1.XXX/255.255.255.0,因此我输入的实际IP地址是192.168.1.0/24。读者可以根据自己的网络地址进行调整。
- 登录 qBitTorrent 应用程序。
- 转到工具→选项。
- 单击“Web UI”选项卡。
- 转到“验证”部分。
- 勾选“对IP子网白名单中的客户端跳过身份验证”
- 在下面的框中输入您的网络地址。(例如192.168.1.0/24)
- 向下滚动并单击“保存”。
4. 小结
这样qBittorrent就安装好了。可以愉快地找下载种子玩耍了。
安装配置要点如下:
- 下载目录(/mnt/test/downloads)的所有者ID/用户组ID分别设置为3000/3000(详见“设置下载目录和权限”部分),权限设置为同组用户可读、写和执行。
- 运行qBittorrent的用户组ID也设置为3000,因此对/mnt/test/downloads目录具有读、写和执行权限。这里的用户ID不重要,保留系统默认设置。
- 网络要配置成“host network”(见“安装配置部分”第4步)。
如果出现问题,可以再检查一下这几项设置。
相关文章:
构建家庭NAS之三:在TrueNAS SCALE上安装qBittorrent
本系列文章索引: 构建家庭NAS之一:用途和软硬件选型 构建家庭NAS之二:TrueNAS Scale规划、安装与配置 构建家庭NAS之三:在TrueNAS SCALE上安装qBittorrent 大部分家庭NAS用户应该都会装一个下载工具。本篇以qBittorrent为例&…...
Matplotlib中文显示解决方案:字体渲染机制与font.sans-serif设置
在Matplotlib中,设置font.sans-serif参数为中文字体如SimHei,可以使图表支持中文显示的原因在于Matplotlib的字体渲染机制。以下是详细解释: 1. **字体支持**: Matplotlib默认使用的字体可能不支持中文字符。大多数西方字体只包含…...
docker +tmux 远程本地gdb调试
文章目录 远程调试docker pull失败docker上容器运行程序失败宿主机远程调试docker中运行的程序环境准备调试步骤 本地调试bugpwngdbtmuxTmux复制粘贴到其他地方pwngdb和tmux优化~~感觉用了大佬的镜像后宿主机来做pwn题都不香了~~ 远程调试 但目前不知道如何实现可以边跟着脚本…...
计算机视觉全系列实战教程 (十三):图像形态学操作
1.基本概述 (1)What 图像的形态学操作的本质:集合间的运算 几何学 (2)Why(有什么用途) 消除噪声、边缘提取、区域填充、细化和粗化、分割独立的图像元素、求图像梯度、求极大值区域或极小值区域等。 (3)Which(有哪些常见的形态学操作) A.膨胀 使得…...
python的 pyside2 安装
pip install pyside2 pip install pyqt5-tools pycharm 在pychar 的Main Menu--setings--tool--External-tools 点击 新增自定义工具 1)自定义 QtDesigner 目的:用于生成.ui文件Name :QtDesigner Group :Qt Program &a…...
R语言——数据与运算
练习基本运算: v <- c(2,4,6,9)t <- c(1,4,7,9)print(v>t)print(v < t)print(v t)print(v!t)print(v>t)print(v<t) v <- c(3,1,TRUE,23i)t <- c(4,1,FALSE,23i)print(v&t)print(v|t)print(!v)v <- c(3,0,TRUE,22i)t <- c(1,3,T…...
非强化学习的对齐方法
在文章《LLM对齐“3H原则”》和《深入理解RLHF技术》中,我们介绍了大语言模型与人类对齐的“3H原则”,以及基于人类反馈的强化学习方法(RLHF),本文将继续介绍另外一种非强化学习的对齐方法:直接偏好优化&am…...
写一个坏越的个人天地(三)
昨天卡巴卡巴还是投出了学习代码以来的第一份简历,遇到好的岗位还是想争取下的吧,虽然我觉得大概率还是gg了。 昨天完成了首页的上半部分 下半部分我的构思是左右栏,左侧为菜单栏,右侧为业务栏,左侧调整右侧router进行切换内容 可以用来展示js css的小demo 稍微调整下ro…...
【学习笔记】CSS
CSS 1、 基础篇 1.1、选择器 1.2、长度单位 1.3、CSS2 常用属性 1.4、盒模型 1.5、浮动 1.6、定位 position2、 CSS3 2.1、新增长度单位 2.2、新增颜色表示 2.3、新增选择器 2.4、新增盒子属性 2.5、新增背景属性 …...
与亚马逊云科技深度合作,再获WAPP、ISV认证
上半年,VERYCLOUD睿鸿股份加入亚马逊云科技的WAPP(Well-Architected Partner Programs)和ISV加速计划(ISV Accelerate Program),为客户带来更坚实优质的海外云服务。 Well-Architected 获得WAPP这项认证代表…...
idea 如何查看项目启动的端口号
方式一:查看Run/Debug Configurations: 打开IntelliJ IDEA,点击菜单栏的Run,然后选择Edit Configurations...,或者直接使用快捷键(通常是Shift Alt F10然后选择Edit Configurations)。 在打开的Run/Debug…...
年薪超过30万的网工,需要具备什么技能?
网工是一个各行各业都需要的职业,工作内容属性决定了它不会只在某一方面专精,需要掌握网络维护、设计、部署、运维、网络安全等技能。 那么,网络工程师的技术水平体现在哪些方面?今天就跟你唠唠这个。 01 先来测测你的网络设计能力…...
【杂记-浅谈OSPF协议中的邻居关系与邻接关系】
OSPF协议中的邻居关系与邻接关系 1、邻居关系2、邻接关系3、DR-other之间的邻居关系 在OSPF协议中,Neighbor relationship 邻居关系和Adjacency 邻接关系是两个核心概念,它们在路由器之间建立正确的路由信息传递机制方面起着关键作用。 1、邻居关系 邻…...
白银价格行情分析兼顾基本面和技术面
许多投资者在进行白银交易时都非常喜欢看技术指标和技术分析。他们浏览不同的网站,看各种各样的白银行情分析信息。网上的白银分析信息网站非常的多,讲解白银交易技巧的书籍也数不胜数,有翻译国外的,也有国人自己编写的。有的讲的…...
搜维尔科技推出绿幕抠屏虚拟制作演示项目
搜维尔科技推出绿幕抠屏虚拟制作演示项目 搜维尔科技推出绿幕抠屏虚拟制作演示项目...
大数据集群搭建基础:Linux下MySQL安装!!!
基于提供的MySQL安装包的安装步骤 前提:MariaDB已卸载 yum remove mariadb-libs安装mysql-community-common包 这个包含有MySQL社区版的公共文件和脚本,是安装其他组件的基础。 sudo rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm安装m…...
FLASH闪存
FLASH闪存 程序现象: 1、读写内部FLASH 这个代码的目的,就是利用内部flash程序存储器的剩余空间,来存储一些掉电不丢失的参数。所以这里的程序是按下K1变换一下测试数据,然后存储到内部FLASH,按下K2把所有参数清0&…...
GPT-5智能新纪元的曙光
在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布,给出了肯定答案并表示将在一年半后发布。穆拉蒂在采访中还把GPT-4到GPT-5的飞跃描述为高中生到博士生的成长。 这一爆炸性的消息,震动了整体…...
Qt | QPalette 类(调色版)
01、简介 1、需要用到 QWidget类中的如下属性 palette:QPalette 访问函数:const QPalette &palette() const; void setPalette(const QPalette&); 该属性描述了部件的调色板。在渲染标准部件时,窗口部件的样式会使用调色板,而且不同的平台或不同的样式通常具…...
Linux操作系统进程同步的几种方式及基本原理
1,进程同步的几种方式 1.1信号量 用于进程间传递信号的一个整数值。在信号量上只有三种操作可以进行:初始化,P操作和V操作,这三种操作都是原子操作。 P操作(递减操作)可以用于阻塞一个进程,V操作(增加操作)可以用于…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)
漏洞概述 漏洞名称:Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号:CVE-2023-25194 CVSS评分:8.8 影响版本:Apache Kafka 2.3.0 - 3.3.2 修复版本:≥ 3.4.0 漏洞类型:反序列化导致的远程代…...
