1. 为什么你需要Nas-tool?
作为一个影音爱好者,我深知管理影视资源的痛苦。每次想追剧都要经历:全网搜索资源→对比种子质量→手动添加下载→等待完成后重命名文件→整理到媒体库→等待刮削元数据→最后才能欣赏。这个过程不仅繁琐,还经常遇到各种问题:下载的电影文件名乱七八糟、字幕对不上、元数据缺失等等。
Nas-tool就是为了解决这些痛点而生的自动化工具。它能够帮你实现:
- 一键订阅:通过微信/Telegram直接发送资源名称,自动触发下载流程
- 智能识别:自动匹配TMDB元数据,规范命名影视文件
- 无缝衔接:与qBittorrent、Jellyfin等工具深度整合
- 全自动管理:从下载到入库完全无需人工干预
我自己的使用场景是这样的:晚上刷微博看到新剧推荐,直接复制剧名发给Nas-tool的微信机器人。第二天起床,剧集已经整齐地出现在Jellyfin里,连海报、演员表、评分都整理好了。这种体验,用过就回不去了。
2. 环境准备:云服务器选择与基础配置
2.1 服务器选购建议
我测试过多种云服务器配置,对于个人使用推荐:
- 腾讯云轻量应用服务器:2核CPU/4GB内存/80GB SSD硬盘(约¥50/月)
- 阿里云ECS:突发性能实例t6(2核/2GB)配合100GB高效云盘
- 境外服务器:如果主要访问国际资源,可选香港/新加坡节点
实测数据:单部1080P电影处理时,Nas-tool内存占用约800MB,qBittorrent需要300-500MB。建议至少选择2GB内存的配置。
2.2 系统初始化设置
连接服务器后,这些基础操作必不可少:
# 更新系统 sudo apt update && sudo apt upgrade -y # 安装常用工具 sudo apt install -y vim git curl wget # 设置时区(重要!影响任务调度) sudo timedatectl set-timezone Asia/Shanghai # 创建专用用户(避免使用root) sudo useradd -m nasuser sudo passwd nasuser sudo usermod -aG sudo nasuser我强烈建议使用密钥登录替代密码:
# 本地生成密钥对 ssh-keygen -t rsa -b 4096 # 上传公钥到服务器 ssh-copy-id nasuser@你的服务器IP3. Docker环境部署实战
3.1 Docker安装与优化
不同系统的安装方式:
# Ubuntu/Debian sudo apt install -y docker.io docker-compose sudo systemctl enable --now docker # CentOS sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker关键优化配置:
# 修改docker存储目录(默认/var/lib/docker) sudo mkdir /data/docker sudo vi /etc/docker/daemon.json添加以下内容:
{ "data-root": "/data/docker", "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" } }3.2 容器网络规划
我推荐使用自定义bridge网络而非默认的docker0:
docker network create --subnet=172.20.0.0/16 nas-network这样部署时有三个优势:
- 容器间可通过服务名互相访问
- 可以固定IP地址
- 与宿主机网络隔离更安全
4. Nas-tool核心组件部署
4.1 Nas-tool主程序安装
使用docker-compose部署更规范:
version: '3' services: nas-tools: image: jxxghp/nas-tools:latest container_name: nas-tools network_mode: host volumes: - ./config:/config - /nastools:/nastools environment: - PUID=0 - PGID=0 - UMASK=000 - NASTOOL_AUTO_UPDATE=true restart: unless-stopped启动后访问http://服务器IP:3000,默认账号密码:
- 用户名:admin
- 密码:password
必须立即修改的配置:
- 在"基础设置"→"安全"中修改密码
- 设置"登录IP限制"防止未授权访问
- 配置"备份设置"定期备份数据库
4.2 TMDB API申请指南
TMDB是元数据的主要来源,申请时注意:
- 使用英文填写申请理由
- 选择"Developer"类型
- 应用名称不要包含"nas"、"download"等敏感词
- 申请地址:https://www.themoviedb.org/settings/api
拿到API Key后,在Nas-tool的"基础设置"→"媒体"中填入。测试时如果连接失败,可能需要修改hosts:
# 查询可用IP ping api.themoviedb.org # 修改hosts sudo vi /etc/hosts 添加: 13.224.167.108 api.themoviedb.org5. 下载工具链配置
5.1 qBittorrent优化配置
推荐使用linuxserver镜像的增强版:
docker run -d \ --name=qbittorrent \ --network=nas-network \ --ip=172.20.0.2 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Asia/Shanghai \ -e WEBUI_PORT=8080 \ -p 8080:8080 \ -p 6881:6881 \ -p 6881:6881/udp \ -v ./qbittorrent/config:/config \ -v /nastools/downloads:/downloads \ --restart unless-stopped \ lscr.io/linuxserver/qbittorrent:latest关键优化参数:
- 在"设置"→"下载"中启用"自动管理模式"
- 设置"磁盘缓存"为512MB(减少IO压力)
- 添加热门Tracker列表提升速度:
# 更新Tracker列表 curl -s https://trackerslist.com/best.txt | tee -a ./qbittorrent/config/qBittorrent/BT_backup/trackers.txt5.2 Nas-tool与下载器联动
在Nas-tool的"下载器设置"中:
- 地址填写容器IP(如172.20.0.2)
- 端口8080
- 路径留空
- 用户名密码admin/adminadmin
测试连接时常见问题解决:
- 连接超时→检查防火墙是否开放8080端口
- 认证失败→确认qbittorrent的WebUI账号密码
- 无法下载→检查/nastools/downloads目录权限
6. 媒体服务器搭建
6.1 Jellyfin硬解配置
硬件加速方案选择:
| 方案 | 适用场景 | 配置示例 |
|---|---|---|
| VAAPI | Intel核显 | --device /dev/dri:/dev/dri |
| NVDEC | NVIDIA显卡 | 安装nvidia-docker运行时 |
| 软件解码 | 无显卡 | 增加-e FFMPEG_OPTS="-vaapi_device /dev/dri/renderD128" |
我的docker-compose配置:
jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai volumes: - ./jellyfin/config:/config - /nastools/media:/media devices: - /dev/dri:/dev/dri restart: unless-stopped6.2 媒体库最佳实践
目录结构建议:
/nastools ├── media │ ├── movies # 电影 │ ├── tvshows # 电视剧 │ ├── anime # 动漫 │ └── docs # 纪录片 └── downloads # 下载目录在Jellyfin添加媒体库时:
- 内容类型选择准确(电影/剧集)
- 元数据下载器顺序:TMDB优先
- 勾选"实时监控"自动更新库
7. 高级功能配置
7.1 微信机器人集成
在Nas-tool的"消息通知"中:
- 选择"微信"协议
- 扫码登录微信小号
- 设置消息模板:
【下载通知】 资源名称:{{name}} 状态:{{status}} 进度:{{progress}}% 速度:{{speed}} 剩余时间:{{time_left}}使用技巧:
- 发送"帮助"获取指令列表
- 支持模糊搜索:"找 权力的游戏"
- 订阅更新:"订阅 西部世界 季4"
7.2 自动化规则配置
我常用的智能规则:
- 自动删种:做种时间>7天且分享率>3
- 季集整理:检测到"S01E01"自动创建剧集目录
- 质量控制:过滤掉小于720p或大于50GB的资源
- 分类规则:/media/anime/目录只接收包含"动漫"标签的资源
配置路径:"设置"→"下载器"→"下载策略"
8. 安全防护与维护
8.1 反向代理配置
Nginx示例配置:
server { listen 80; server_name nastool.yourdomain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # 强制HTTPS return 301 https://$host$request_uri; } server { listen 443 ssl; server_name nastool.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }8.2 备份策略
设置每日自动备份:
# 备份脚本 cat > /nastools/backup.sh <<EOF #!/bin/bash tar -czvf /backup/nas-tool_$(date +%Y%m%d).tar.gz /nastools/config docker exec nas-tools sqlite3 /config/data.db ".backup '/backup/data.db.bak'" EOF # 添加定时任务 (crontab -l ; echo "0 3 * * * /bin/bash /nastools/backup.sh") | crontab -建议将备份同步到云存储:
rclone copy /backup onedrive:backups/nas-tool