NAS套件及多端操控软件研发调研

NAS相关知识

NAS是什么?

NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。国际著名的NAS企业有Netapp、EMC、OUO等。

NAS(Network Attached Storage,网络附加存储)是一种专为数据存储设计的独立设备,你可以把它想象成一个“私有云硬盘”,但完全由你自己控制。


简单理解:

  • 像U盘一样插在路由器上:NAS通过网线连接路由器,所有联网设备(手机、电脑、电视等)都能随时访问它存储的文件。
  • 24小时在线的“家庭图书馆”:即使你的电脑关机,NAS依然运行,随时可以读写数据。

核心功能:

  1. 集中存储
    把分散在手机、电脑、移动硬盘里的文件(照片、视频、文档)统一存到NAS,避免数据丢失或混乱。
  2. 多设备共享
    家人或同事可以通过网络同时访问同一份文件,比如一起看家庭相册或协作办公。
  3. 自动备份
    设置规则后,NAS会自动备份手机照片、电脑文件,甚至监控摄像头录像。
  4. 私有云同步
    外出时通过互联网访问家里的NAS,像用百度网盘一样取文件,但空间更大(TB级)、速度更快(无上传限速)。
  5. 媒体中心
    搭建个人影音库(电影、音乐、电子书),通过电视或手机直接在线播放,无需依赖爱奇艺、网易云等平台。

RADI

RAID(磁盘阵列)就像给NAS硬盘加了「安全保险箱」,用不同的组合方式让数据更安全、读写更快。用生活中的例子帮你理解:


1. RAID 0:飙车模式(速度优先)

原理:把2块硬盘绑在一起,文件被切成两半同时存进去(比如A存“前半段”,B存“后半段”)。
好处:读写速度翻倍(像双人搬砖效率翻倍)。
缺点:任何一块硬盘坏了,所有数据都没了(飙车不系安全带,翻车就惨)。
适合谁:玩大型游戏/剪辑视频需要高速读写,但不怕丢数据的人。


2. RAID 1:双保险模式(安全优先)

原理:2块硬盘互为“镜像”,数据完全复制一份(A存什么,B也存一模一样的一份)。
好处:一块硬盘坏了,另一块还能救命(像双U盘存同样文件)。
缺点:只能用到单块硬盘的容量(2块2TB硬盘只能当1块用)。
适合谁:家庭存照片/视频,宁可浪费空间也不能丢数据的人。


3. RAID 5:均衡模式(安全+容量)

原理:至少3块硬盘,数据和“密码”(校验码)分散存放在所有硬盘上。
好处

  • 任意一块硬盘坏了能恢复数据(像拼图缺一块也能靠密码补全);
  • 容量利用率更高(3块2TB硬盘能用4TB,损失1块做备份)。
    缺点:需要至少3块硬盘,重建数据时速度较慢。
    适合谁:小公司存客户资料、团队协作文件,兼顾安全和成本。

4. RAID 10:豪华组合(高速+安全)

原理:先用2块硬盘做RAID 1备份,再用另外2块做RAID 0提速。
好处

  • 任意一块硬盘坏都能恢复;
  • 读写速度接近RAID 0的两倍。
    缺点:至少4块硬盘,成本最高(4块2TB硬盘只能用2块的容量)。
    适合谁:企业存数据库、银行交易记录等关键数据。

RAID的「隐藏技能」

  • 热备盘:预留一块空硬盘当“备用胎”,某块硬盘坏了会自动顶上去。
  • 重建数据:换新硬盘后,RAID能自动把数据“复活”,但重建期间NAS性能会下降。
  • 控制器:NAS主板上的特殊芯片负责管理RAID,像“指挥官”协调所有硬盘工作。

如何选择RAID模式?

全屏复制

需求

推荐RAID模式

需要硬盘数

实际可用容量

最大化速度

RAID 0

2块

总容量100%

数据绝对安全

RAID 1

2块

50%

安全+性价比

RAID 5

3块及以上

损失1块容量

企业级安全+高速

RAID 10

4块及以上

50%

