浏览文档

emby.wiki · 文档

Emby 搭建指南

从新购 VPS 开始,完成 Debian、Ubuntu、Rocky、AlmaLinux 与 Windows Server 的 Emby 安装、初始化、权限、网络配置和维护排错。

目录#

  1. 这篇教程适合谁
  2. 准备服务器、系统和登录方式
  3. Debian / Ubuntu 安装
  4. Rocky / AlmaLinux 及其他 RPM 系统安装
  5. Linux 首次启动与检查
  6. 准备媒体目录和 Linux 权限
  7. Windows Server 安装与开机运行
  8. 端口、系统防火墙和云安全组
  9. 第一次访问与初始化
  10. Linux 服务管理与日志
  11. 更新与备份
  12. 停止、重启和卸载
  13. 按现象排查常见问题
  14. 日常维护与验收
  15. 下一步:客户端与反向代理
  16. 参考资料与版本差异

1. 这篇教程适合谁#

你已经购买一台 VPS 或云服务器,刚安装好操作系统,希望把自己的电影、剧集或音乐整理成可以通过网页和客户端访问的媒体库。本文从登录服务器讲起,使用 Emby Server 原生软件包,覆盖 Debian、Ubuntu、Rocky Linux、AlmaLinux 和 Windows Server。

Linux 按自己的发行版执行其中一组安装命令,然后继续阅读目录、权限、防火墙和初始化章节。Windows 用户可以直接阅读第 7~9 节。服务管理、备份和排错章节用于安装后的维护。

Emby Server 不会自动提供电影,也不会把你电脑上的文件自动搬到 VPS。你需要把有权使用的媒体上传到服务器,或先挂载能够合法访问的存储。域名和反向代理可以等服务安装成功以后再配置。

2. 准备服务器、系统和登录方式#

2.1 系统与资源怎么选#

环境本文的安装方式需要确认的事项
Debian / Ubuntu官方 stable APT 仓库,备用 .deb使用仍受维护的 Debian stable 或 Ubuntu LTS;确认系统与包架构
Rocky Linux / AlmaLinux官方 stable RPM 仓库,DNF 安装使用仍受维护的发行版;保留 SELinux 和软件包签名检查
RHEL / CentOS Stream / Oracle Linux / Fedora同一 RPM 方法包管理方式相近,但不代表每个版本、CPU 和依赖组合都已通过 Emby 官方认证
Windows Server官方 Windows 安装器或 x64 portable ZIP本文按带 Desktop Experience 的 x64 环境编写;Server Core 不在这套图形操作步骤范围内

Windows Server 2019、2022、2025 是常见云镜像。Emby 下载页给出的 Windows 要求比较宽泛,没有逐项列出这些 Server 版本的完整支持矩阵;应结合当前下载说明和实际错误检查。2025 已有安装器失败的官方论坛记录,见 Windows 安装和排错章节。不要因为旧文档写着 Windows Vista / Windows 7 就新建已停止安全维护的系统。

硬件需求主要由播放方式决定:Direct Play(直接播放) 主要消耗磁盘和网络;实时视频转码需要更多 CPU 或可用的视频加速设备。普通 VPS 通常没有可以使用的 GPU,ARM 服务器也不等于具备硬件转码能力。

作为小规模、以直接播放为主的起点,可以按 2 vCPU、2~4 GB 内存规划 Linux,Windows 还要为操作系统预留更多内存。这是容量规划建议,不是 Emby 的统一最低要求,更不是 4K 转码保证。系统盘应容纳软件、数据库、海报、日志和转码临时文件;媒体空间另算。还要核对出站带宽、月流量和云磁盘费用。

2.2 先保留可靠的管理入口#

在云控制台确认公网 IP、初始用户名、SSH 密钥或密码,并找到串口 / VNC / 救援控制台入口。Linux 通常使用 SSH;Windows 使用 RDP。管理端口只允许自己的来源 IP,SSH 默认 TCP 22,RDP 默认 TCP 3389;如果厂商修改了端口,按实际值处理。

下面的 SSH 命令在你的电脑终端执行,把示例用户名和 IP 改为厂商提供的值:

ssh ubuntu@203.0.113.10

Debian 镜像可能使用 debian,Rocky 可能使用 rocky,部分镜像使用 root、almalinux、opc 或 ec2-user,不要靠猜。指定密钥和非默认端口时:

ssh -p 2222 -i ~/.ssh/your_server_key ubuntu@203.0.113.10

首次连接应与云控制台提供的信息核对主机身份。203.0.113.10 是文档示例地址,不能照抄。以下 Linux 命令在已经登录的 VPS上执行;代码块不带 Shell 提示符,可以整块复制。普通账户保留 sudo;已是 root 时省略 sudo。若最小镜像没有 sudo,用厂商提供的 root / 控制台完成准备,不要为此放宽 SSH 安全策略。

whoami
cat /etc/os-release
uname -m
ps -p 1 -o comm=
df -h
free -h
timedatectl status

/etc/os-release 识别发行版,df -h 看空间,free -h 看内存。本文的服务命令要求 PID 1 是 systemd;受限制的容器型 VPS 若不是 systemd,需要先向厂商确认服务管理能力。系统时间明显不正确时,先按厂商 / 发行版文档恢复时间同步,否则 HTTPS 下载和签名验证可能失败。

2.3 架构名称不要混用#

uname -m 常见结果CPU 家族Debian / Ubuntu 包架构RPM 包架构
x86_6464 位 Intel / AMDamd64x86_64
aarch6464 位 ARMarm64aarch64
armv7l32 位 ARM通常是 armhf,还需核对 ABI只有当前发行版及下载渠道确实提供匹配包时才可使用

amd64 也适用于 Intel 的 64 位 CPU。arm64 与 aarch64 是同一类 64 位 ARM 架构的不同命名,不能安装 x86 包。Debian / Ubuntu 再检查一次用户空间架构:

dpkg --print-architecture

RPM 系统可查询:

rpm --eval '%{_arch}'

官方 APT 仓库当前列有 amd64 arm64 armhf。GitHub 当前稳定版提供 amd64/arm64/armhf 的 DEB,以及 x86_64/aarch64 的 RPM;下载页旧模板中的 ARMv7 RPM 条目不表示当前稳定版一定有该文件。32 位系统、特殊 ABI 和新 CPU 基线须另行确认,不强行安装。

3. Debian / Ubuntu 安装#

3.1 更新系统并安装工具#

在刚安装好的服务器上更新索引、安装系统更新。查看更新清单再确认,安装期间若询问配置文件如何处理,阅读差异,不要盲目覆盖云镜像的 SSH 配置。

sudo apt update
sudo apt upgrade
sudo apt install curl ca-certificates acl util-linux iproute2 procps

这些工具用于 HTTPS 下载、证书验证、ACL、挂载、端口和进程 / 内存检查。软件包管理器会处理 Emby 的依赖,不需要预先照旧教程安装 Mono、旧版 .NET、apt-transport-https 或一长串来历不明的组件。系统更新提示需要重启时,确认云控制台可用后执行 sudo reboot,等待 SSH 恢复再继续。

