emby.wiki · 文档
Emby家庭服务搭建
从设备选择、安装与存储,到媒体库、硬件转码、远程访问、备份和故障排查的完整家庭 Emby 部署指南。
从一台家里长期通电的电脑、小主机或 NAS 开始,搭建能够在电视、手机、平板和电脑上使用的 Emby 家庭媒体服务。本文覆盖设备选择、安装、存储挂载、媒体库整理、硬件转码、远程访问、自动启动、备份与常见故障。
先完成内网播放,再处理远程访问。 各个平台的安装章节是不同路线,选择一条即可,不要在同一台设备上同时安装原生版和 Docker 版。本文使用官方 Emby Server 与官方镜像,不使用修改版安装包。
1. 开始之前:选择你的方案#
Emby Server 负责管理媒体、用户和播放任务;客户端负责播放。电影可以放在运行 Emby 的主机上,也可以放在另一台 NAS 上,由服务器通过 SMB 或 NFS 读取。
| 现有设备 | 安装路线 | 适用情况 | 需要注意 |
|---|---|---|---|
| Windows PC / 小主机 | Windows 原生安装 | 第一次搭建、已有闲置电脑 | 睡眠、开机启动、服务账户的 NAS 权限 |
| Mac mini | macOS 原生安装 | 长期开机、外接硬盘柜 | 登录后启动与系统启动的区别 |
| Debian / Ubuntu 小主机 | Linux 原生安装 | 需要标准系统服务 | 媒体目录与 GPU 设备权限 |
| Linux + Docker | 官方镜像 + Compose | 希望配置容易备份迁移 | 持久化、UID/GID、容器内路径 |
| Synology / QNAP | 原生套件或容器 | NAS 一体化使用 | 型号架构、共享文件夹 ACL |
| TrueNAS / Unraid | Apps / 容器 | 已有家庭存储平台 | 数据集、持久化目录、实际端口 |
| Raspberry Pi | ARM 原生包或官方镜像 | 少量用户、以直接播放为主 | 不预设具备可靠的 4K 实时转码能力 |
| NAS + 独立小主机 | NAS 保存媒体,小主机运行 Emby | 存储与计算分工 | 有线网络、远程挂载与启动顺序 |
1.1 三套可以落地的家庭架构#
最简单:Windows + 本地硬盘。 Emby 安装在 Windows,电影保存在 D:\Media,客户端通过服务器内网 IP 访问。先用已有设备体验,通常无需立即购买新硬件。
分离式:Linux 小主机 + NAS。 NAS 保存媒体,小主机负责媒体库、用户和转码。需要转码时,可评估带 Intel 核显的 x86 小主机;是否适合仍取决于影片编码、HDR、字幕和同时播放人数,不能只按 CPU 型号承诺转码路数。
一体化:NAS 上运行 Emby。 使用 NAS 原生套件或容器,避免增加主机。若 NAS 不具备合适的视频引擎,应优先让客户端 Direct Play。
1.2 整体架构#
flowchart TD
R["家庭路由器 / 有线 LAN"] --- S["Emby 主机"]
R --- N["NAS"]
N -->|"SMB / NFS 媒体读取"| S
D["本地 / 外接硬盘"] --> S
S --> C["电视 / 电脑 / 手机"]
S --> V["私人 VPN"]
V --> O["外出设备"]
1.3 示例参数与执行规则#
| 参数 | 本文示例 | 请替换为 |
|---|---|---|
| Emby 主机 LAN IP | 192.168.1.20 | 路由器为服务器保留的地址 |
| NAS LAN IP | 192.168.1.10 | 你的 NAS 地址 |
| SMB 共享名 | Media | NAS 上实际的共享名称 |
| Linux 媒体路径 | /mnt/media | 本地磁盘或 NAS 的实际挂载点 |
| Docker 项目目录 | /srv/emby | 存放 Compose 和配置的目录 |
| 容器内媒体路径 | /media | 后续保持稳定的媒体路径 |
Linux 命令按顺序执行,默认当前账户能够使用 sudo;root 用户可以省略 sudo。PowerShell 命令在 Windows 执行。代码块中的 IP、用户、磁盘路径必须按环境修改。不要把本机 localhost 误当成另一台服务器:手机上的 localhost 指手机本身。
2. 设备、磁盘与家庭网络准备#
2.1 硬件需求先看播放方式#
直接播放主要消耗磁盘读取和网络带宽;视频转码则需要 CPU 或受支持的 GPU。家中已有的 PC、Mac mini 或小主机可以先做测试。SSD 适合操作系统、Emby 数据库与元数据;大容量 HDD 适合媒体文件。转码临时目录应有足够空间,并单独使用。
选择长期运行设备时,检查有线网口、散热、供电、USB 硬盘稳定性和系统维护情况。内存需求会随媒体库规模、插件、扫描和并发增加,不把某一容量写成所有人的最低要求。Windows 应使用仍受安全维护的系统版本。
2.2 本地磁盘与硬盘柜#
先在操作系统中确认磁盘已挂载、重启后路径稳定,再交给 Emby。Windows 可固定盘符;macOS 常见路径是 /Volumes/Media;Linux 可使用基于 UUID 的挂载方式,避免磁盘枚举顺序变化。USB / Thunderbolt 硬盘柜还要检查掉盘、休眠唤醒和供电。
RAID 可以提高部分故障场景下的可用性,但不能替代备份。家庭照片、家庭录像和配置应优先备份;误删除、勒索软件和文件损坏会影响整个阵列。顺序读速只是一个指标,扫描还受大量小文件访问、延迟和硬盘休眠影响。
2.3 固定内网地址与有线连接#
在路由器中为 Emby 主机设置 DHCP 地址保留,例如 192.168.1.20;NAS 也建议设置保留地址。优先用网线连接服务器、NAS 和路由器。Wi-Fi 标称连接速率不能直接当作可用吞吐量,高码率 4K 影片还会出现码率峰值。
家庭宽带是否提供公网 IPv4、是否经过 CGNAT、是否支持 IPv6,以及上下行是否对称,都取决于运营商和套餐。远程观看消耗家庭上行;在家观看通常走 LAN。应实测上行和客户端路径,不使用“上行固定等于下行 10%”这样的通用结论。
3. Windows 原生安装#
3.1 安装与首次打开#
- 打开 Emby 官方下载页,选择 Windows Server,下载稳定版。
- 安装后启动 Emby Server,首次在服务器本机访问 http://127.0.0.1:8096。
- 完成第 9 节的初始化,再用同一 LAN 内另一台设备访问 http://192.168.1.20:8096。
- 在系统电源设置中避免服务器自动睡眠;关闭显示器不等于让整台电脑睡眠。
PowerShell 检查监听与本机响应:
Get-NetTCPConnection -LocalPort 8096 -State Listen
Invoke-WebRequest -Uri http://127.0.0.1:8096 -UseBasicParsing
Test-NetConnection 192.168.1.20 -Port 8096
最后一条也可在另一台 Windows 电脑上执行。若本机正常、LAN 失败,检查服务器 IP、Windows 网络配置文件、防火墙和访客 Wi-Fi 隔离。
3.2 Windows 防火墙#
只在可信家庭网络上使用 Private 配置文件。若安装程序未创建合适规则,可在管理员 PowerShell 中添加仅允许 LAN 来源的规则:
New-NetFirewallRule -DisplayName "Emby HTTP - Home LAN" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8096 -Profile Private -RemoteAddress LocalSubnet
这条规则不包含 Tailscale 网段;后续使用 Tailscale 时,应按实际适配器、网络配置文件及需要访问的来源另外设置规则。不要用关闭整个防火墙来解决连接问题。
3.3 需要未登录也能运行:Windows Service#
普通登录启动适合一直保持登录的电脑;无人值守主机可参考 Emby 官方 Windows Service 文档,使用 NSSM。
- 先正常安装并初始化 Emby,记下 EmbyServer.exe 路径和实际数据目录。
- 退出当前 Emby 进程,避免两个实例争用 8096 或同时写数据库。
- 从 NSSM 官方来源获取程序,将 nssm.exe 保存在固定目录,不要安装后删除它。
- 管理员终端运行 nssm install,在窗口中设置 Application 为 EmbyServer.exe、Startup directory 为其所在目录、Arguments 为 -service。
- 设置实际服务账户;它必须能读取媒体、写入 Emby 数据与转码目录。按官方说明配置退出动作,避免后台点击关闭后被 NSSM 立即重新拉起。
- 启动服务,确认它使用原来的数据目录;若出现全新初始化界面,应先停止服务并检查账户与数据路径,不要直接创建第二套配置。
Windows Service 看不到普通用户登录会话里的映射盘符,例如 Z:。NAS 媒体应使用 UNC 路径,例如 \192.168.1.10\Media,并为服务账户配置共享权限与凭据。服务模式下 Emby 不会自动完成应用更新:备份后停止服务,手动安装新版,再启动验证。
4. macOS / Mac mini 原生安装#
4.1 正确安装到 Applications#
- 从 Emby macOS 官方安装页下载适合 Intel 或 Apple Silicon 的稳定版。
- 将 EmbyServer 拖入 /Applications,再从应用程序目录启动,不长期从 Downloads 运行。
- 在本机访问 http://localhost:8096。
- 外接硬盘媒体库选择实际路径,例如 /Volumes/Media/Movies。
- 若不能读取外接卷,检查磁盘挂载、当前运行用户及 macOS 隐私权限提示,按所需范围授权。
终端检查:
lsof -nP -iTCP:8096 -sTCP:LISTEN
curl -I http://127.0.0.1:8096
ls -ld /Volumes/Media
4.2 登录项目不等于开机服务#
在“系统设置 → 通用 → 登录项”加入 Emby Server,通常要用户登录后才启动。系统中应设置供电时避免自动睡眠,并测试屏幕锁定后仍可播放。
要求断电恢复后无需登录就运行时,需要专门设计 launchd 服务:LaunchAgent 依赖用户会话,LaunchDaemon 在系统级运行。独立服务用户、程序入口、数据目录、外接磁盘权限都必须与安装版本匹配,不能直接复制别人机器上的 plist。
本文采用可验证的登录项目路线,不提供未经本机验证的通用 LaunchDaemon 命令。若无人值守开机是硬性需求,可选择 Linux 原生 systemd 服务或 NAS 平台的服务管理。FileVault 开启时,冷启动还可能需要人工解锁系统盘;不要通过关闭磁盘加密或开启自动登录来默认解决这个问题。
5. Debian / Ubuntu 原生安装#
5.1 确认系统与架构#
cat /etc/os-release
uname -m
ip -br addr
x86_64 一般对应 amd64,aarch64 对应 arm64;32 位 ARM 还要核对具体系统。下面使用 Emby 官方稳定版 APT 仓库,适用于其支持的 Debian / Ubuntu 系统。
5.2 添加官方仓库并安装#
sudo apt update
sudo apt install -y curl ca-certificates
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://pkg.emby.media/keys/emby-public.gpg -o /etc/apt/keyrings/emby-public.gpg
sudo chmod 0644 /etc/apt/keyrings/emby-public.gpg
sudo curl -fsSL https://pkg.emby.media/apt/emby.sources -o /etc/apt/sources.list.d/emby.sources
sudo apt update
apt-cache policy emby-server
sudo apt install -y emby-server
sudo systemctl enable --now emby-server
安装前应在 policy 输出中看到 pkg.emby.media 的 stable 仓库。已配置过 Emby beta 或其他仓库的主机先检查现有来源,避免同时混用多个渠道。参考:官方 APT 安装说明。
5.3 验证运行#
systemctl status emby-server --no-pager
sudo ss -lntp | grep ':8096'
curl -I http://127.0.0.1:8096
journalctl -u emby-server -n 80 --no-pager
服务正常、端口监听且 HTTP 有响应后,在 LAN 客户端打开 http://192.168.1.20:8096。若启用了 UFW,只按实际家庭网段放行;不要开启整个公网范围:
sudo ufw allow from 192.168.1.0/24 to any port 8096 proto tcp
这不是启用 UFW 的完整流程。通过 SSH 管理时,必须先保留 SSH 访问规则,避免把自己锁在服务器外。
5.4 媒体目录权限:先检查再修改#
原生包通常以 emby 用户运行,先确认实际身份:
id emby
systemctl show emby-server -p User -p Group
namei -l /mnt/media/Movies
sudo -u emby ls -lah /mnt/media/Movies
目录每一级需要遍历权限,文件需要读取权限。不要仅看 Movies 最后一层。对自己管理的本地媒体目录,可采用 media 组:
sudo groupadd -f media
sudo usermod -aG media emby
sudo chgrp -R media /mnt/media
sudo find /mnt/media -type d -exec chmod g+rx {} +
sudo find /mnt/media -type f -exec chmod g+r {} +
sudo systemctl restart emby-server
sudo -u emby ls -lah /mnt/media/Movies
上述递归修改只用于确认由自己管理的本地媒体目录;不要直接用于整个 /mnt、系统目录或带 NAS ACL 的共享。它保留原有 owner 权限,不把所有文件设为可执行。如果需要保存 NFO / 图片,再对指定媒体目录增加组写权限。配置、数据库和转码目录必须可写;媒体本身可以只读。不使用 chmod -R 777 或让服务以 root 运行作为默认修复。
6. Docker Compose 部署#
6.1 安装 Docker 与 Compose#
本节以 Linux Docker Engine 为主,不把 Docker Desktop 的 GPU 与 host 网络行为视为完全相同。已有 Docker 时先运行 docker version 和 docker compose version,确认能用,避免重复更换安装来源。
新 Debian 12 / 13 主机可按 Docker 官方 Debian 安装文档添加仓库。Ubuntu 使用 Ubuntu 官方步骤,不能照搬 Debian 仓库地址。以下仅针对全新 Debian:
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
若已有 docker.io、containerd 或其他容器平台,先按官方文档评估冲突,不盲目移除正在使用的组件。本文使用 sudo 执行 Docker,不需要将普通用户加入具备高权限的 docker 组。
6.2 准备持久化目录与运行身份#
采用专用非 root 用户。先创建账户,再记录数值 UID/GID;不要假定每台主机都是 1000。
sudo useradd --system --user-group --no-create-home --shell /usr/sbin/nologin emby-docker
id emby-docker
sudo install -d -m 0755 /srv/emby
sudo install -d -o emby-docker -g emby-docker -m 0750 /srv/emby/config /srv/emby/transcode
ls -lah /mnt/media
账户若已存在就跳过 useradd。媒体目录必须已经有文件且能按该 UID/GID 读取;NAS 先完成第 8 节的挂载。如果只是新建一个空的 /mnt/media,容器也只会看到空目录。
创建 /srv/emby/.env,填写实际数值:
EMBY_UID=填入实际UID
EMBY_GID=填入实际GID
EMBY_EXTRA_GIDS=填入实际GID
基础场景中 EXTRA_GIDS 可以与 EMBY_GID 一样;需要媒体组和 GPU 组时,用逗号加入对应的数值,例如 995,44,109,但这个例子不能直接套用。
6.3 最小可运行 Compose:先不启用 GPU#
使用编辑器创建 /srv/emby/compose.yaml:
services:
emby:
image: emby/embyserver:latest
container_name: emby
environment:
UID: "${EMBY_UID}"
GID: "${EMBY_GID}"
GIDLIST: "${EMBY_EXTRA_GIDS}"
ports:
- "192.168.1.20:8096:8096"
volumes:
- /srv/emby/config:/config
- /srv/emby/transcode:/transcode
- /mnt/media:/media:ro
restart: unless-stopped
把绑定地址改为 Docker 主机实际 LAN IP。固定绑定 LAN 地址适合先完成内网部署;若该 IP 不存在,容器会启动失败。Tailscale 访问 bridge 容器时,需要为主机实际 Tailscale 地址增加单独的端口绑定,或使用第 12 节的子网路由。若改成 8096
,将默认绑定多个接口,应先核对外部可达性。官方镜像的 UID/GID/GIDLIST 名称与部分第三方镜像不同,不混用 PUID/PGID。/config 是持久化配置;/media
表示媒体只读,不能把 NFO / 图片写回媒体目录。Emby 中添加媒体库时填写 /media/Movies,而不是宿主机 /mnt/media/Movies。参考:官方镜像说明。6.4 启动和验证#
cd /srv/emby
sudo docker compose config
sudo docker compose up -d
sudo docker compose ps
sudo docker compose logs --tail 100 emby
sudo docker exec emby ls -lah /media
然后在 LAN 客户端访问 http://192.168.1.20:8096,在转码设置中将临时路径设为 /transcode。不要把 /config 或 /media 指定为转码临时目录。
Docker 发布端口可能绕过 UFW 的常规入站规则。使用指定地址绑定、路由器限制和 Docker 适用的防火墙策略共同控制访问,不能因为设置了 UFW 就认为容器端口一定没有对外开放。
6.5 Host 与 Bridge 选择#
| 网络模式 | 配置 | 特点 |
|---|---|---|
| Bridge | ports 映射 | 易于指定监听地址;自动发现和 DLNA 可能需额外配置 |
| Host | network_mode: host | Linux 下与主机共享网络;LAN 发现与 DLNA 通常更容易 |
需要 host 时,在服务中加入 network_mode: host,并删除整个 ports 段。不要同时使用两者。Host 会让 Emby 使用主机网络接口,因此还要检查 Emby 监听、防火墙与外部路由。8096 已被另一个服务占用时,host 模式同样会冲突。DLNA 是否可用也取决于当前版本、插件和客户端,不仅由网络模式决定。
6.6 更新与回退准备#
更新前先完成第 14 节的配置备份,并记录当前镜像 ID / 版本。latest 是浮动标签;需要可复现部署时,可以在核验后使用具体稳定版标签或镜像摘要。
cd /srv/emby
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps
sudo docker compose logs --tail 80 emby
容器更新通过拉取镜像并重建完成。不要删除 config 来解决更新问题;数据库升级后也不能假定只切回旧镜像就一定能回退,需要匹配的旧配置备份。
7. NAS 与 Raspberry Pi 的安装路线#
7.1 Synology DSM 原生套件#
- 确认 NAS 型号、DSM 版本和 CPU 架构,到 Emby Synology 官方安装页下载对应 SPK。
- 套件中心选择手动安装,上传 SPK,安装后启动 Emby Server。
- 在 DSM 共享文件夹权限中检查套件的系统内部用户,授予媒体共享读取权限;需要写回 NFO 时再授予相应写入权限。账户名称与权限入口以实际套件为准。
- 从另一台设备访问 http://NAS内网IP:8096,再添加共享文件夹的实际路径。
- 如有 DSM 防火墙,仅向可信 LAN 或私人 VPN 放行所需端口。
NAS 上装好套件,不代表套件自动获得全部共享的读取权限。不要默认授予 Everyone 全部读写。
7.2 Synology Container Manager#
支持 Container Manager 的机型可以使用第 6 节的 Compose,将宿主机路径改为:
| 用途 | DSM 示例路径 | 容器路径 |
|---|---|---|
| 配置 | /volume1/docker/emby/config | /config |
| 转码临时文件 | /volume1/docker/emby/transcode | /transcode |
| 媒体 | /volume1/media | /media |
在 Container Manager 的项目中部署前,先创建目录并配置 ACL。Intel 核显机型检查 /dev/dri;只有设备节点确实存在时才增加 GPU 映射。这里的 UID/GID 必须来自 DSM 实际账户,不能照搬 Debian 数值。无需默认使用 privileged 或 UID=0。
7.3 QNAP#
从 Emby QNAP 官方安装页按架构下载 QPKG,通过 App Center 手动安装,启动后访问 NAS IP 与实际服务端口。为应用或容器的运行身份配置共享权限。
QNAP 原生包注意事项: 当前 Emby 官方安装说明要求允许安装和执行无数字签名的应用,并说明关闭此选项可能使应用被系统停止。这会降低 App Center 的默认保护。采用该路线前应理解影响,只使用官方来源;若不接受这个调整,可以评估机型支持的 Container Station 路线。
容器路线仍使用官方镜像、持久化 config、实际 UID/GID 和只读媒体映射。不要把 NAS 管理页面直接转发到公网。
7.4 TrueNAS SCALE / Community Edition#
当前容器型 Apps 与旧版 CORE jail / 旧版 SCALE 应用体系不同。先查看 Emby App 目录页的版本要求,不在所有 TrueNAS 版本上套用同一界面。
- 在 Apps 配置应用池,进入 Discover Apps 搜索 Emby,打开安装表单。
- 单独准备配置数据集,例如 tank/apps/emby/config,以及媒体数据集 tank/media;自行创建的数据集不要放进系统内部管理的 ix-apps / ix-applications。
- 配置持久化 Host Path,并添加媒体存储映射;建议让容器内路径保持 /media。记录表单的运行 UID/GID,按该身份配置数据集 ACL:配置可写,媒体可读并可遍历。
- 如需转码,在资源配置中选择实际 GPU,确认驱动与设备可用。
- 部署后通过 Web Portal 打开。App 的宿主机端口可能不是 8096,例如 9096;以安装表单和 Web Portal 为准。
遇到 Permission denied,应检查整个数据集路径的 ACL、运行身份和挂载映射。不要为排错递归覆盖整个存储池权限。参考:TrueNAS Emby 部署说明。
7.5 Unraid#
通过 Apps 找到 Emby 模板,先核对镜像仓库和维护者,使用官方 emby/embyserver。配置 /mnt/user/appdata/emby 到 /config,/mnt/user/media 到 /media,并设置正确运行身份和端口。
appdata 与媒体使用不同持久化目录;需要 Intel GPU 时映射实际 /dev/dri,NVIDIA 则先配置平台支持的驱动及容器运行环境。应用模板有默认值,不代表权限和路径适合所有机器。部署后检查日志、WebUI 和容器内部媒体路径。
7.6 Raspberry Pi#
确认系统架构:uname -m;64 位 ARM 系统通常显示 aarch64。选择官方支持的 ARM 原生包,或使用会自动选择受支持架构的官方多平台镜像。按照原生或 Docker 路线部署,不照抄 x86 专属 GPU 配置。
媒体优先放 USB 硬盘或 NAS,配置数据库尽量使用可靠存储,并保证电源、散热和有线网络。树莓派更适合少量用户、音乐、照片及客户端能直接播放的视频;硬件转码受型号、内核、镜像和 Emby 支持影响。看见 /dev/video* 并不证明 Emby 就能使用硬件编码,不能默认承诺多人 4K HEVC / HDR 实时转码。
8. NAS 存储挂载:SMB 与 NFS#
只使用一种方式挂载同一媒体路径。先在 NAS 创建专用媒体读取账户或限定 NFS 客户端权限,避免使用 NAS 管理员账户。以下示例在 Debian / Ubuntu Emby 主机执行。
8.1 SMB:凭据与只读挂载#
sudo apt install -y cifs-utils
sudo mkdir -p /mnt/media
sudo install -m 0600 /dev/null /root/.emby-smbcredentials
sudo nano /root/.emby-smbcredentials
在凭据文件中填写实际值,不要写进公开 Compose、截图或仓库:
username=NAS媒体账户
password=NAS媒体账户密码
原生部署用 id emby,Docker 用 id emby-docker,取得实际 UID/GID。下面 uid=123、gid=123 仅为占位示例,执行前必须替换:
sudo mount -t cifs //192.168.1.10/Media /mnt/media -o credentials=/root/.emby-smbcredentials,vers=3.0,ro,uid=123,gid=123,file_mode=0640,dir_mode=0750
findmnt /mnt/media
ls -lah /mnt/media
先确认 NAS 支持指定 SMB 版本;不为解决连接问题启用 SMB1。NAS 共享本身的 ACL 仍须允许该 NAS 用户读取,客户端 uid/gid 参数不会绕过服务端权限。
确认成功后,备份 /etc/fstab,使用编辑器加入一行,继续替换实际 UID/GID:
//192.168.1.10/Media /mnt/media cifs credentials=/root/.emby-smbcredentials,vers=3.0,ro,uid=123,gid=123,file_mode=0640,dir_mode=0750,_netdev,nofail,x-systemd.automount 0 0
如果测试挂载仍在使用,维护窗口中停止 Emby 后卸载,再加载 fstab;避免播放时卸载媒体:
sudo systemctl daemon-reload
sudo mount -a
ls /mnt/media
findmnt -T /mnt/media
需要写回元数据时,同时调整 NAS 权限和挂载选项,不能只删除 ro。不要对 CIFS 挂载目录直接套用本地磁盘 chmod 方案。
8.2 NFS:授权范围与 UID/GID#
在 NAS 开启 NFS,并限制允许访问的 Emby 主机地址;导出路径取决于 NAS,不一定是 /volume1/media。
sudo apt install -y nfs-common
sudo mkdir -p /mnt/media
showmount -e 192.168.1.10
sudo mount -t nfs -o ro 192.168.1.10:/volume1/media /mnt/media
findmnt /mnt/media
ls -lah /mnt/media
showmount 不能列出所有 NFSv4-only 服务器的导出,失败时应看 NAS 配置中的实际 NFS 路径。确认挂载后再写入 /etc/fstab:
192.168.1.10:/volume1/media /mnt/media nfs ro,_netdev,nofail,x-systemd.automount 0 0
NFS 需要处理 NAS 导出规则、UID/GID 映射和 ACL,不能仅靠客户端 chmod 修复。不要默认关闭 root squash 或授权整个互联网。
8.3 NAS 启动晚于 Emby#
_netdev 用于标记网络文件系统,nofail 允许主机在挂载失败时继续启动,automount 可在访问时触发挂载;它们不保证 NAS 已经在线,也不保证 Emby 一定等挂载成功。
原生 systemd 服务可以增加启动依赖,在编辑器中运行:
sudo systemctl edit emby-server
添加:
[Unit]
Wants=network-online.target
After=network-online.target
RequiresMountsFor=/mnt/media
保存后:
sudo systemctl daemon-reload
sudo systemctl restart emby-server
systemctl status emby-server --no-pager
findmnt -T /mnt/media/Movies
这里要求 /mnt/media 的挂载已在 fstab 正确配置;它约束启动顺序,不能代替挂载故障监控。若 NAS 长时间离线,应暂停扫描,先恢复挂载再恢复服务。
Docker 的 restart 策略也不检查 NAS 就绪。不要只写 unless-stopped 就认为启动顺序已解决;需要在启动容器前验证 NAS 挂载,或单独使用带挂载依赖与预检查的服务管理方案。修改整个 docker.service 的依赖会影响其他容器,不作为默认操作。
8.4 网盘、WebDAV、rclone、STRM:高级扩展#
这类方案应在本地媒体库稳定后再尝试。rclone 的 VFS 缓存会占用本地空间;扫描与拖动进度条还受远端延迟、API 限流和缓存命中影响。STRM 保存的是媒体地址,不是电影文件;播放时客户端或服务端仍需能访问实际地址。
302 跳转、短期签名链接和第三方网盘播放规则各不相同,不能假定所有客户端和网盘都长期支持。做好缓存上限、错误重试和账户保护,家庭照片与配置不能只依赖一个远端服务。
9. 首次初始化、用户与媒体库#
9.1 安装向导#
- 从可信 LAN 打开服务器地址,选择界面语言和服务器名称。
- 创建管理员并设置强密码。不要在尚未设好密码时开放公网访问。
- 先添加一个小型测试媒体库,确认内容类型、路径、刮削语言及地区。
- 只在家庭内网使用时,关闭外部远程访问及自动端口映射。使用私人 VPN 时按实际路径配置远程访问与访问控制,不能把“开启远程访问”理解为已经安全。
- 完成向导,扫描媒体库并实际播放一部影片。
不同版本的设置位置和名称可能变化,以当前控制台为准。Emby Connect 可以协助登录服务器,但不会自动解决 CGNAT、路由、端口或带宽问题。
9.2 管理员和家庭观看用户分开#
管理员用于维护,电视和家庭成员用普通账号。为普通用户选择允许访问的媒体库,并关闭不需要的媒体删除、服务器管理和其他管理权限。儿童账户按内容分级与实际需要设置限制。
只读文件挂载可以进一步防止服务器修改媒体,但不能替代用户权限;两者保护的是不同层面。不要为了测试播放把所有家庭用户设为管理员。
9.3 媒体目录与命名#
电影、电视剧、音乐、照片分别建库。示例:
| 类型 | 容器内媒体库路径 | Linux 原生路径示例 |
|---|---|---|
| 电影 | /media/Movies | /mnt/media/Movies |
| 电视剧 | /media/TV | /mnt/media/TV |
| 音乐 | /media/Music | /mnt/media/Music |
| 家庭照片 | /media/Photos | /mnt/media/Photos |
电影使用“片名 (年份)”目录,视频同名,例如 Movies/Avatar (2009)/Avatar (2009).mkv。匹配失败时可在识别界面使用正确数据库 ID,或按官方规则在名称中增加 [tmdbid=正确ID]。
电视剧使用剧名目录、季目录和 SxxExx 集数,例如 TV/Example Show (2020)/Season 01/Example Show - S01E01.mkv。多季、特别篇和多集文件按 电影命名与 电视剧命名说明整理,不把不同季的所有文件堆在同一层。
9.4 tinyMediaManager 与 NFO#
tinyMediaManager 可以帮助识别作品、下载图片、生成 NFO 与整理文件名。操作前备份,并先用少量文件测试重命名规则;核对作品 ID、年份、季集顺序和元数据语言。
如果已有 NFO 与海报,在 Emby 媒体库中配置相应本地元数据读取方式,并明确由哪套工具管理元数据。只读媒体库可读取已有 NFO,但无法把新元数据写回。不要一开始对整个库执行“覆盖全部元数据”。
10. 直接播放、重新封装与转码#
| 播放方式 | 服务器处理 | 常见原因 | 资源需求 |
|---|---|---|---|
| Direct Play | 直接发送媒体 | 客户端支持视频、音轨、字幕和容器,带宽足够 | 主要是磁盘与网络 |
| Direct Stream | 保留视频编码并重新封装;音频可能单独转换 | 容器或音频不兼容 | 通常明显低于视频转码 |
| Transcoding | 重新编码视频,可能同时处理音频、字幕、色调映射 | 编码不支持、码率限制、字幕烧录、HDR 转 SDR | CPU / GPU、缓存与存储 |
不要把所有卡顿都归因于 CPU,也不要认为转码一定不流畅。硬件、输入格式和设置合适时,转码可以正常使用,但会改变画质并增加计算负担。
客户端 Max streaming bitrate 低于文件码率时可能触发转码;PGS、VobSub 或某些 ASS 字幕也可能因客户端不支持而烧录。HDR 色调映射另有平台、硬件和许可条件。参考:Emby 转码说明。
11. 硬件转码与临时目录#
11.1 先确认许可和支持条件#
大多数平台的硬件加速转码、HDR 转码色调映射及 Backup & Restore 插件属于 Emby Premiere 功能。官方功能表列有部分设备例外;客户端完整播放、应用解锁和 Premiere 也不是同一个概念。配置前查看 Premiere 功能表。
需要同时满足:支持的视频引擎、正确驱动、系统设备权限、容器设备映射(如果使用 Docker)、Emby 当前支持以及有效许可。看到 GPU 名称或 /dev/dri 不代表所有编码、位深、字幕和 HDR 处理都已加速。
11.2 Intel / AMD:Linux 设备与权限#
ls -l /dev/dri
getent group video
getent group render
通常存在 renderD128;检查它实际所属组。原生 Emby 可将运行用户加入存在的相关组,例如:
sudo usermod -aG render emby
sudo usermod -aG video emby
sudo systemctl restart emby-server
只执行系统中确实存在的组。Docker 在 Compose 服务内增加以下同级段落:
devices:
- /dev/dri:/dev/dri
把 render node 的实际数值 GID 加入 .env 的 EMBY_EXTRA_GIDS,重建容器并检查:
cd /srv/emby
sudo docker compose up -d
sudo docker exec emby ls -l /dev/dri
Windows 可用的硬件接口包括 Intel Quick Sync、NVIDIA 和 AMD 对应接口;Linux 主要查看 Quick Sync、VAAPI、NVENC/NVDEC 的支持情况。AMD Linux 支持、HDR 和编解码能力需按实际 GPU 与版本验证,不承诺等同于 Intel。参考:Linux 硬件加速、Windows 硬件加速。
11.3 NVIDIA#
先在宿主机安装适合显卡与系统的官方驱动,验证 nvidia-smi。Docker 还需要 NVIDIA Container Toolkit 与正确 GPU 请求配置,仅映射 /dev/dri 不足以完成 NVIDIA 容器部署。
按照 NVIDIA Container Toolkit 官方文档配置并验证容器内 GPU,再在 Emby 选择受支持的加速器。驱动安装方法依系统而异,不把别的发行版命令硬套过来。
11.4 单独的转码临时目录#
原生 Linux 可以创建:
sudo install -d -o emby -g emby -m 0750 /var/cache/emby-transcode
sudo -u emby test -w /var/cache/emby-transcode
在 Emby 转码设置中使用 /var/cache/emby-transcode;Docker 示例使用 /transcode。目录必须专用且可写,Emby 会清理其中内容,不要放媒体、备份或其他重要文件。大码率或多人转码需要相应空间,不把小容量内存盘作为普遍默认方案。
11.5 验证真实播放任务#
选一个会触发转码的测试文件,在控制台活动设备中检查 Direct Play / Direct Stream / Transcoding,打开 hardware_detection 与 ffmpeg-transcode 日志,看实际解码器、编码器与错误。Direct Play 时 GPU 空闲是正常的。
Intel 可观察 intel_gpu_top;NVIDIA 可观察 nvidia-smi;同时检查 CPU 与转码输出速度。部分字幕、音频和滤镜仍可能消耗 CPU。报告问题时附媒体信息、客户端、播放原因和相关日志,先移除 API key、访问令牌与私人地址。
12. 远程访问:先选访问边界#
| 方案 | 客户端要求 | 公网入口 | 适合谁 |
|---|---|---|---|
| 只用 LAN | 同一可信家庭网络 | 无 | 只在家观看 |
| Tailscale 私人网络 | 设备安装客户端,或经子网路由访问 | 不直接公开 Emby | 家庭成员、少量自用设备 |
| 公网 HTTPS + 反向代理 | 普通 Emby 客户端 | 受控的 HTTPS 入口 | 需要不安装 VPN 的设备 |
| Cloudflare 私有网络路由 | Cloudflare One Client 与相应访问策略 | 私有路由 | 已使用 Zero Trust 的家庭环境 |
无论选择哪种方式,都先保证 LAN 播放成功。私人网络也需要登录保护和访问规则;不能把加入同一个 VPN 等同于所有用户应有管理权限。
12.1 Tailscale:最直接的私人访问#
- 按 Tailscale 官方快速开始在 Emby 主机和外出设备安装客户端,并加入同一个受控 tailnet。
- 在主机执行 tailscale ip -4,取得实际 Tailscale IP;tailscale status 检查在线状态。
- 从外出设备访问 http://实际TailscaleIP:8096;启用 MagicDNS 时可使用实际设备名称。
- 配置主机防火墙、tailnet 访问策略,以及 Emby 用户的远程访问权限。只允许需要的成员访问媒体服务。
- 手机关闭 Wi-Fi,使用移动数据测试登录、起播和拖动进度条。
本教程不固定写 Tailscale 免费套餐人数与设备额度,按当前官方套餐为准。直接连接与中继路径的表现不同;tailscale ping 对端地址可以帮助观察路径。即使连接成功,家庭上行和中继吞吐仍可能限制高码率播放。
第 6 节 bridge 示例只绑定 LAN 地址,不会自动监听 Tailscale IP。可增加绑定到主机实际 Tailscale 地址的第二条 ports 规则,或采用下面的子网路由方案;若使用 host 网络,则检查 Emby 与防火墙是否允许该路径。
12.2 NAS 无法安装客户端:子网路由#
在能够长期运行的 Linux 网关上安装并登录 Tailscale,启用必要的 IP 转发,在防火墙中限制转发范围。示例只发布 NAS 192.168.1.10 的主机路由,避免默认暴露整个 LAN:
sudo tee /etc/sysctl.d/99-emby-tailscale.conf >/dev/null <<'EOF'
net.ipv4.ip_forward = 1
EOF
sudo sysctl -p /etc/sysctl.d/99-emby-tailscale.conf
sudo tailscale set --advertise-routes=192.168.1.10/32
若 Emby 在 192.168.1.20,应将路由改为该地址 /32。需要整段家庭网络时,才改为实际网段,例如 192.168.1.0/24。已有 advertise-routes 配置时先记录并保留所需路由;set 会改变发布列表。
在 Tailscale 管理控制台批准路由,并设置只允许所需成员访问目标 IP 和端口的规则。Linux 客户端可能还需 sudo tailscale set --accept-routes。之后通过 NAS 或 Emby 的 LAN IP 访问。路由审批、访问策略和主机防火墙分别检查,参考 Subnet routers 官方说明。
12.3 公网 IPv4 / IPv6、DDNS 与 HTTPS#
检查路由器 WAN 地址与运营商分配情况。WAN IPv4 属于私网或 100.64.0.0/10 时,可能存在上游 NAT / CGNAT;不要单凭一次地址对比就认定可以入站。公网 IPv6 也需要双方网络支持、稳定地址或 DDNS,以及明确的 IPv6 防火墙放行。
使用公网方案时,以域名指向真正可达的入口,部署有效 HTTPS 证书和反向代理,再验证 WebSocket、Range 请求及客户端播放。DDNS 只更新解析,不能提供端口穿透,也不会增加带宽。关闭 Emby 自动 UPnP 映射,明确由谁负责端口转发。
完整 Nginx 配置见本站 反向代理 Emby(Linux) 与 反向代理 Emby(Windows Server)。家庭宽带没有公网入口时,不能仅复制 Nginx 配置就实现外网访问;若另用 VPS,还需要设计从 VPS 到家庭服务器的可达链路。
12.4 Cloudflare Tunnel 的边界#
Cloudflare Tunnel 的公开 hostname 与私有网络路由是不同方案。当前官方政策说明,Free / Pro / Business 下的公开 hostname 视频与大量大文件流量受相应交付条款约束;不要把普通公开 Tunnel 当作默认长期 Emby 视频中转。
私有网络路由可以结合 Cloudflare One Client 与访问策略,官方说明上述限制不适用于 private network routes。它仍需单独配置路由、客户端和权限,也不会绕过家庭上行限制。Quick Tunnel 不作为长期家庭媒体部署方案。参考:Cloudflare 视频交付与 Tunnel 政策。
13. 端口、安全与自动恢复#
13.1 常用端口#
| 端口 | 用途 | 是否必须开放 |
|---|---|---|
| TCP 8096 | Emby HTTP | 可信 LAN / 私人网络按需允许 |
| TCP 8920 | Emby 自身 HTTPS | 仅实际启用并配置证书时使用 |
| UDP 7359 | 本地客户端发现 | 手动输入地址时通常可不开放 |
| UDP 1900 | SSDP / DLNA | 仅启用相应功能时使用 |
| TCP 443 | 反向代理 HTTPS | 仅公网或 HTTPS 架构实际需要 |
8920 不是安装完就自动可用的 HTTPS 服务。不要把发现、DLNA 或 NAS 管理端口映射到公网;通过 Nginx 终止 TLS 时,通常无需同时公开 Emby 的全部端口。
13.2 基本保护#
管理员使用独立强密码,家庭成员按需授权;只安装可信插件并及时维护系统。关闭不需要的远程访问与自动端口映射;公开入口使用 HTTPS。非默认端口可减少部分扫描噪声,但不能替代身份验证和更新。
服务器日志、Compose、NFO 中可能包含私人路径或令牌,求助前脱敏。配置备份也包含用户与密钥,应限制访问并考虑加密,不存放在公开 Web 目录。
13.3 自动启动与断电恢复#
| 部署方式 | 检查项目 |
|---|---|
| Linux 原生 | systemctl is-enabled emby-server |
| Docker | Docker 开机启动、容器 restart 策略、NAS 挂载就绪 |
| Windows | 登录启动或已验证的 Windows Service |
| macOS | 登录项目需用户登录;系统级启动需独立验证 |
| NAS Apps / 套件 | 平台自动启动、卷解锁、ACL 与 GPU 资源 |
Docker 查看策略:
sudo docker inspect emby --format '{{.HostConfig.RestartPolicy.Name}}'
unless-stopped 表示手动停止的容器不会在之后自动恢复;维护后记得重新启动。BIOS / 固件中可检查 Restore on AC Power Loss,支持时按需要设置恢复供电后开机。UPS 能减少意外断电,但仍需要正确关机与备份。
部署后实际重启服务器,验证网络、磁盘、NAS 挂载、服务与客户端播放。不要仅看到“已启用”就认为整个链路已经完成无人值守恢复。
14. 备份、恢复与迁移#
14.1 分开备份媒体与配置#
媒体备份包括电影、家庭录像、照片、音乐以及自己维护的 NFO / 图片。Emby 配置备份包括用户、播放状态、收藏、媒体库设置、数据库、元数据、插件配置等。转码临时文件通常不需要备份。
官方 Backup & Restore 插件需要 Premiere,必须设置可写的绝对备份路径,并手动执行一次任务验证。它不代替媒体文件备份,摄像头上传与录像目录等也要单独核对。插件、第三方插件数据库和旧版本备份的兼容性应按当前说明检查。
14.2 Docker:停止写入后备份 config#
下面备份到 /srv/emby-backups,适合先形成一致的配置快照;之后还要复制到另一台设备或异地位置,不能只保存在同一块盘:
sudo install -d -m 0700 /srv/emby-backups
cd /srv/emby
sudo docker compose stop emby
sudo tar -czf /srv/emby-backups/config-$(date +%F-%H%M%S).tar.gz -C /srv/emby config
sudo cp compose.yaml /srv/emby-backups/compose.yaml
sudo cp .env /srv/emby-backups/emby.env
sudo docker compose start emby
sudo docker compose ps
先确认 tar 成功再继续;无论备份成功与否都应在检查后恢复服务,避免遗忘停机。备份 config 保留权限,记录镜像版本;不要在数据库活跃写入时仅复制部分数据库文件。compose 与 env 副本也应受保护。
原生安装需先在控制台或日志确认实际数据目录,再停服务备份整套程序数据。不同平台路径不同,不把 Linux 默认目录硬套到 Windows / macOS。
14.3 恢复与迁移步骤#
- 保留旧服务器和完整备份,记录 Emby 版本、插件、媒体路径和网络设置。
- 新服务器安装兼容版本,在恢复期间停止新服务。
- 恢复配置并校正 owner / UID/GID;不要让两台服务器同时写同一个数据库目录。
- 先恢复存储挂载,再核对媒体路径。Docker 内部始终使用 /media/Movies 和 /media/TV,可以减少宿主机变化带来的影响。
- 启动并验证用户、播放记录、收藏、媒体库和实际播放。跨 Windows / Linux 的路径分隔符与目录变化可能需要额外处理,不能承诺直接复制即可无损迁移。
- 更新 DHCP 保留、客户端地址、DDNS 和反向代理;使用手动端口转发时更新目标 IP。
- 确认新环境稳定后再停用旧服务器,保留可恢复的旧配置。
至少做一次恢复演练。能生成压缩包不等于能成功恢复;RAID、快照和配置备份各有作用,不能相互替代。
15. 故障排查:症状 → 检查 → 修复#
15.1 打不开 IP#
先在服务器测试 127.0.0.1,再测试 LAN,最后测试远程,按层次缩小范围。
systemctl status emby-server --no-pager
sudo ss -lntp | grep ':8096'
curl -v http://127.0.0.1:8096
Docker 用:
sudo docker compose -f /srv/emby/compose.yaml ps
sudo docker logs emby --tail 100
本机也失败:查服务、日志与端口冲突。本机正常、LAN 失败:查绑定地址、防火墙、访客网络隔离、错误 IP。TrueNAS 或 NAS 容器还要看宿主机实际映射端口。
15.2 容器启动失败#
在项目目录运行 sudo docker compose config 检查 YAML 与环境变量;检查 .env 数值、源目录、IP 绑定与 GPU 节点是否存在。日志出现 address already in use 时查端口;bind source path 不正确时查磁盘与目录;映射不存在的 /dev/dri 时先移除 GPU 配置完成基础启动。
15.3 看不到媒体或 Permission denied#
宿主机与容器分别检查:
ls -lah /mnt/media
namei -l /mnt/media/Movies
sudo docker exec emby ls -lah /media
宿主机也没有文件:先修磁盘或 NAS 挂载。宿主机有、容器没有:检查 volumes 和实际容器。容器有、Emby 扫描不到:查运行 UID/GID、父目录遍历权限、媒体库路径和内容类型。原生 Linux 进一步用 sudo -u emby ls 测试。不要默认 chmod 777。
15.4 SMB / NFS 无法挂载#
SMB 的 mount error(13) 先查 NAS 账户、凭据文件、共享 ACL 和 SMB 版本。NFS 查导出路径、客户端 IP 白名单、UID/GID 和防火墙。运行 findmnt -T /mnt/media/Movies 与 journalctl 查看挂载相关错误,区分挂载目录本身与实际网络文件系统。
15.5 NAS 重启后媒体变空#
先暂停扫描,确认 NAS 在线且挂载恢复,再重启 Emby。_netdev / nofail 不会无限等待 NAS;检查第 8 节的自动挂载与依赖。在未恢复挂载时不要执行删除库、重建数据库或大范围元数据刷新。
15.6 硬件加速没有生效#
先确认播放实际发生视频转码、Premiere 状态、设备支持和驱动,再检查运行身份与容器 GPU。看 hardware_detection 和 ffmpeg-transcode 日志。Direct Play 时没有 GPU 占用并不是故障;只加速解码也不等于编码和色调映射都加速。
15.7 CPU 很高或一直转码#
在播放信息中查看原因。逐项测试客户端编码支持、最大码率、音轨、字幕烧录和 HDR 转 SDR。暂时关闭字幕或换兼容音轨做对照,不能通过强行禁用所有转码保证每个客户端都能播放。
15.8 4K 卡顿,但 CPU 不高#
查服务器有线链路、电视 Wi-Fi / 网口、NAS、磁盘与峰值码率。两端安装 iperf3 后,在可信 LAN 服务器运行 iperf3 -s,另一端运行 iperf3 -c 192.168.1.20,测试结束停止服务;该测试端口不需要公开到互联网。
同时可观察 iostat -xz 1 和网络吞吐;这些工具按系统包管理器安装。大文件顺序读取快,不代表媒体库扫描和拖动也快。检查硬盘休眠、SMB 延迟与网盘限速。
15.9 外网能登录,播放却卡#
先测家庭上行和远端实际路径。若家庭上行约 30 Mbps 而影片码率约 70 Mbps,持续直接播放通常无法满足带宽需求。降低客户端远程最大码率,例如先测试 10 Mbps,观察是否转码、转码速度和画质,再根据实测调整。多用户共享同一上行,还要预留峰值与协议开销。
15.10 8096 端口冲突#
sudo ss -lntp | grep ':8096'
sudo docker ps --format 'table {{.Names}}\t{{.Ports}}'
Jellyfin 或第二个 Emby 实例可能使用相同端口。保留需要的服务,并为另一个 bridge 容器选择不同宿主机端口,例如 8097
,客户端相应改用 8097;不要同时运行两个实例写同一 config。15.11 海报匹配错误或扫描缓慢#
先修正片名、年份、季集与数据库 ID,只刷新单个测试项目。扫描缓慢时检查媒体数量、小文件延迟、硬盘休眠、刮削源连通性和网盘 API;不要不断全库刷新加重压力。NFO 与在线来源冲突时,确定元数据优先级。
15.12 重启后服务未启动#
Linux 看 is-enabled 与 journalctl;Docker 看 daemon、restart 策略和挂载;Windows 看实际服务账户或是否尚未登录;Mac 看登录项目和卷解锁。还要确认固件恢复供电设置,不能只检查 Emby 一个进程。
15.13 更新后“配置丢失”或迁移后影片离线#
先停止操作,检查 /config 是否挂到了原来的宿主机目录,Compose 项目是否换了位置、UID/GID 是否变化。影片离线则检查新旧媒体路径与挂载。不要删除旧数据或重新初始化;找到正确目录、修复权限,再从一致备份恢复。
16. 部署完成后的检查清单#
- 已选择一种安装路线,系统、安装包和镜像来自可信官方来源。
- 服务器和 NAS 的 LAN 地址稳定,服务器优先有线连接。
- 从另一台 LAN 设备可登录、播放、快进并加载字幕。
- 管理员与观看账户分开,媒体删除与管理权限按需收紧。
- 媒体路径、运行身份、配置写入与媒体读取权限已验证。
- 硬件转码按实际播放与日志验证,已核对许可和格式支持。
- 转码临时目录专用、可写且空间足够。
- 远程访问使用明确方案,已从移动数据测试,未误开放 NAS 管理或发现端口。
- 已重启测试自动启动、磁盘挂载与 NAS 启动顺序。
- 配置与重要媒体有独立备份,并完成过一次恢复验证。
17. 官方资料与进一步阅读#
本文按家庭部署场景整理。软件版本、NAS 菜单和服务政策可能更新,实际部署前核对对应平台说明;本文命令是配置示例,仍需在你的设备上完成验证。