举个真实场景例子:

  • 家庭用NAS存照片和电影:选RAID 1(2块硬盘互为备份);
  • 视频剪辑工作室:选RAID 5(3块硬盘,既能防丢数据又能存更多素材);
  • 公司财务数据库:选RAID 10(4块硬盘,速度够快还能防两块硬盘同时坏)。

一句话总结
RAID就像给硬盘上保险:

  • 要速度 → RAID 0(冒险型);
  • 要安全 → RAID 1/5/10(保守型);
  • 钱多任性 → RAID 10(土豪型)。

总结

带网络组件的存储器,没有操作页面的电脑。

全屏复制

场景

普通移动硬盘

云盘(百度网盘)

NAS

存1000张照片

插电脑才能传,易丢失

免费版太小,上传慢

自动备份,全家随时看

团队改方案

文件反复发邮件,乱码

链接分享麻烦,限速

共享文件夹实时协作

看4K电影

接电视播放卡顿

需VIP否则缓冲10分钟

局域网传输秒开不卡

硬盘坏了

数据全丢

账号被盗或服务器崩塌

多硬盘备份自动修复

开发套件调研对象

nastool

资料来源:https://zhuanlan.zhihu.com/p/688170308

Nastool是什么?

简单来说就是一个媒体库资源归集整理的工具,可以通过内置搜索引擎,来自动订阅下载影视资源,配合媒体服务器实现观影自动化

安装使用nastool等套件

环境搭建:

系统:Linux(教程演示)

部署docker参考:【保姆级教程】Docker安装教程

部署dockercompose:(可选)

#获取 Docker Compose 的可执行文件
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
#查看版本号
docker-compose --version

第一步:建议先安装媒体服务器

本次用到的是plex服务器

安装教程参考:【保姆级教程】Plex媒体服务器安装详细步骤

第二步:安装qb下载器

使用以下命令从 Docker Hub 上拉取 qBittorrent 镜像:

docker pull linuxserver/qbittorrent   #默认最新的镜像
docker pull linuxserver/qbittorrent:14.3.9  #可以指定拉取镜像版本,建议使用14.3.9版本

使用以下命令创建并运行 qBittorrent 容器:

docker run -d \
  --name qbittorrent \
  -p 8080:8080 \                                      #默认控制台端口
  -e PUID=1000 \                                    #宿主机用户和组的 ID
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -v /path/to/config:/config \                  #替换为你希望存储 qBittorrent 配置文件的本地路径
  -v /path/to/downloads:/downloads \   #替换为你希望存储下载文件的本地路径
  -v /home/TV/Movies:/downloads_m \  #添加媒体下载路径(配合nastool自动下载分类)
  --restart unless-stopped \
  linuxserver/qbittorrent


 

现在可以通过浏览器访问 http://localhost:8080 进入 qBittorrent 的 Web 控制台

默认用户名:admin;密码:adminadmin


 


 

进入管理界面,默认语言英语

可以在选项的webui界面,用户界面语言选择:简体中文

拉到窗口最下面,保存即可生效


 


 

为配合nastool实现自动下载

需要在选项的下载配置界面,把默认Torrent管理模式“手动”改成“自动”


 


 

第三步:安装nastool

目前官方镜像已停更,但不影响使用;

重点:仅限PT用户,需要认证后使用

docker pull nastool/nas-tools:latest     #拉取官方镜像

非PT用户建议使用二开版本

docker pull hsuyelin/nas-tools:latest   #拉取二开版本镜像

使用以下命令创建并运行 nastool容器:

docker run -d \
    --name nas-tools \
    --hostname nas-tools \
    -p 3000:3000 \                                            #默认控制台端口
    -v /path/to/config:/config \                       #替换为你希望存储 nastool配置文件的本地路径
    -v /home/TV:/TV \                                      # 媒体目录,多个目录需要分别映射进来
    -e PUID=1000 \                                          #宿主机用户和组的 ID
    -e PGID=1000 \
    -e UMASK=000 \                                        # 掩码权限,默认000,可以考虑设置为022
    -e NASTOOL_AUTO_UPDATE=false \         # 如需在启动容器时自动升级程程序请设置为true 
    -e NASTOOL_CN_UPDATE=false \             # 如果开启了容器启动自动升级程序,并且网络不太友好时,可以设置为true,会使用国内源进行软件更新
    hsuyelin/nas-tools