3.2 添加官方 stable APT 仓库#

按 Emby 官方 APT 文档安装独立 keyring 和 Deb822 来源文件:

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
cat /etc/apt/sources.list.d/emby.sources
sudo apt update
apt-cache policy emby-server

来源应是 https://pkg.emby.media/apt/,Suites 为 stable,Signed-By 指向刚保存的 keyring。apt-cache policy 应能看到来自这个仓库的候选版本。任何下载或索引更新失败,先解决错误再继续。 不添加 beta 来源,不使用 apt-key、trusted=yes 或关闭签名检查作为修复。

sudo apt install emby-server
dpkg-query -W -f='${Package} ${Version} ${Architecture}\n' emby-server

第二条应显示已安装的包名、版本和正确架构。APT 会自动选择匹配架构,文章不固定一个很快过时的 Emby 版本号。

3.3 备用:手动下载官方 DEB#

只有不采用仓库时才执行这一小节,两种安装方式选一种。前往 官方 Linux 下载页,选择 Debian / Ubuntu、自己的架构和稳定版,复制 .deb 链接;也可以在 官方 GitHub Releases 的 Assets 中查找匹配文件。

把下方变量替换为该文件的完整 HTTPS 地址。不要保留占位文字,也不要下载 beta 或第三方修改包。

EMBY_DEB_URL='PASTE_OFFICIAL_STABLE_DEB_URL_HERE'
EMBY_PACKAGE_DIR=$(mktemp -d /var/tmp/emby-package.XXXXXX)
chmod 0755 "$EMBY_PACKAGE_DIR"
curl -fL --proto '=https' --proto-redir '=https' \
  "$EMBY_DEB_URL" -o "$EMBY_PACKAGE_DIR/emby-server.deb"
dpkg-deb -f "$EMBY_PACKAGE_DIR/emby-server.deb" Package Version Architecture
sudo apt install "$EMBY_PACKAGE_DIR/emby-server.deb"

元数据应显示 emby-server 和前面检查出的架构。使用 APT 安装本地包可以从已配置的系统仓库解决依赖,比单独 dpkg -i 更适合新用户。下载文件不会自动建立更新仓库,后续需要手动下载新稳定包再安装。参考:Debian APT 手册、Ubuntu 软件管理。

4. Rocky / AlmaLinux 及其他 RPM 系统安装#

4.1 更新系统并配置官方仓库#

Rocky、AlmaLinux、RHEL、CentOS Stream、Oracle Linux 和 Fedora 使用 RPM / DNF 体系。下面直接下载 .repo 文件,避免 DNF 4 与 DNF 5 的 config-manager 参数差异;不需要为安装 Emby 随意开启 EPEL、CRB 或第三方仓库。

sudo dnf upgrade
sudo dnf install curl ca-certificates acl util-linux iproute procps-ng
sudo curl -fsSL https://pkg.emby.media/rpm/emby.repo \
  -o /etc/yum.repos.d/emby.repo
cat /etc/yum.repos.d/emby.repo
sudo dnf makecache --refresh
dnf repolist
dnf info emby-server

当前 stable 仓库 ID 为 emby,地址包含 /rpm/stable/ 和 $basearch,配置中的 gpgcheck=1、repo_gpgcheck=1 应保留。第一次验证可能询问是否导入 Emby 公钥,核对来源为 https://pkg.emby.media/keys/emby-public.asc 及官方文档后确认;不要从未知镜像导入密钥。

sudo dnf install emby-server
rpm -q --queryformat '%{NAME} %{VERSION} %{ARCH}\n' emby-server

应看到匹配的 x86_64 或 aarch64 包。服务管理仍然使用 systemd 的 emby-server,不是 emby、embyserver 或 SysV 的旧命令。

参考:Emby 官方 DNF 文档、Rocky 软件管理。官方论坛也有 AlmaLinux / Rocky 的 RPM 实践讨论,但它不能证明所有新发行版组合均可运行;以包管理器的依赖检查和当前 Emby 说明为准。

4.2 备用:手动下载官方 RPM#

没有配置仓库时,从官方 Linux 下载页或 GitHub 稳定版选择匹配架构的 .rpm,把完整 HTTPS 链接填入变量:

EMBY_RPM_URL='PASTE_OFFICIAL_STABLE_RPM_URL_HERE'
EMBY_PACKAGE_DIR=$(mktemp -d /var/tmp/emby-package.XXXXXX)
chmod 0755 "$EMBY_PACKAGE_DIR"
curl -fL --proto '=https' --proto-redir '=https' \
  "$EMBY_RPM_URL" -o "$EMBY_PACKAGE_DIR/emby-server.rpm"
rpm -qp --queryformat '%{NAME} %{VERSION} %{ARCH}\n' \
  "$EMBY_PACKAGE_DIR/emby-server.rpm"
sudo dnf install "$EMBY_PACKAGE_DIR/emby-server.rpm"

DNF 负责解析依赖。直接下载不等于已经验证发布者的 RPM 签名;本地包的检查还受系统 localpkg_gpgcheck 策略影响。需要可审计的签名验证时优先用上面的官方仓库;不要在遇到签名错误后追加 --nogpgcheck、--nodeps 或 --force。手动包更新仍需重新下载,不保证仅执行 dnf upgrade 就获得下一版 Emby。

5. Linux 首次启动与检查#

安装包提供服务定义和服务账户,无需手写 systemd unit。确保云安全组尚未向所有来源开放 8096,再执行:

sudo systemctl enable --now emby-server
systemctl is-enabled emby-server
systemctl is-active emby-server
sudo systemctl status emby-server --no-pager -l
sudo ss -lntp 'sport = :8096'
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8096/

预期 is-enabled 为 enabled、is-active 为 active,状态显示 active (running);ss 能看到 8096 的 TCP 监听,HTTP 返回页面或跳转的状态码,例如 200 / 302。不是所有版本都返回同一状态码,000 表示 curl 没有拿到 HTTP 响应。

enable 设置开机启动,--now 同时启动本次服务。端口已经监听只证明进程在接收连接;还需要浏览器能够显示向导 / 登录页。若失败,先查看:

sudo journalctl -u emby-server -n 100 --no-pager
sudo systemctl cat emby-server
id emby
systemctl show emby-server -p User -p Group -p ExecStart

官方 Linux 包通常以 emby 用户运行,默认数据目录为 /var/lib/emby。systemctl cat/show 和后台的服务器信息是确认当前安装路径、运行用户和启动参数的依据;旧文档中的配置文件位置不能替代实际 unit。见 官方 Linux 说明和数据目录说明。

6. 准备媒体目录和 Linux 权限#

6.1 新服务器:使用自己管理的本地目录#

