在家庭影音和自动化管理领域,NAS(网络附加存储)早已超越了简单的文件存储功能,成为集下载、整理、播放于一体的家庭媒体中心。然而,面对PT/BT站点、豆瓣、TMDB等多个信息源,如何自动化地完成影视资源的搜索、下载、识别、整理和通知,一直是个繁琐的痛点。手动操作不仅耗时耗力,还容易出错。

NASTool 的出现,正是为了解决这一系列自动化难题。它是一款强大的NAS媒体库自动化管理工具,能够将你的NAS打造成一个智能的“私人影院管家”。近期,NASTool V2 版本的发布,带来了更现代化的界面、更稳定的架构以及对更多NAS平台的广泛支持,包括群晖(Synology)、飞牛(FeiniuOS)、极空间(ZSpace)、绿联(UGREEN)和威联通(QNAP)等主流品牌,让更多用户能够轻松享受到自动化带来的便利。

本文将为你带来一份从零开始的 NASTool V2 保姆级安装与配置教程。无论你是上述任一NAS品牌的新手用户,还是希望从旧版升级的资深玩家,都能通过本文掌握完整的部署流程、核心功能配置以及排错技巧,最终实现影视资源的全自动管理。

1. NASTool V2 核心概念与工作原理

在开始动手安装之前,理解 NASTool 的核心价值和工作机制,能帮助你更好地进行后续的配置和问题排查。

1.1 NASTool 是什么?

NASTool 是一个开源项目,其主要功能是自动化管理你的媒体库。你可以将它理解为一个高度可定制的“机器人”或“调度中心”。它的核心工作流程是: 监控 -> 识别 -> 下载 -> 整理 -> 通知

  • 监控 :监控你指定的PT/BT站点(通过RSS或API)、豆瓣想看列表、TMDB收藏夹等,发现新的、符合你需求的资源。
  • 识别 :利用强大的刮削器(如 TMDB、豆瓣)对下载完成的文件进行识别,获取准确的影视元数据(如海报、简介、演员、评分、分类等)。
  • 整理 :根据你设定的命名规则和目录结构,将识别后的文件自动移动到媒体库的正确位置(例如: /media/movies/电影名 (年份)/电影名 (年份).mkv )。
  • 通知 :通过 Telegram、微信、Bark 等渠道,向你发送任务执行结果的通知(如下载完成、整理成功、识别失败等)。

1.2 V2 版本带来了哪些重要更新?

V2 版本是基于 V1 版本的一次重大重构和升级,主要体现在以下几个方面:

  1. 技术栈现代化 :后端从 Python 迁移到了性能更好、更易于维护的现代框架;前端界面也进行了全面重写,交互更流畅。
  2. 安装方式统一 :大力推广并优化了 Docker 安装方式。Docker 提供了近乎一致的环境,彻底解决了因系统依赖、Python版本不同导致的“我能运行,你报错”的难题,使得跨平台(群晖、飞牛、极空间等)部署变得异常简单。
  3. 配置逻辑优化 :对部分复杂配置进行了简化和重组,降低了新手入门门槛。
  4. 更好的扩展性 :为未来的插件系统和更丰富的媒体源支持打下了基础。

1.3 它如何与你的NAS生态协作?

NASTool 本身不提供下载和媒体播放功能,它是一个“大脑”,需要指挥“四肢”工作。典型的家庭媒体中心架构如下:

互联网资源站 (PT/BT/RSS) 
        ↓
    NASTool (大脑:监控、决策、调度)
        ↓
    下载工具 (四肢:执行下载)
    (如:qBittorrent, Transmission)
        ↓
    NAS存储 (仓库:存放文件)
        ↓
    媒体服务器 (展示:播放和管理)
    (如:Jellyfin, Emby, Plex)

你需要提前准备好下载工具(如 qBittorrent)和媒体服务器(如 Jellyfin)。NASTool 会通过它们的 Web API 进行控制。

2. 安装环境准备