现在可以通过浏览器访问 http://localhost:3000 进入nastool的 Web 控制台

默认用户名:admin;密码:password


 


 

进入管理界面后,会跳出个窗口

提示:“请先配置TMDB API Key,并修改登录密码!”


 


 

TMDB是什么?

TMDB是一个在线电影数据库和社区平台,提供了有关电影、电视节目、演员、编剧、导演等相关信息的广泛数据库;(国外版豆瓣)

nastool的搜索引擎以及刮削数据主要依赖于TMDB的数据

如何获取TMDB API Key

登录TMDB官网:The Movie Database (TMDB)

用邮箱注册账号并登录

找到个人资料,单击“用户设置”,进入“API”界面

单击“click here”,进入API申请界面


 


 

此时会询问需要注册哪种类型的API

单击“Developer”,选择个人开发


 


 

确认条款,拉到最下面,点击“接受”


 


 

需要填写API的相关信息

个人信息可以如实填写,确认后提交


 


 

提交后,基本是马上就会收到回复,并得到API密钥


 


 

复制API密钥,保存到nastool即可


 


 

同步修改登录密码,重新录入密码,点击保存即可


 


 

优先配置下载器

设置——下载器——新增下载器


 


 

根据安装的下载器选择对应类型,教程此处选择“qb”

输入对应下载器的访问地址端口和登录信息

建议按图配置区分下载目录,方便后续的管理和刮削


 


 

配置完成后,单击左下角的“测试”

配置成功后,会显示测试成功,说明已经成功连接到下载器


 


 

确认新增后,刚刚添加的下载器就会出现在页面

点击下载器右上角的“★”,设置为默认下载器

然后点击右上角“下载设置”,进入配置


 


 

系统会有个默认的预设配置,会自动加载默认下载器


 


 

预设配置无法修改,如有其他需求可以新增下载设置,自定义配置


 


 

接着需要配置索引器

单击“内建索引器”,进入配置


 


 

索引器:私有&公开

私有:添加站点后,即可在这里显示并选择

公开:自动显示支持的站点

这里单击:“全选”即可


 


 

接着配置过滤规则

默认自带“日常观影”&“洗版收藏”&“不过滤”模板,可以直接使用

也可以根据自己需求,新增规则

注意:plex不支持原盘播放,jellyfin&emby支持


 


 

接着我们进入订阅管理,配置默认的订阅设置(订阅时可自动带出)


 


 

以电影配置为例:

质量&分辨率:默认全部,如有特殊需求可以指定参数,会根据过滤规则下载

过滤规则:默认站点规则,不适用公开;选择其他配置,这里选择“日常观影”

下载设置:默认站点规则,不适用公开;选择其他配置,这里选择“预设”

搜索站点:“全选”


 


 

最后就是订阅影视

两种方式:主动搜索&探索榜单推荐

主动搜索:

顶端搜索框输入影视名称,回车搜索即可

鼠标移至搜索结果,单击右下角的“❤”,即可加入订阅


 


 

防误触,会有个确认订阅


 


 

确认后即可订阅成功,此时的订阅设置是默认设置

可以单击“编辑订阅”,对当前影视重新自定义订阅配置


 


 

回到电源订阅页面,可以看到刚刚添加的影视处于搜索状态


 


 

探索榜单推荐

展开“探索”,内置6种类型的推荐榜单

可以即时获取当下热门、流行影视资讯,按需求订阅即可


 


 

订阅完成后,等待搜索引擎检索资源

如果没有检索到,会定期检索直至下载到资源后关闭订阅

检索到资源:会下发任务到下载器,根据影视类型,下载到对应的目录

第四步:返回plex服务器确认资源加载

下载完成后,回到plex服务器,就可以看到电影已经添加成功

如果没有,可以尝试手动扫描一下


 


 

第五步:下载媒体播放器观影

多平台客户端下载参考:【家庭服务器】私有影音服务器怎么玩?

dockercompose配置(参考)

创建配置文件存放目录

sudo mkdir dockercompose

在新创建的文件下,新建配件文件

cd /dockercompose
sudo touch docker-compose.yml

编辑配置文件

sudo nano docker-compose.yml