系统盘空间够用时可以先使用 /data/media;数据盘、NAS 挂载可用 /mnt/media。媒体目录、Emby 数据目录和转码临时目录是三件不同的事,不要把电影复制进 /var/lib/emby 当作配置。

下面仅创建新的本地媒体目录:

sudo groupadd -f media
sudo usermod -aG media emby
sudo install -d -o "$(id -un)" -g media -m 2750 \
  /data/media /data/media/Movies /data/media/TV /data/media/Music
sudo systemctl restart emby-server

目录所有者是执行命令的当前账户;如果你已切换到 root,它就是 root。2750 允许所有者写入、media 组读取和进入,其他账户不能访问;其中 setgid 位让新建内容继承目录的组。usermod -aG 的 -a 必须保留,它表示追加组,不会替换原来的组。服务需要重启才能取得新增组成员身份。

用 SFTP / WinSCP / 云厂商支持的上传方式,把媒体传到这里;使用普通上传账户时,该账户应拥有目标目录写权限。建议先上传少量文件测试:

/data/media/
├── Movies/
│   └── Example Movie (2024)/Example Movie (2024).mkv
├── TV/
│   └── Example Show/Season 01/Example Show S01E01.mkv
└── Music/
    └── Artist/Album/01 - Track.flac

如果上传工具保留了过于严格的文件权限,media 组仍可能读不到内容。对确认由自己管理的这一棵本地目录补充组读取权限:

sudo find /data/media -type d -exec chmod g+rx {} +
sudo find /data/media -type f -exec chmod g+r {} +
sudo -u emby ls -lah /data/media/Movies

目录需要 x 才能进入,文件需要 r 才能读取;不必给电影文件增加可执行位。如果文件没有继承 media 组,再检查 ls -l,按下一节修正实际媒体目录的组。

6.2 已有目录:保留 owner,按需要授权#

“root 能看见”不等于“Emby 能看见”。从每一级父目录检查:

namei -l /mnt/media/Movies
id emby
sudo -u emby ls -lah /mnt/media/Movies
findmnt -T /mnt/media/Movies

/、/mnt、/mnt/media、Movies 每一级都必须允许 emby 遍历。文件放在 /root 或权限为 700 的家目录时,单改最后一级没用;更适合把媒体放到专用目录。

方案 A:media 组。 仅对自己拥有、没有特殊 ACL 的本地媒体目录使用,保留文件原来的所有者:

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

方案 B:ACL。 想保持现有 owner / group 时,可以只授权 emby;两个方案不必重复执行。先保存原 ACL 便于恢复:

sudo getfacl -Rp /mnt/media > ~/media-acl-before.txt
sudo setfacl -R -m u:emby:rX /mnt/media
sudo find /mnt/media -type d -exec setfacl -m d:u:emby:rx {} +
getfacl /mnt/media/Movies
sudo -u emby ls -lah /mnt/media/Movies

大写 X 给目录遍历权限,不会把普通电影一律设为可执行。默认 ACL 供新建内容继承;移动进来的文件、保留源权限的复制或上传工具可能不继承,上传后仍要检查。观察 getfacl 的 mask 与 #effective,ACL mask 会限制实际权限,后续 chmod 也可能改变 mask。特殊 NAS ACL、只读文件系统或不支持 POSIX ACL 的挂载不能照搬这些递归命令。参考:Emby 权限说明、setfacl 手册。

新目录示例中的 chown 只应在明确要调整新建目录的上传账户时使用,例如 sudo chown your_upload_user:media /data/media/Movies。不要递归把整块共享盘所有者改成 emby。

6.3 数据盘、SMB / NFS 与开机挂载#

VPS 的附加云盘不一定已经挂载。先查看设备和已有文件系统:

lsblk -f
findmnt

若分区已经有文件系统,确认它不是系统盘,再按实际 UUID 挂载到新目录。下方占位符必须替换:

sudo mkdir -p /mnt/media
sudo mount UUID=YOUR_MEDIA_FILESYSTEM_UUID /mnt/media
findmnt /mnt/media
df -h /mnt/media

全新空盘没有文件系统时,应按云厂商的数据盘初始化指南处理。格式化会清空目标设备,不能把教程里示例设备名当作自己的磁盘。 本文不提供可以误格式化系统盘的通用一键命令。

要开机挂载,先备份 /etc/fstab,用系统编辑器加入与实际 UUID、文件系统相匹配的一行。例如已有 ext4 数据分区可以使用:

sudo cp -a /etc/fstab /etc/fstab.before-emby
sudo nano /etc/fstab

nano 若未安装,用对应包管理器安装它,或使用已熟悉的编辑器。下面是 fstab 内容,不是 Shell 命令:

UUID=YOUR_MEDIA_FILESYSTEM_UUID /mnt/media ext4 defaults,nofail 0 2

实际是 XFS 时应使用 xfs 及对应检查设置,不能照抄 ext4 行。保存后检查语法、重新读取配置并验证挂载:

sudo findmnt --verify --verbose
sudo systemctl daemon-reload
sudo mount /mnt/media
findmnt /mnt/media

验证错误时先修复,不急着重启。nofail 让缺失数据盘不阻止系统启动,但仍需阻止 Emby 在未挂载的空目录上扫描。已有 fstab 挂载定义时,执行 sudo systemctl edit emby-server,在编辑器中添加:

[Unit]
RequiresMountsFor=/mnt/media
sudo systemctl daemon-reload
sudo systemctl restart emby-server

它会建立 Emby 对相关挂载单元的依赖与启动顺序。前提是这个路径确实配置了挂载;仅有空目录时,systemd 不会凭空知道你期望挂载哪块盘。见 systemd 挂载依赖说明。

SMB / NFS 需要先在操作系统中完成可靠的挂载,再把本地挂载路径交给 Emby。SMB 常见问题是 UID / GID 映射和共享端 ACL;NFS 常见问题是两端数字 UID / GID 不一致以及导出权限。root_squash 不是让你关闭 NFS 安全选项的理由。用 sudo -u emby ls 检查实际访问,不要在凭据文件中放宽权限,也不要在命令行写 SMB 密码。网络挂载的 _netdev、等待网络和失败行为按存储 / 发行版文档配置;实时监控不可用时用定时扫描。

7. Windows Server 安装与开机运行#

7.1 登录、更新和下载#

用云厂商提供的 RDP 地址登录服务器。在服务器内安装 Windows Update、确认时间和磁盘空间。以下 PowerShell 命令在 Windows Server 上执行,防火墙和服务命令需要以管理员身份打开 PowerShell。

Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsArchitecture
Get-Volume | Select-Object DriveLetter, FileSystem, SizeRemaining, Size

用服务器浏览器打开 Emby Server for Windows,选择稳定版 Server,不要误下载 Emby Windows / Theater 客户端。官方页面提供安装器以及 Portable Installation 的 Windows x64 / x86 ZIP。本文面向 x64 Windows Server,Linux ARM64 的包不能用在这里。

7.2 安装器与 portable 两种方式#