由于 Docker 是 V2 版最推荐且兼容性最好的安装方式,我们的教程将围绕 Docker 展开。无论你使用哪种NAS,确保满足以下前提条件。

2.1 硬件与系统要求

  • NAS设备 :任意支持 Docker 的 x86_64 或 ARM64 架构的 NAS(群晖、威联通、飞牛、极空间、绿联云等)或普通 Linux 服务器。
  • 内存 :建议至少 2GB 可用内存。运行 NASTool 本身占用不大,但需要为 Docker 和后续其他容器留出空间。
  • 存储空间 :需要为 NASTool 的配置文件和缓存数据预留少量空间(几百MB到1GB),媒体文件存储在单独的卷上。

2.2 必须的配套服务

在安装 NASTool 之前,请确保以下服务已经部署并正常运行,并记录好它们的访问信息:

  1. 下载工具 (二选一或都备):
    • qBittorrent :推荐使用,功能强大,与 NASTool 集成好。需记录:Web UI 地址(如 http://NAS_IP:8080 )、用户名、密码。
    • Transmission :轻量级选择。需记录:Web UI 地址、用户名、密码。
  2. 媒体服务器 (至少选一个):
    • Jellyfin :开源免费,功能全面,推荐。
    • Emby :部分高级功能需付费。
    • Plex :商业软件,外网访问体验好。
    • 需记录:Web UI 地址、API 密钥(在服务器设置中可生成)。
  3. 媒体信息刮削源 (用于识别电影电视剧):
    • TMDB :主要刮削源,需要去其官网注册账号并申请 API Key(免费)。
    • 豆瓣 :辅助刮削源,用于中文内容,可能需要配置 Cookie(非必须,但推荐)。

2.3 获取关键信息

请准备一个文本文件,记录以下信息,后续配置会频繁用到:

  • NAS 的 IP 地址。
  • 计划存放媒体文件的目录路径,例如 /volume1/media (群晖)、 /mnt/HDD/media (通用Linux)。
  • 计划存放 NASTool 配置文件的目录路径,例如 /volume1/docker/nastool (群晖)。
  • 上述下载工具和媒体服务器的访问地址、端口、用户名、密码、API密钥。
  • TMDB 的 API Key。

3. 通过 Docker 安装 NASTool V2

Docker 安装的核心是创建一个容器,并将宿主机的目录(存储配置和媒体文件)映射到容器内部。不同NAS系统的 Docker 图形界面操作逻辑类似。

3.1 创建配置和数据目录

首先,在 NAS 的文件系统中创建用于持久化 NASTool 数据的目录。以在 /volume1/docker 下创建为例:

# 通过SSH连接到NAS后执行,或在NAS的File Station中创建
mkdir -p /volume1/docker/nastool/config
mkdir -p /volume1/docker/nastool/data
  • config :用于存放 NASTool 的核心配置文件、数据库等,非常重要,必须持久化。
  • data :可选,可用于存放临时数据或日志,建议一并创建并持久化。

3.2 使用 Docker CLI 命令安装(通用方法)

如果你熟悉命令行,以下命令适用于所有支持 Docker 的 Linux 系统(包括NAS的SSH终端)。请替换其中的路径为你实际创建的路径。

docker run -d \
  --name nastool \
  --restart unless-stopped \
  -p 3000:3000 \ # 将宿主机的3000端口映射到容器的3000端口
  -v /volume1/docker/nastool/config:/config \ # 映射配置目录
  -v /volume1/media:/media \ # 映射你的媒体文件根目录
  -v /volume1/docker/nastool/data:/data \ # 映射数据目录
  -e PUID=0 \ # 用户ID,0为root,根据你的NAS权限设置,群晖通常用0
  -e PGID=0 \ # 用户组ID
  -e UMASK=022 \
  -e TZ=Asia/Shanghai \ # 设置时区
  --network host \ # 使用host网络模式,简化容器与宿主机其他服务(如下载器)的通信
  jxxghp/nas-tools:latest

参数解释

  • --name nastool :为容器指定一个名字,便于管理。
  • --restart unless-stopped :容器意外退出时自动重启(除非手动停止)。
  • -p 3000:3000 :端口映射。 宿主机端口:容器端口 。访问 http://你的NAS_IP:3000 即可进入 NASTool Web界面。
  • -v :目录映射(卷挂载)。 宿主机路径:容器内路径 。这是持久化数据的关键。
  • -e PUID/PGID :设置容器内运行进程的用户和组ID,需与宿主机上媒体文件的所有者匹配,否则可能无权限读写。在群晖中, root 的 UID/GID 通常是 0
  • --network host :使用主机网络。 强烈推荐 ,这样容器内的 NASTool 可以直接通过 localhost 127.0.0.1 访问宿主机上运行的其他服务(如下载器),无需复杂的IP配置。

3.3 在各类NAS图形界面中安装

对于不习惯命令行的用户,各品牌NAS的 Docker 图形化管理工具(如群晖的 Container Manager,威联通的 Container Station,极空间/飞牛/绿联的 Docker 应用)操作大同小异。

通用图形界面步骤

  1. 在 Docker 应用中,点击“搜索”或“注册表”,输入 jxxghp/nas-tools
  2. 选择 latest 标签,下载镜像。
  3. 镜像下载完成后,点击“启动”或“创建容器”。
  4. 端口设置 :添加端口映射,容器端口填 3000 ,本地端口填 3000 (或其他未被占用的端口)。
  5. 卷/文件夹设置 :添加文件夹映射。
    • 装载路径 /config -> 宿主机路径 /volume1/docker/nastool/config
    • 装载路径 /media -> 宿主机路径 /volume1/media (你的媒体根目录)
    • (可选) 装载路径 /data -> 宿主机路径 /volume1/docker/nastool/data
  6. 环境变量 :添加环境变量。
    • TZ=Asia/Shanghai
    • PUID=0
    • PGID=0
    • UMASK=022
  7. 网络 :选择“host”网络模式(如果选项中有)。
  8. 完成创建并启动容器。

3.4 验证安装

容器启动后,等待约30秒到1分钟。然后在浏览器中访问 http://你的NAS_IP:3000 。 如果看到 NASTool 的登录界面(首次使用可能需要初始化管理员账号),说明安装成功。

4. 基础配置与核心功能设置

首次登录后,你需要进行一系列配置,将 NASTool 与你的下载工具、媒体服务器等连接起来。

4.1 系统初始化与基础设置

  1. 首次登录 :访问 NAS_IP:3000 ,根据提示设置管理员用户名和密码。
  2. 修改默认密码 :登录后,务必在“系统设置” -> “安全”中修改默认密码。
  3. 设置媒体库目录 :进入“系统设置” -> “媒体库”。添加你的媒体根目录,例如 /media (这是在容器内看到的路径,对应你之前映射的宿主机路径)。并设置电影、电视剧的分类目录,如 /media/movies , /media/tv

4.2 配置下载器

这是自动化流程的“执行臂”。

  1. 进入“系统设置” -> “下载器”。
  2. 点击“添加下载器”,选择你使用的类型(如 qBittorrent)。
  3. 关键配置项
    • 名称 :自定义,如 my_qb
    • 主机 :由于我们使用了 --network host 模式,下载器如果也运行在宿主机上,这里填 127.0.0.1 localhost 。如果下载器是另一个容器,且在同一自定义桥接网络中,则填容器名。
    • 端口 :下载器Web UI的端口,如 qBittorrent 默认是 8080
    • 用户名/密码 :下载器的登录凭据。
    • 下载目录 :填写下载器 容器内 的默认下载保存路径。例如,qBittorrent 容器内路径可能是 /downloads 这个目录必须能被 NASTool 容器访问到 。通常的实践是,让下载器和 NASTool 都将同一个宿主机目录(如 /volume1/downloads )映射为各自容器内的路径(如都映射为 /downloads ),这样 NASTool 才能处理下载完成的文件。
  4. 点击“测试连接”,显示成功即可保存。

4.3 配置媒体服务器

这是自动化流程的“成果展示端”。

  1. 进入“系统设置” -> “媒体服务器”。
  2. 点击“添加媒体服务器”,选择类型(如 Jellyfin)。
  3. 关键配置项
    • 主机 :同上,如果媒体服务器运行在宿主机,填 127.0.0.1
    • 端口 :媒体服务器端口,如 Jellyfin 是 8096
    • API密钥 :在 Jellyfin/Emby/Plex 的管理后台生成并填入。
  4. 测试连接并保存。

4.4 配置消息通知(可选但推荐)

设置通知可以在任务完成或出错时及时收到提醒。

  1. 进入“系统设置” -> “消息通知”。
  2. 支持 Telegram、微信、Bark、Server酱等。以 Telegram 为例:
    • 需要先向 @BotFather 申请一个 Bot,获取 Token
    • 然后与你的 Bot 对话,获取你的 Chat ID
    • 在 NASTool 中填入 Token Chat ID ,并开启需要的通知类型(下载完成、整理完成等)。

4.5 配置索引器与订阅

这是自动化流程的“信息来源”。

  1. TMDB :在“系统设置” -> “媒体” -> “TMDB”中,填入你申请的 API Key。这是识别影视信息的主要来源。
  2. 豆瓣 :在“系统设置” -> “媒体” -> “豆瓣”中,可以填入 Cookie(用于同步“想看”列表,非必须)。
  3. 站点资源 :在“站点管理”中,可以添加你拥有的 PT 站点的 Cookie 或 API,用于 RSS 自动刷流、搜索等功能。 此部分涉及具体站点,请谨慎操作并遵守站点规则。

5. 实战:实现一部电影的全自动下载与整理

让我们通过一个完整的例子,串联起所有配置。目标:自动下载豆瓣评分8.5以上的《星际穿越》1080p REMUX版本。

5.1 步骤一:添加订阅

  1. 在 NASTool 首页,点击“电影” -> “+添加订阅”。
  2. 在搜索框输入“星际穿越”,选择正确的影片。
  3. 在订阅设置中:
    • 类型 :电影
    • 质量 :选择 1080p REMUX
    • 过滤规则 :可以设置“标题包含 Interstellar ”、“排除标题包含 x265 ”(如果你不想要H.265编码)等。
    • 搜索站点 :选择你已配置的 PT 站点。
    • 保存路径 :选择 /media/movies (你之前设置的媒体库电影目录)。
    • 下载器 :选择 my_qb (你配置的下载器)。
  4. 点击“确定”保存订阅。NASTool 会立即执行一次搜索,并在后台持续监控 RSS。

5.2 步骤二:自动下载与识别

  1. NASTool 搜索到符合条件的资源后,会自动发送下载链接到 qBittorrent。
  2. 你可以在“下载”页面看到任务状态。
  3. 下载完成后,NASTool 会监控到 qBittorrent 中任务完成,自动触发 “目录监控” 功能。

5.3 步骤三:文件整理与重命名

  1. NASTool 的“目录监控”功能会扫描下载完成目录( /downloads )。
  2. 找到《星际穿越》的文件后,它会调用 TMDB API 进行识别。
  3. 识别成功后,根据你设定的 “媒体库” “重命名规则” (在“系统设置”->“媒体库”中配置),将文件从 /downloads 硬链接 移动 到媒体库目录 /media/movies/Interstellar (2014)/ 下,并重命名为如 Interstellar (2014).mkv
    • 硬链接 :推荐方式。文件数据只有一份,但在两个目录下都有入口,不占用额外空间,适合做种。
  4. 整理完成后,NASTool 可以(可选)通知媒体服务器(Jellyfin)刷新库。

5.4 步骤四:成果验收

  1. 打开 Jellyfin,进入电影库,你会发现《星际穿越》已经赫然在列,并且海报、简介、演员等信息一应俱全。
  2. 在 NASTool 的“历史记录”中,可以看到完整的“搜索->下载->识别->整理”流水线日志。

至此,一个完全自动化的流程跑通。你可以通过“订阅”功能批量管理想看的影视剧,彻底解放双手。

6. 常见问题与故障排查

在部署和使用过程中,你可能会遇到一些问题。以下是高频问题的排查思路。

问题现象 可能原因 排查与解决思路
无法访问 Web 界面 (NAS_IP:3000) 1. 容器未成功启动。
2. 端口映射错误或被占用。
3. NAS防火墙阻止。
1. 在 Docker 管理界面查看容器状态是否为“运行中”,查看容器日志有无报错。
2. 检查 -p 3000:3000 映射是否正确。尝试更换宿主机端口,如 -p 3001:3000 ,然后访问 NAS_IP:3001
3. 检查 NAS 的防火墙设置,放行对应端口。
下载器/媒体服务器连接测试失败 1. 网络模式问题。
2. 地址/端口错误。
3. 用户名/密码/API密钥错误。
4. 目标服务未运行。
1. 确保使用 host 网络模式 ,这是最简单的方式。如果不用 host,需确保容器在同一自定义网络并能互通。
2. 在宿主机上用 curl http://127.0.0.1:8080 测试下载器是否可达。
3. 仔细核对凭据。
4. 确认 qBittorrent、Jellyfin 等服务本身是否正常运行。
文件下载完成,但未自动整理 1. 目录监控未开启或路径错误。
2. 下载目录映射不一致。
3. 文件识别失败。
4. 权限不足。
1. 检查“系统设置”->“下载器”中,是否开启了“目录监控”,并监控了正确的容器内下载路径(如 /downloads )。
2. 最关键 :确认 NASTool 容器内看到的下载路径(如 /downloads )和 qBittorrent 容器内设置的下载保存路径是 同一个宿主机目录
3. 查看“历史记录”或“系统”->“日志”,看识别阶段是否有 TMDB 连接错误或未匹配到信息。
4. 检查 PUID/PGID 设置,确保 NASTool 有权限读取下载目录和写入媒体库目录。在宿主机上使用 ls -l 查看目录所有者。
媒体服务器搜刮不到整理好的电影 1. 媒体服务器未正确配置媒体库路径。
2. NASTool 未触发媒体服务器刷新。
1. 在 Jellyfin/Emby 中添加媒体库时,选择的路径必须是宿主机上的媒体库路径(如 /volume1/media/movies ),这个路径需要能被媒体服务器访问。
2. 在 NASTool 的媒体服务器设置中,开启“库刷新”相关选项。也可以手动在媒体服务器后台触发扫描。
NASTool 日志提示“Permission denied” 容器内进程用户(PUID/PGID)无权访问映射的宿主机目录。 1. 在宿主机上,将你的媒体目录和下载目录的所有者改为与容器内 PUID/PGID 一致的用户。例如: chown -R 1000:1000 /volume1/media (如果 PUID=1000)。
2. 或者,将目录权限改为 777(不推荐用于生产环境): chmod -R 777 /volume1/media
3. 对于群晖 ,在控制面板->共享文件夹->编辑对应文件夹->权限中,给 Everyone docker 用户(如果有)读写权限。
更新容器后配置丢失 启动新容器时,没有映射 ( -v ) 持久化的 /config 目录。 绝对不要 直接删除旧容器而不保留 /config 目录。更新时,应使用同样的 -v 映射参数启动新容器,指向 同一个 宿主机配置目录。你的所有设置都保存在这个目录里。

7. 最佳实践与进阶建议

配置稳定运行后,以下建议可以帮助你打造更高效、更安全的个人媒体自动化系统。

7.1 目录结构与权限规划

一个清晰、一致的目录结构是自动化的基石。

/volume1/                  # 存储池根目录
├── docker/               # 所有Docker应用数据
│   └── nastool/
│       ├── config/       # NASTool配置(必须映射)
│       └── data/         # NASTool其他数据
├── downloads/            # 下载目录
│   ├── qbittorrent/     # qBittorrent的下载文件夹
│   └── completed/       # 下载完成区(可选,用于NASTool监控)
└── media/                # 最终媒体库
    ├── movies/          # 电影
    ├── tv/              # 电视剧
    ├── music/           # 音乐
    └── documentaries/   # 纪录片

权限建议 :创建一个专用的系统用户(如 media ,UID=1000),让 Docker 容器(NASTool、qBittorrent、Jellyfin)都使用这个用户的 UID/GID 运行,并让该用户拥有上述目录的所有权。这样可以最大限度地避免权限问题。

7.2 使用 Docker Compose 进行编排

对于需要运行多个关联容器(NASTool, qBittorrent, Jellyfin)的环境,使用 docker-compose.yml 进行编排是更优雅、可复现的方式。

创建一个 docker-compose.yml 文件:

version: '3.8'
services:
  nastool:
    image: jxxghp/nas-tools:latest
    container_name: nastool
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - /volume1/docker/nastool/config:/config
      - /volume1/media:/media
      - /volume1/downloads:/downloads  # 统一映射下载目录
    environment:
      - PUID=1000
      - PGID=1000
      - UMASK=022
      - TZ=Asia/Shanghai
    network_mode: "host" # 使用host网络

  qbittorrent:
    image: linuxserver/qbittorrent:latest
    container_name: qbittorrent
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - WEBUI_PORT=8080
    volumes:
      - /volume1/docker/qbittorrent/config:/config
      - /volume1/downloads:/downloads  # 与NASTool映射相同的目录
    ports:
      - "6881:6881"
      - "6881:6881/udp"
      - "8080:8080"
    network_mode: "host"

  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    restart: unless-stopped
    user: "1000:1000"
    volumes:
      - /volume1/docker/jellyfin/config:/config
      - /volume1/media:/media
    ports:
      - "8096:8096"
    network_mode: "host"

然后在包含此文件的目录下运行 docker-compose up -d 即可一键启动所有服务。管理、更新、备份都更加方便。

7.3 安全强化措施

  1. 修改默认端口 :将 NASTool 的 Web 端口从 3000 改为一个不常用的高位端口(如 8321 ),减少被扫描的风险。
  2. 设置强密码 :NASTool、下载器、媒体服务器的后台密码务必设置为强密码。
  3. 启用 HTTPS :如果通过公网访问,务必在 NAS 层面或通过反向代理(如 Nginx Proxy Manager)配置 HTTPS,加密通信。
  4. 定期备份配置 :定期备份 NASTool 映射的 /config 目录。这是你的所有规则和数据库,丢失后需要重新配置。
  5. 权限最小化 :不要使用 root (UID=0) 运行容器。创建专用用户,并只赋予必要的目录权限。

7.4 性能与稳定性优化

  1. TMDB API 限制 :TMDB 的免费 API 有调用频率限制。在 NASTool 的 TMDB 设置中,可以适当调大请求间隔,避免被限。
  2. 合理设置 RSS 间隔 :在站点 RSS 设置中,不要将刷新间隔设得太短(如小于10分钟),以免对站点服务器造成压力或被封禁。
  3. 使用硬链接而非移动 :在“系统设置”->“下载器”->“下载设置”中,优先选择“硬链接”。这样整理文件时不会中断做种,且不占用双倍空间。
  4. 日志管理 :定期清理 NASTool 的日志文件,防止 /config 目录无限增大。可以在 Docker 启动命令中添加日志大小限制,或使用日志轮转工具。

通过以上步骤,你不仅能在群晖、飞牛、极空间、绿联、威联通等任意支持 Docker 的 NAS 上成功部署 NASTool V2,更能建立起一套稳健、高效、安全的家庭媒体自动化管理体系。从手动搜索下载到全自动追剧,体验的提升是巨大的。

更多推荐