粘贴下列命令参数(参考)


 

---
version: "3"
services:
  nas-tools:
    image: hsuyelin/nas-tools:latest   #源版已停更:nastool/nas-tools:latest
    ports:
      - 3000:3000         #默认的webui控制端口
    volumes:
      - ./nastools:/config    #冒号左边请修改为你想保存配置的路径
      - /media/qb:/qb    #媒体目录,多个目录需要分别映射进来,需要满足配置文件说明中的要求
    environment:
      - PUID=1000     #想切换为哪个用户来运行程序,该用户的uid
      - PGID=1000     #想切换为哪个用户来运行程序,该用户的gid
      - UMASK=022  掩码权限,默认000,可以考虑设置为022
      - NASTOOL_AUTO_UPDATE=false   #如需在启动容器时自动升级程程序请设置为true
      - NASTOOL_CN_UPDATE=false  #如果开启了容器启动自动升级程序,并且网络不太友好时,可以设置为true,会使用国内源进行软件更新
      - REPO_URL=https://ghproxy.com/https://github.com/NAStool/nas-tools.git   #当你访问github网络很差时,可以考虑解释本行注释
    restart: always
    network_mode: bridge
    hostname: nas-tools
    container_name: nas-tools

  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:14.3.9 #此处推荐下载14.3.9版本
    container_name: qbittorrent
    restart: unless-stopped
    network_mode: host
    environment:
      - PUID=1000  #注意替换
      - PGID=1000   #注意替换
      - TZ=Asia/Shanghai
      - WEBUI_PORT=8081  #QB webui的端口,你可以换成其他端口
    volumes:
      - ./qbittorrent2:/config       #自定义配置数据路径
      - /media/qb:/downloads    #自定义下载文件夹

  plex:
    container_name: plex
    image: plexinc/pms-docker
    restart: unless-stopped
    network_mode: host
    environment:
      - TZ=<timezone>
      - PLEX_CLAIM=<claimToken>
    volumes:
      - ./plex:/config                   #自定义配置数据路径
      - ./plex/temp:/transcode #自定义临时文件路径
      - /media/qb:/qb            #自定义媒体库路径

保存退出后,运行dockercompose

sudo docker-compose up -d

开发套件方案

一、项目开发步骤与技术细节
1. 系统架构设计
模块划分

全屏复制

模块

子模块

技术选型

功能说明

NAS端

下载引擎

qBittorrent

/ Aria2

处理种子/Magnet/直链下载

媒体管理

Jellyfin

/ 自定义脚本

文件整理、元数据生成、海报墙

任务调度

Celery

/ APScheduler

定时扫描新片、触发下载

后端

API服务

FastAPI

(Python)

提供RESTful接口供App调用

数据库

SQLite

/ PostgreSQL

存储用户、任务、订阅数据

前端

H5界面

Vue.js + Vant

响应式网页管理电影库

手机App

React Native

跨平台App控制下载任务

安全

用户认证

JWT + OAuth2

绑定资源网站账号,验证购买记录

内容加密

AES-256

本地加密存储,解密播放


2. 核心开发任务分解
2.1 自动化下载模块

步骤1:网站内容抓取

    • 技术Selenium 模拟浏览器登录资源网站,解析4K电影页面。
    • 代码示例
python


from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.jiyinge.com")
driver.find_element(By.ID, "username").send_keys("user")
driver.find_element(By.ID, "password").send_keys("pass")
# 解析新片列表
new_movies = driver.find_elements(By.CSS_SELECTOR, ".movie-card")
    • 注意事项:设置随机延迟避免反爬虫,遵守资源网站Robots协议。

步骤2:下载任务触发

    • 技术:调用 qBittorrent API 添加下载任务。
    • 代码示例
python


import qbittorrentapi
qbt = qbittorrentapi.Client(host='localhost', username='admin', password='admin')
qbt.torrents_add(urls="magnet:?xt=urn:btih:...")

步骤3:文件整理与元数据生成

    • 技术:使用 TheMovieDB API 生成 NFO 文件。
    • 代码示例
python


def generate_nfo(movie_name):
    data = fetch_tmdb_data(movie_name)
    with open(f"{movie_name}.nfo", "w") as f:
        f.write(f"<title>{data['title']}</title>\n<year>{data['year']}</year>")