安装器方式: 从官方页面下载,使用准备长期运行 Emby 的同一个 Windows 账户启动安装器,按提示完成。安装器可能还需要联网取得程序;允许它访问官方 HTTPS 下载源。安装完成通常会启动 Emby 并打开设置向导,未自动打开就访问 http://localhost:8096。

安装器常见程序位置为 %APPDATA%\Emby-Server\system\EmbyServer.exe,通常不是 C:\Program Files 下的全机安装。%APPDATA% 指的是安装 / 运行账户的 Roaming 目录,不是任意当前账户的目录。

Portable 方式: 从同一官方页面下载 x64 ZIP,解压到固定目录,例如 C:\Emby,保留 ZIP 的 System 子目录结构。程序应位于 C:\Emby\System\EmbyServer.exe;不要把 System 内的文件散放到根目录,也不要在下载文件夹或临时目录运行。

Test-Path 'C:\Emby\System\EmbyServer.exe'
Start-Process -FilePath 'C:\Emby\System\EmbyServer.exe' -WorkingDirectory 'C:\Emby\System'

第一条应为 True,第二条仅适用于已经解压的 portable 安装。普通启动用于先确认程序能运行;每台服务器只选择一种安装,并保留一个实例。

7.3 数据目录和媒体目录#

安装器方式的常见数据目录:

C:\Users\YOUR_WINDOWS_USER\AppData\Roaming\Emby-Server\programdata

保留 System 结构的 portable 安装,数据通常在父目录的 programdata,本例为 C:\Emby\programdata。这里保存配置、用户、数据库、插件、元数据和日志,不能在升级时当作缓存清空。具体位置以后台服务器名称旁 … → Get Server Info / 服务器信息 或启动日志的 Data path 为准;不要假定它一定是 C:\ProgramData。参考:官方数据目录、portable 目录结构讨论。

另建媒体目录,例如存在 D: 数据盘时使用 D:\Media\Movies、D:\Media\TV;只有 C: 时可以使用 C:\Media。在资源管理器「属性 → 安全」中,为运行 Emby 的账户赋予媒体目录“读取和执行 / 列出文件夹 / 读取”,数据目录赋予“修改”。需要保存媒体旁的字幕、NFO 时才增加媒体目录写入权限,不要向 Everyone 授予完全控制。

7.4 未登录也能运行:注册 Windows Service#

“随用户登录启动”不等于“服务器重启后无需登录就运行”。VPS 应考虑 Windows Service;普通安装 不会让你可以直接假定已有 Emby 服务。官方仍提供 NSSM 服务方案,它是第三方服务包装工具。

  1. 先通过普通启动验证 Emby 可用,再从托盘或后台关闭这个实例,确认任务管理器中没有残留 EmbyServer 进程。
  2. 在 Emby 设置中关闭普通实例的随登录启动,避免服务与托盘程序抢占端口 / 数据目录。
  3. 从 NSSM 官方站点取得匹配 Windows 架构的程序,把 nssm.exe 放到固定位置,例如 C:\Tools\nssm\nssm.exe。服务会依赖这个文件,注册后不要移动或删除它。
  4. 在管理员 PowerShell 执行以下命令打开服务配置窗口;本文固定使用服务名 EmbyServer:
& 'C:\Tools\nssm\nssm.exe' install EmbyServer
NSSM 字段Portable 示例安装器方式
PathC:\Emby\System\EmbyServer.exe使用实际安装账户下的完整 EmbyServer.exe 路径
Startup directoryC:\Emby\System上述程序所在目录
Arguments-service同样使用 -service
Log on有所需目录权限的固定账户先使用原运行账户,避免切换后读错用户目录

在 Exit actions 中将默认退出动作设为 Exit / 不自动重启应用,遵循 Emby 官方要求;否则后台点 Shutdown 后 NSSM 可能马上重新拉起。正常重启使用 Windows 的 Restart-Service。

服务账户需要“作为服务登录 / Log on as a service”权限,以及上面列出的目录权限。避免为方便而默认使用权限很高的 LocalSystem;访问 SMB 时,本地系统账户也不会自动拥有你的共享凭据。账户密码在 NSSM 的 Log on 界面输入,不写入脚本 / 命令历史。先用原账户确保目录一致,再考虑单独的低权限服务账户;迁移账户时核对数据目录和 NTFS / 共享权限。

点击 Install service,随后执行:

Set-Service -Name EmbyServer -StartupType Automatic
Start-Service -Name EmbyServer
Get-Service -Name EmbyServer
Get-CimInstance Win32_Service -Filter "Name='EmbyServer'" |
    Select-Object Name, State, StartMode, StartName, PathName
Get-NetTCPConnection -LocalPort 8096 -State Listen
Test-NetConnection -ComputerName 127.0.0.1 -Port 8096

应看到服务 Running、启动模式 Auto,8096 监听且 TcpTestSucceeded 为 True。重新访问后台,确认进入的是刚才那一套配置,而不是新的空白向导。服务模式不会自动更新,后面的更新步骤必须手动执行。

8. 端口、系统防火墙和云安全组#

8.1 哪些端口需要开放#

端口用途本教程的处理方式
TCP 8096Emby HTTP 网页、客户端 API 和媒体流初始化用 SSH 隧道 / 本机访问,必要时仅允许自己的公网 IP
TCP 8920Emby 内置 HTTPS默认并非可用的 HTTPS 服务;配置有效证书并启用 TLS 后才按需要开放
SSH / RDP 管理端口操作系统管理保留现有受限规则,按实际端口处理

HTTP 8096 没有加密。仅限制来源 IP 不能代替 TLS;初始化和管理员登录优先使用下面的 SSH 隧道或服务器内部浏览器。公网长期使用前,再完成 HTTPS / 私人 VPN。不要仅因为数字相近,就把 https://IP:8096 或 http://IP:8920 当作正确地址。参见 Emby 网络设置。

8.2 Debian / Ubuntu:已启用 UFW 时#

sudo ufw status verbose

如果未安装 UFW,这条命令会提示找不到命令,不等于没有任何防火墙;检查云镜像是否使用 nftables / 其他规则。Status: inactive 表示 UFW 未启用,不要为了照抄教程直接启动它。

已启用 UFW 且需要受限公网连接时,把 198.51.100.25 改成你电脑当前的公网 IPv4:

sudo ufw allow from 198.51.100.25 to any port 8096 proto tcp
sudo ufw status numbered

这个文档示例 IP 不能直接使用。若需要启用 UFW,先按实际 SSH 端口和来源保留 SSH 规则,保持当前连接,再确认新终端能够登录;不要只添加 8096 就执行 ufw enable。UFW 规则中的来源要与云安全组一致。参考:Ubuntu 防火墙文档。

8.3 Rocky / AlmaLinux:firewalld#

sudo firewall-cmd --state
sudo firewall-cmd --get-active-zones

找到公网网卡实际所在 zone,不一定是 public。下面仅以 public 为例,同时限制来源;把 zone 和 IP 替换为真实值:

sudo firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule family="ipv4" source address="198.51.100.25/32" port port="8096" protocol="tcp" accept'
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --list-all

--permanent 保存重启后的规则,reload 让它进入运行配置;reload 也会移除尚未保存的临时规则,所以先确认 SSH 规则已经永久保存。firewalld 未运行时,不应未核对现有规则就临时开启另一套防火墙。检查是否已有向所有来源放行的 8096 规则:新增受限规则不会收紧原来的宽泛规则。参考:firewall-cmd、rich rule 语法。

8.4 Windows Defender Firewall#

在管理员 PowerShell 查看网络配置类别和防火墙状态:

Get-NetConnectionProfile
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction

可以打开 wf.msc,在「入站规则 → 新建规则 → 端口」中选择 TCP 8096、允许连接和当前适用的配置文件,再在规则的「作用域」限制自己的来源 IP。程序规则则必须指向实际 EmbyServer.exe;程序路径或版本目录变化以后重新核对。

也可以创建下面这条来源受限规则。-Profile Any 适应云镜像可能采用的 Public / Private / Domain 类别,来源仍限制为你的 IP:

New-NetFirewallRule -Name 'Emby-HTTP-Admin' -DisplayName 'Emby HTTP from administrator' `
    -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8096 `
    -RemoteAddress '198.51.100.25' -Profile Any
Get-NetFirewallRule -Name 'Emby-HTTP-Admin' |
    Select-Object Name, Enabled, Direction, Action, Profile

把地址替换后再执行。已有安装器建立的宽泛允许规则也需要检查;新的限制规则不会覆盖它。无需关闭 Windows Firewall。参考:Microsoft New-NetFirewallRule。

8.5 云平台外面还有一层#

AWS Security Group / Network ACL、Azure NSG、Google Cloud VPC Firewall、Oracle Cloud NSG / Security List、阿里云 / 腾讯云安全组、Vultr Firewall、DigitalOcean Cloud Firewall 都可能在流量到达系统前阻挡它。

在厂商控制台检查规则是否绑定到实际网卡 / 实例、入站 TCP 端口是否为 8096、来源是否为自己的公网 IP。IPv4 使用 /32 单主机规则,IPv6 使用匹配的 /128 或明确网段。只通过 SSH 隧道 / RDP 内部访问时,不需要新增公网 8096 规则。NAT 型 VPS 还要核对厂商给出的公网映射端口;普通有独立公网 IP 的 VPS 不需要照搬家庭路由器 UPnP 流程。

9. 第一次访问与初始化#

9.1 推荐访问方式#

Linux:在你的电脑另开终端建立 SSH 隧道,用户名、IP、SSH 端口按第 2 节的实际值调整:

ssh -N -L 127.0.0.1:18096:127.0.0.1:8096 ubuntu@203.0.113.10

保留此终端运行,在电脑浏览器打开:

http://127.0.0.1:18096

这里使用 18096 避免与电脑自己的 8096 冲突;SSH 把请求加密传到 VPS 的 8096。看到向导后继续配置,关掉隧道终端后这个访问地址就失效。它只转发端口,不会在你的电脑安装 Emby。

Windows:在 RDP 会话中的服务器浏览器打开 http://localhost:8096。自己的电脑浏览器中的 localhost 指自己的电脑,不是 VPS。

受限公网诊断地址为 http://服务器公网IPv4:8096;IPv6 写成 http://[服务器IPv6]:8096,需要 IPv6 路由、监听和对应防火墙规则。公网 HTTP 适合判断连接问题,管理员凭据仍应通过加密隧道 / 已配置的 HTTPS 输入。

9.2 按向导完成初始化#

不同版本的按钮和中文翻译可能略有差异,流程以 官方初始化说明为准。

  1. 界面语言:选择中文或需要的显示语言。它与媒体元数据语言不是同一个选项。
  2. 创建管理员:设置独立用户名和强密码,并保存到密码管理器。不要留空密码,不要与 VPS root / Windows 管理员密码复用。Emby Connect 是可选账号关联,不是这一步的前提。
  3. 添加媒体库:按电影、剧集、音乐分别选择内容类型和显示名称,再添加服务器上的真实目录,例如 /data/media/Movies 或 D:\Media\Movies。不要填写电脑本地路径,也不要把配置目录当作媒体库。还没上传媒体时,可以暂时跳过,稍后在后台「媒体库 / Library」添加。
  4. 元数据语言与地区:按自己希望的海报、简介和分级选择,例如简体中文与中国;英语内容可单独使用 English。文件名和结构尽量规范,先用少量文件检验识别结果。
  5. 远程访问:只用本机 / 隧道初始化时,可以先不启用公网远程访问;要供远程客户端使用时,启用服务器与该用户的远程连接权限。VPS 通常关闭“自动端口映射 / UPnP”,由云平台规则显式控制。
  6. 条款与完成:阅读并确认 Emby 条款,完成向导,使用刚创建的本地管理员账号登录。

9.3 进入后台后的检查#

在齿轮或「管理服务器」中查看 Dashboard:确认版本、媒体库、活动任务,并通过服务器信息记录真实数据目录。在 Network 中先保持默认本地端口,尚未配置 TLS 时不要设置“要求所有远程连接使用 HTTPS”;不要把 NAT 云主机的公网 IP 填成网卡上不存在的绑定地址,也不要把整个公网定义成 LAN。

在 Library 中核对文件夹、内容类型、元数据语言与扫描选项。首次扫描需要读取文件并获取元数据,大库不会立刻完成。先添加几部媒体,等待扫描,再播放一部,检查显示的是 Direct Play、Direct Stream 还是 Transcoding。识别不正确时先修正命名或匹配,避免反复扫描整个库。

初次部署可以暂缓视频预览缩略图、片头检测等额外任务,待基本播放正常再逐项开启。网络挂载未必支持实时变化监控,可使用 Scheduled Tasks 定时扫描。参考:媒体库设置、播放方式。

10. Linux 服务管理与日志#

以下命令适用于本文 APT / RPM 原生安装;Windows 的服务名在本文统一为 EmbyServer,不要混用。

操作Linux 命令
查看状态sudo systemctl status emby-server --no-pager -l
启动sudo systemctl start emby-server
停止sudo systemctl stop emby-server
重启 Embysudo systemctl restart emby-server
设置开机启动sudo systemctl enable emby-server
取消开机启动sudo systemctl disable emby-server
同时取消自启并停止sudo systemctl disable --now emby-server
查看自启 / 运行状态systemctl is-enabled emby-server / systemctl is-active emby-server

disable 本身不停止当前进程;stop 本身不取消下次开机启动。仅改正常后台设置通常不需要 daemon-reload,它用于重新读取 systemd unit / drop-in。

sudo journalctl -u emby-server -b --no-pager
sudo journalctl -u emby-server --since '1 hour ago' -n 200 --no-pager
sudo journalctl -u emby-server -f