2.2 后端API开发
  • FastAPI 接口示例
python


from fastapi import FastAPI, Depends, HTTPException
from pydantic import BaseModel
from typing import List

app = FastAPI()

class DownloadTask(BaseModel):
    url: str
    type: str  # seed/magnet/direct

@app.post("/download")
def start_download(task: DownloadTask, token: str = Depends(verify_jwt)):
    if task.type == "magnet":
        qbt.torrents_add(urls=task.url)
    return {"status": "success"}
2.3 手机App开发
  • React Native 通知推送
javascript


// 使用 Firebase 实现下载完成推送
messaging().onMessage(async remoteMessage => {
  Alert.alert('下载完成', remoteMessage.notification.body);
});
2.4 H5前端开发
  • Vue.js 页面结构
vue


<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索电影..." />
    <div v-for="movie in movies" :key="movie.id">
      {{ movie.title }} - {{ movie.year }}
      <button @click="downloadMovie(movie)">下载</button>
    </div>
  </div>
</template>

3. Docker部署方案

docker-compose.yml

yaml


version: '3.8'
services:
  qbit:
    image: linuxserver/qbittorrent
    ports: ["8081:8081"]
    volumes: ["./downloads:/downloads"]

  jellyfin:
    image: jellyfin/jellyfin
    ports: ["8096:8096"]
    volumes: ["./movies:/media"]

  backend:
    build: ./backend
    ports: ["8000:8000"]
    depends_on: ["qbit", "jellyfin"]

  frontend:
    build: ./frontend
    ports: ["80:80"]
    depends_on: ["backend"]

二、可运行Demo指南
1. Demo功能
  • 自动抓取资源网站新片并下载。
  • 手机App/H5实时查看下载进度。
  • 下班前添加电影,回家后自动完成下载并整理到Jellyfin。
2. 快速启动
  1. 克隆项目:
bash


git clone https://github.com/yourname/nas-cinema.git
cd nas-cinema
  1. 启动服务:
bash


docker-compose up -d
  1. 访问:
    • H5界面:http://nas-ip:80
    • qBittorrent控制台:http://nas-ip:8081
    • Jellyfin媒体库:http://nas-ip:8096

三、用户使用白皮书
1. 安装指南

步骤1:NAS环境准备

  • 确保NAS支持Docker(如群晖DSM 7.0+)。
  • 安装Docker Compose:
bash


sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

步骤2:部署套件

  • 上传项目文件到NAS,执行:
bash


docker-compose up -d
2. 配置资源网站账号
  • 登录H5界面(http://nas-ip:80),绑定资源网站账号。
  • 验证购买记录以确保合规下载。
3. 使用场景操作指南

场景1:自动下载新片

  • 在App中订阅类型(如科幻/动作)。
  • 系统定时扫描资源网站新片,自动下载并整理到Jellyfin。

场景2:远程管理下载队列

  • 在办公室打开手机App,添加《XXX 4K》下载任务。
  • NAS自动触发下载,实时查看进度条。

场景3:回家即享电影

  • 下班前在App中添加电影,设置优先级。
  • 到家后,电影已整理完成,通过Jellyfin播放。

资料:

【高阶教程】Nastool打造全自动追剧影音服务器https://zhuanlan.zhihu.com/p/688170308

nas通俗理解:小白入门NAS—快速搭建私有云教程系列(一)[通俗易懂]-腾讯云开发者社区-腾讯云

NAS 部署内网利器,文档/聊天/办公工具轻松搞定:https://zhuanlan.zhihu.com/p/1918712768493762350

手把手教你在群晖NAS上玩转Docker应用安装:https://zhuanlan.zhihu.com/p/1923859114255184526

如何远程访问家里的NAS?简单快速实现将本地内网IP端口让公网互联网异地连接如何远程访问家里的NAS?简单快速实现将本地内网IP端口让公网互联网异地连接_nas怎么远程访问-优快云博客

没有公网ip如何实现外网远程访问nas?怎样在外面访问家里内网nas?

https://zhuanlan.zhihu.com/p/1911439442402608376

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值