第一条看本次开机,第二条看最近一小时,第三条实时跟随,按 Ctrl+C 退出跟随,不会停止 Emby。启动失败优先看 journal;扫描 / 播放问题还要看 Emby 后台 Logs 中的 embyserver、ffmpeg 和硬件检测日志。Linux 默认应用日志在 /var/lib/emby/logs,确认数据目录后再使用:

sudo ls -lt /var/lib/emby/logs
sudo tail -n 100 /var/lib/emby/logs/embyserver.txt

参考:systemctl、journalctl、Emby 日志说明。向论坛提交日志前检查用户名、媒体路径、公网 IP 和令牌;后台导出有匿名化处理,但公网 VPS 的本地地址仍可能出现在日志中。

11. 更新与备份#

11.1 先备份,再改变版本#

记录当前版本、架构、数据目录、媒体挂载和服务账户。升级可能改变数据库结构,安装回旧二进制不等于可以安全降级数据库。升级前保留停止服务时的数据副本和当前版本安装包,并检查新版本发行说明。

Linux 默认数据目录可这样做一份权限受限的离线备份;数据目录改过时替换实际路径:

sudo systemctl stop emby-server
sudo install -d -m 0700 /var/backups/emby
sudo sh -c 'umask 077; tar --acls --xattrs -czpf "/var/backups/emby/emby-$(date +%Y%m%d-%H%M%S).tar.gz" -C /var/lib emby'
sudo ls -lh /var/backups/emby

先确认备份命令成功且磁盘空间充足,再升级。归档可能含密码相关数据、插件配置和个人媒体信息,应加密复制到服务器以外的受控存储。它不包含媒体文件本身,也不包含 fstab、自定义 unit、SMB 凭据等系统配置;这些需要单独安全备份。备份文件与原盘放在同一 VPS 不是灾难恢复。

11.2 APT / DNF 仓库更新#

Debian / Ubuntu 使用官方仓库时:

sudo apt update
apt-cache policy emby-server
sudo apt install --only-upgrade emby-server
sudo systemctl start emby-server
dpkg-query -W -f='${Version}\n' emby-server

RPM 系统使用官方仓库时:

sudo dnf makecache --refresh
dnf list --showduplicates emby-server
sudo dnf upgrade emby-server
sudo systemctl start emby-server
rpm -q emby-server

确认服务状态、本机 HTTP、后台版本和一部媒体播放。若更新失败,保留错误与备份,根据日志处理;不要反复启动、随机替换数据库或混入 beta 包。手动 DEB / RPM 用户重复前面的官方包下载步骤,下载新稳定版并安装;不需要先卸载旧包。包管理器可能在升级时重新启动服务。

11.3 Windows 更新#

普通启动模式可按当前 Emby 的更新提示处理,也可手动从官方页取得新安装器。NSSM 服务模式不会自动更新:停止服务、确认进程退出、备份真实 programdata 和服务设置,再用原账户把新版本装回原位置。

Portable 用户把新 ZIP 先解压到临时目录,核对结构,停止服务后替换原 System 的程序文件,保留原 programdata 和稳定路径;不要把备份恢复成第二套同时运行的实例。重新启动服务,检查服务器信息中的数据路径、版本和媒体库。如果升级后出现全新向导,先停止并检查是否读错数据路径。

12. 停止、重启和卸载#

12.1 重启 Emby 与重启操作系统#

Linux 仅重启 Emby 用 sudo systemctl restart emby-server;重启整个 VPS 使用 sudo reboot,会断开 SSH 并中断所有服务。只在确有系统更新 / 内核维护需求时重启整机。

Windows Service 用管理员 PowerShell:

Stop-Service -Name EmbyServer
Start-Service -Name EmbyServer
Restart-Service -Name EmbyServer
Get-Service -Name EmbyServer

按当前需要选择单条操作,不必把停止、启动、重启连续执行。普通模式从托盘 / 后台 Shutdown 关闭,再从原快捷方式启动;不要用强制结束进程代替正常关机。重启 Windows 使用开始菜单的 Restart,并提前确认 RDP 能恢复。

12.2 Linux 卸载,默认保留数据#

先停止并取消开机启动,完成数据备份,再执行本发行版的卸载命令:

sudo systemctl disable --now emby-server

Debian / Ubuntu:

sudo apt remove emby-server

Rocky / AlmaLinux 等 RPM 系统:

sudo dnf remove emby-server

查看卸载清单再确认,不盲目执行 purge / autoremove。不要把“软件已卸载”理解为“数据库、账号和媒体都已删除”,包维护脚本和版本可能不同,先备份并检查真实数据路径。媒体目录和数据盘不应随卸载删除。

不再需要官方仓库时,可单独移除本文创建的那一个来源文件,然后刷新索引:

sudo rm /etc/apt/sources.list.d/emby.sources
sudo apt update

或 RPM 系统:

sudo rm /etc/yum.repos.d/emby.repo
sudo dnf clean metadata

不要删除其他软件来源或整目录。手动包安装没有创建这些文件,就不执行此步骤。本文不提供递归删除 programdata、/var/lib/emby 或媒体盘的命令;需要完全清理时先核对备份和目录用途。

12.3 Windows 卸载#

NSSM 模式先停止服务,再从 NSSM 移除本文注册的服务:

Stop-Service -Name EmbyServer
& 'C:\Tools\nssm\nssm.exe' remove EmbyServer

确认窗口中的服务名确实是 EmbyServer。安装器方式在原安装账户的「设置 → 应用」或「程序和功能」中卸载 Emby Server。Portable 没有必须使用的系统卸载器:确认进程 / 服务已退出后,移除快捷方式并按需清理程序目录;若 programdata 与程序位于同一父目录,删除整个 C:\Emby 也会删除你的配置,必须先备份。

只删除本教程创建的防火墙规则,例如:

Remove-NetFirewallRule -Name 'Emby-HTTP-Admin'

云安全组中的对应规则也按用途收回,保留 SSH / RDP 管理通道。NSSM 若还被其他服务使用,不要删除它。

13. 按现象排查常见问题#

13.1 下载与安装#

下载失败、404、拿到 HTML。 通常是旧版本地址、选错文件、网络 / DNS / 代理异常。重新从当前官方页面复制链接,使用 curl -fL;TLS 错误先检查系统时间和 CA。不要使用 curl -k、未知网盘包或无校验的一键脚本。HTTP 429 表示限流,不应无休止重试。

APT 找不到 emby-server / NO_PUBKEY。 先查看 /etc/apt/sources.list.d/emby.sources、keyring 是否存在及权限是否为 0644,执行 sudo apt update 并读完整错误,随后查看 apt-cache policy emby-server。候选为空说明索引、来源、架构或渠道还没就绪;不能靠不断执行 install 解决。按官方 keyring 步骤修正,不加 trusted=yes。

DEB 安装失败、缺少依赖。 用 dpkg-deb -f 核对 Package / Architecture,并用 sudo apt install /实际路径/emby-server.deb 让 APT 解析依赖。曾经只用 dpkg 留下未配置包时,先运行 sudo dpkg --audit,再用 sudo apt --fix-broken install 查看修复计划,确认没有意外移除其他软件后再接受。

RPM 提示 nothing provides / 签名失败。 核对 rpm -qp、dnf info emby-server、dnf repolist、系统版本与公钥来源。仓库索引失败就先修复索引,依赖不存在则确认当前平台是否支持,不随意混入别的发行版 RPM。不使用 --nodeps / --force / --nogpgcheck 掩盖错误。

Exec format error、架构不匹配或 Illegal instruction。 对照 uname -m 与包管理器架构。ARM64 不能运行 AMD64 原生包;32 位用户空间也不能仅按 64 位内核判断。Illegal instruction 还可能是 VPS 的 CPU 指令集不足,需要结合日志与官方当前运行时 / 发行版 CPU 要求判断,换包前保留数据。

软件包管理器被锁。 新云镜像可能正在运行 cloud-init 或自动更新。等待它完成并检查真实进程,不直接删除锁文件、强杀更新进程或同时运行两套安装。

13.2 服务失败、没有监听或反复退出#

Unit not found。 dpkg-query -W emby-server 或 rpm -q emby-server 确认原生包已安装;systemctl list-unit-files 'emby*' 检查真实 unit。Portable / 容器安装不会自动拥有相同 systemd 服务。PID 1 不是 systemd 时不能继续套用本文服务命令。

failed / 启动后马上退出。 先获取状态与本次启动日志:

sudo systemctl status emby-server --no-pager -l
sudo journalctl -u emby-server -b -n 200 --no-pager
df -h
df -i
sudo -u emby test -w /var/lib/emby && echo 'data directory writable'

从第一条真正的错误判断:Permission denied 检查数据目录和父目录;No space left 检查磁盘及 inode;绑定错误检查端口;配置 / 插件异常先备份再处理对应项。test -w 只检查目录权限,不保证所有旧文件均可写;不要为“修复”而递归修改整个系统。

服务反复被杀 / OOM。 查看:

free -h
sudo journalctl -k -b --no-pager | grep -Ei 'out of memory|oom|killed process'

确认是否内存耗尽、云套餐限制或并发任务过多。降低扫描 / 转码并发,停掉非必要重任务,按实际需要增加资源。swap 不能保证实时转码性能。不要把无限自动重启当作根因修复。

8096 不监听。 看应用是否完成启动、端口是否被改、监听地址是否只限回环;执行 sudo ss -lntp 'sport = :8096',同时读 journal 和应用日志。短暂初始化期间可以等待再查,持续无监听就不是云防火墙问题。

Address already in use。 用 ss 的 PID / 进程信息找出占用者,停止重复的 Emby 实例或调整明确冲突的服务;不要直接 kill -9 未确认用途的进程。修复真正错误后,若 systemd 因启动次数限制拒绝再试,可执行 sudo systemctl reset-failed emby-server,随后启动并观察日志。

13.3 能本机打开,公网打不开#

按链路从内往外查:Emby 进程 → 监听地址 / 协议 → 系统防火墙 → 云安全组 / NAT → 客户端地址。本机 curl 已失败就先修服务,别反复改安全组。

在服务器检查:

curl -v --connect-timeout 5 http://127.0.0.1:8096/
sudo ss -lntp 'sport = :8096'
ip -br address
ip route

在自己的 Windows 电脑检查连通性时可以使用:

Test-NetConnection -ComputerName 'YOUR_SERVER_PUBLIC_IP' -Port 8096

受限规则允许的来源必须是电脑当前公网 IP;换网络以后可能已变。确认 UFW / firewalld 的实际规则、Windows 当前 Profile 和云安全组绑定。Connection refused 常见于无监听 / 主动拒绝,超时常见于被丢弃 / 路由问题,但不能仅凭一种报错断言根因。

IPv6 地址必须加方括号;先确认客户端有 IPv6。[::]:8096 是否同时接收 IPv4 取决于系统配置,分别检查。云主机公网地址可能通过 NAT 映射,ip addr 未列出它不一定是错误。NAT 型 VPS 使用厂商给出的外部端口,并在 Emby 中正确配置 Public Port;这个选项只告诉客户端地址,不会替你建立云端映射或放行防火墙。

13.4 媒体目录为空、Permission denied、重启后媒体消失#

添加了目录却没有文件。 确认填写的是服务器本地真实路径,内容类型与文件格式正确,再用 sudo -u emby ls -lah /实际目录 查看。重点检查父目录遍历权限、media 组是否生效、ACL mask、软链接指向的真实目录,不能只看管理员的 ls 输出。

挂载盘重启后不见。 findmnt /mnt/media、lsblk -f 核对 UUID 和挂载;目录存在不代表磁盘存在。先恢复挂载再扫描,避免把空目录误当作媒体删除结果。修正 fstab、网络挂载等待和 RequiresMountsFor;不要在挂载失败的目录继续上传,以免把系统盘写满。

SMB / NFS 无法读。 检查共享端授权、客户端 UID / GID、挂载选项和是否只读。Windows 服务不要使用交互登录时的 Z: 映射盘,改为可由服务账户访问的 UNC 路径,例如 \\NAS\Media,并同时检查共享权限和 NTFS 权限。不能通过 Everyone 全控制或让 Linux 服务改为 root 解决。

权限看起来正常,SELinux 仍拒绝。 Rocky / AlmaLinux 等检查:

getenforce
ls -Zd /mnt/media /var/lib/emby
sudo ausearch -m AVC,USER_AVC -ts recent

ausearch 由 audit 工具包提供,未安装时按发行版文档获取审计工具。结合实际 AVC 的进程域、文件标签和挂载类型确定修复方式;包运行在什么 SELinux 域需现场确认,不能凭空套用 Nginx 的 httpd_* 标签。不要关闭 SELinux 或直接生成 / 导入未审查的 allow-all 策略。

13.5 网页、初始化和管理员登录#

页面一直加载 / 空白。 先用本机 HTTP 判断服务响应,查看应用日志;试无痕窗口、刷新缓存、换现代浏览器,暂时禁用该站点相关的内容拦截扩展。检查是否把 HTTP 当 HTTPS、代理 / CDN 是否错误处理请求。原生安装还没验证成功时,先不要加入代理层。

登录失败。 区分本地 Emby 用户、Emby Connect 和操作系统账号;检查用户名大小写、输入法、密码管理器填入的目标站点,以及用户是否允许远程访问。服务器刚重装或切换服务账户时,还要核对是否读错了数据目录。

忘记唯一管理员密码。 按 官方管理员重置流程,从本机地址 / SSH 隧道进入本地登录页,选择 Forgot Password,填写本地管理员用户名,再通过 SSH / RDP 读取界面指定的服务器文件,按其中链接和 PIN 完成重置。不要使用 Emby Connect 替代这套流程,也不要删除用户数据库或在公网分享重置文件。

每次重启都出现新向导。 优先检查 Data path、启动账户、portable 的 System 结构、数据目录是否可写,以及是不是启动了第二个实例。找到原目录并备份;不要直接重复创建管理员来掩盖丢失配置。

13.6 扫描、内存和转码#

扫描时 CPU / IO 很高。 初次提取媒体信息、海报、章节缩略图和片头检测会增加负载。查看 Dashboard 的任务和 Logs,先用小库验证,取消不必要的额外任务、错开扫描与播放。不要一看到高占用就认定安装损坏。

内存高且卡顿。 同时看 free -h 的 available、活动任务、并发转码和 OOM 记录;Linux cache 占用不是同样意义的应用内存泄漏。Windows 用任务管理器和事件查看器检查。持续增长且无任务时,记录版本、发生时段、插件与日志后向 Emby 报告,不随机清空数据库。

播放时 CPU 满载。 在播放信息中确认 Transcoding 原因:客户端不支持编码 / 音轨、码率限制、字幕烧录或网络带宽不足。尽量使用可直接播放的客户端 / 媒体格式;图片字幕烧录仍可能大量使用 CPU,即使 GPU 已启用。查看对应 ffmpeg 日志,不凭套餐 vCPU 数保证实时转码路数。

硬件转码不可用。 需要可用硬件、驱动、设备权限、受支持的编码和相应 Emby Premiere 功能。普通 VPS 看不到 GPU 时,后台勾选不会创造设备。Linux 检查 ls -l /dev/dri、实际设备所属组和 id emby;只有设备存在且确有授权需要时才追加正确组并重启。NVIDIA 查看驱动和厂商 GPU 分配,Windows 查看硬件检测日志、驱动以及 RDP 会话影响。见 官方硬件加速说明。

转码中途失败 / 空间不足。 检查转码临时路径是否存在、可写、剩余空间是否够用;云盘吞吐限制也可能造成卡顿。参考 官方转码设置。不要把正在使用的临时文件当作可随意清理的垃圾。

13.7 Windows 特有问题#

安装器立刻失败。 核对是否下载 Server、x64 是否匹配、Windows Update / 时间 / 官方 HTTPS 源是否可用,读安装日志和 Defender Protection History。Windows Server 2025 的在线安装器问题可按官方建议改用 portable ZIP;不要下载来历不明的“修复版”。

服务无法启动、错误 1069 / 1053。 1069 常见于服务账户密码或“作为服务登录”权限;1053 需要继续读事件日志和应用日志,不能当成单一原因。在 services.msc 检查 Log On、启动类型和状态,在 Event Viewer 的 System / Application 中查看同一时间的事件。

Get-CimInstance Win32_Service -Filter "Name='EmbyServer'" |
    Select-Object Name, State, StartMode, StartName, PathName
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Service Control Manager'} -MaxEvents 30
Get-Process -Name EmbyServer -ErrorAction SilentlyContinue
Get-NetTCPConnection -LocalPort 8096 -State Listen

核对 NSSM 文件是否仍在原位置、Application Path / Startup directory 是否正确、Arguments 是否为 -service,以及普通托盘实例是否已关闭。服务启动成功却没有后台时,再核对真实数据目录和监听,不要直接重装清空配置。

RDP 中可播放,服务模式看不到文件。 两种运行身份可能不同,检查服务账户的 NTFS / SMB 权限和 UNC 路径;服务看不到交互用户的映射盘是常见原因。数据目录与媒体目录要分别授权。

Defender 阻止程序或写入。 查看 Protection History 和 Controlled Folder Access 是否有明确拦截记录,核对官方来源;确有误拦截时按 Microsoft / Emby 支持建议处理具体程序 / 路径。不要关闭整台服务器的 Defender,也不要为整个 C: 盘建立排除。

14. 日常维护与验收#

安装完成应能回答这些问题:

  • 服务是否正常运行,并设置了开机启动?Windows Service 是否在未登录时仍运行?
  • 本机 / 隧道浏览器能否显示后台,管理员密码是否已经设置?
  • 是否至少有一个真实媒体目录,可以扫描并播放一部媒体?
  • Emby 运行身份能读媒体、能写配置与转码目录,磁盘是否留有余量?
  • 云安全组和系统防火墙是否都符合实际访问范围,没有遗留的全公网初始化入口?
  • 数据盘 / 网络挂载能否在重启后恢复?是否保存了数据目录与版本记录?
  • 是否拥有服务器之外的备份,并知道如何在停止服务状态下恢复到匹配版本?

日常检查 systemctl status / Get-Service、剩余空间、扫描任务和日志。Linux 可用 df -h、df -i、free -h;Windows 查看 Get-Volume 和任务管理器。保留稳定更新渠道,规划维护窗口;大升级前备份,系统安全更新与 Emby 更新分别核对。

重启测试应安排在没有用户播放的时段:确认 SSH / RDP 恢复、数据盘已挂载、服务 active / Running、媒体可播放。出现数据库损坏时保留完整停止状态的备份并阅读官方恢复资料,不要把删库重新扫描当作普通维护。

AlmaLinux 用户可通过 dnf updateinfo --list 查看系统更新公告,参见 AlmaLinux Errata。它是系统维护信息,不能替代 Emby 版本检查。

15. 下一步:客户端与反向代理#

确认 Emby Server 原生访问、权限和播放正常以后,再配置域名与 HTTPS。本站已有对应教程:

按反向代理教程收紧 Emby 的源站访问范围。Emby Connect 帮助客户端发现 / 登录服务器,不会替代云安全组、端口映射或 TLS。本页不额外展开 Nginx、Cloudflare 或证书部署。

16. 参考资料与版本差异#

本文于 2026 年 10 月 2 日核对资料,以官方 stable 仓库为主要安装路径。核对时 GitHub 最新稳定版与 APT / RPM 元数据均列有 4.10.1.0;这只是资料快照,实际安装使用包管理器当时显示的稳定候选版本,不要求固定这一版本。

资料差异需要保留:官方下载页的静态 HTML 仍有旧版占位链接,部分文档镜像显示旧版本;按当前官方仓库 / Releases 核对。Windows 下载页与旧系统要求页的最低系统描述不同,本文不据此推荐过时系统,也不声称所有 Windows Server 版本都经过实际安装验证。RPM 官方辅助脚本与手工仓库的签名处理差异见第 4 节。

主要参考:

命令根据官方安装文档、当前仓库文本 / 包索引和系统手册交叉核对,完成了静态语法和 Wiki 渲染检查。本文编写过程中没有在本地安装或启动 Emby Server,也没有进行发行版 / Windows Server 的真实安装实验。 特殊云镜像、签名故障、CPU 指令集和硬件转码仍要结合自己服务器的实际日志判断。

emby.wikiEmby 的功能、配置与使用指南Copyright © 2024–2026 emby.wiki. All rights reserved.