Emby 搭建指南
发布时间:2026-11-01 | 浏览:1
Debian / Ubuntu 安装
Rocky / AlmaLinux 及其他 RPM 系统安装
准备媒体目录和 Linux 权限
Windows Server 安装与开机运行
你已经购买一台 VPS 或云服务器,刚安装好操作系统,希望把自己的电影、剧集或音乐整理成可以通过网页和客户端访问的媒体库。本文从登录服务器讲起,使用 Emby Server 原生软件包 ,覆盖 Debian、Ubuntu、Rocky Linux、AlmaLinux 和 Windows Server。
Linux 按自己的发行版执行其中一组安装命令,然后继续阅读目录、权限、防火墙和初始化章节。Windows 用户可以直接阅读第 7~9 节。服务管理、备份和排错章节用于安装后的维护。
Emby Server 不会自动提供电影,也不会把你电脑上的文件自动搬到 VPS。你需要把有权使用的媒体上传到服务器,或先挂载能够合法访问的存储。域名和反向代理可以等服务安装成功以后再配置。
2. 准备服务器、系统和登录方式 #
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 改为厂商提供的值:
Debian 镜像可能使用 debian ,Rocky 可能使用 rocky ,部分镜像使用 root 、 almalinux 、 opc 或 ec2-user ,不要靠猜。指定密钥和非默认端口时:
首次连接应与云控制台提供的信息核对主机身份。 203.0.113.10 是文档示例地址,不能照抄。以下 Linux 命令在 已经登录的 VPS 上执行;代码块不带 Shell 提示符,可以整块复制。普通账户保留 sudo ;已是 root 时省略 sudo 。若最小镜像没有 sudo,用厂商提供的 root / 控制台完成准备,不要为此放宽 SSH 安全策略。
/etc/os-release 识别发行版, df -h 看空间, free -h 看内存。本文的服务命令要求 PID 1 是 systemd ;受限制的容器型 VPS 若不是 systemd,需要先向厂商确认服务管理能力。系统时间明显不正确时,先按厂商 / 发行版文档恢复时间同步,否则 HTTPS 下载和签名验证可能失败。
amd64 也适用于 Intel 的 64 位 CPU。 arm64 与 aarch64 是同一类 64 位 ARM 架构的不同命名,不能安装 x86 包。Debian / Ubuntu 再检查一次用户空间架构:
官方 APT 仓库当前列有 amd64 arm64 armhf 。GitHub 当前稳定版提供 amd64/arm64/armhf 的 DEB,以及 x86_64/aarch64 的 RPM;下载页旧模板中的 ARMv7 RPM 条目不表示当前稳定版一定有该文件。32 位系统、特殊 ABI 和新 CPU 基线须另行确认,不强行安装。
3. Debian / Ubuntu 安装 #
3.1 更新系统并安装工具 #
在刚安装好的服务器上更新索引、安装系统更新。查看更新清单再确认,安装期间若询问配置文件如何处理,阅读差异,不要盲目覆盖云镜像的 SSH 配置。
这些工具用于 HTTPS 下载、证书验证、ACL、挂载、端口和进程 / 内存检查。软件包管理器会处理 Emby 的依赖,不需要预先照旧教程安装 Mono、旧版 .NET、 apt-transport-https 或一长串来历不明的组件。系统更新提示需要重启时,确认云控制台可用后执行 sudo reboot ,等待 SSH 恢复再继续。
3.2 添加官方 stable APT 仓库 #
按 Emby 官方 APT 文档 安装独立 keyring 和 Deb822 来源文件:
来源应是 https://pkg.emby.media/apt/ , Suites 为 stable , Signed-By 指向刚保存的 keyring。 apt-cache policy 应能看到来自这个仓库的候选版本。 任何下载或索引更新失败,先解决错误再继续。 不添加 beta 来源,不使用 apt-key 、 trusted=yes 或关闭签名检查作为修复。
第二条应显示已安装的包名、版本和正确架构。APT 会自动选择匹配架构,文章不固定一个很快过时的 Emby 版本号。
3.3 备用:手动下载官方 DEB #
只有不采用仓库时才执行这一小节, 两种安装方式选一种 。前往 官方 Linux 下载页 ,选择 Debian / Ubuntu、自己的架构和稳定版,复制 .deb 链接;也可以在 官方 GitHub Releases 的 Assets 中查找匹配文件。
把下方变量替换为该文件的完整 HTTPS 地址。不要保留占位文字,也不要下载 beta 或第三方修改包。
元数据应显示 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 或第三方仓库 。
当前 stable 仓库 ID 为 emby ,地址包含 /rpm/stable/ 和 $basearch ,配置中的 gpgcheck=1 、 repo_gpgcheck=1 应保留。第一次验证可能询问是否导入 Emby 公钥,核对来源为 https://pkg.emby.media/keys/emby-public.asc 及官方文档后确认;不要从未知镜像导入密钥。
应看到匹配的 x86_64 或 aarch64 包。服务管理仍然使用 systemd 的 emby-server ,不是 emby 、 embyserver 或 SysV 的旧命令。
参考: Emby 官方 DNF 文档 、 Rocky 软件管理 。官方论坛也有 AlmaLinux / Rocky 的 RPM 实践讨论 ,但它不能证明所有新发行版组合均可运行;以包管理器的依赖检查和当前 Emby 说明为准。
4.2 备用:手动下载官方 RPM #
没有配置仓库时,从官方 Linux 下载页或 GitHub 稳定版选择匹配架构的 .rpm ,把完整 HTTPS 链接填入变量:
DNF 负责解析依赖。直接下载不等于已经验证发布者的 RPM 签名;本地包的检查还受系统 localpkg_gpgcheck 策略影响。需要可审计的签名验证时优先用上面的官方仓库;不要在遇到签名错误后追加 --nogpgcheck 、 --nodeps 或 --force 。手动包更新仍需重新下载,不保证仅执行 dnf upgrade 就获得下一版 Emby。
5. Linux 首次启动与检查 #
安装包提供服务定义和服务账户,无需手写 systemd unit。确保云安全组尚未向所有来源开放 8096,再执行:
预期 is-enabled 为 enabled 、 is-active 为 active ,状态显示 active (running) ; ss 能看到 8096 的 TCP 监听,HTTP 返回页面或跳转的状态码,例如 200 / 302。不是所有版本都返回同一状态码, 000 表示 curl 没有拿到 HTTP 响应。
enable 设置开机启动, --now 同时启动本次服务。端口已经监听只证明进程在接收连接;还需要浏览器能够显示向导 / 登录页。若失败,先查看:
官方 Linux 包通常以 emby 用户运行,默认数据目录为 /var/lib/emby 。 systemctl cat/show 和后台的服务器信息是确认当前安装路径、运行用户和启动参数的依据;旧文档中的配置文件位置不能替代实际 unit。见 官方 Linux 说明 和 数据目录说明 。
6. 准备媒体目录和 Linux 权限 #
6.1 新服务器:使用自己管理的本地目录 #
系统盘空间够用时可以先使用 /data/media ;数据盘、NAS 挂载可用 /mnt/media 。媒体目录、Emby 数据目录和转码临时目录是三件不同的事, 不要把电影复制进 /var/lib/emby 当作配置 。
目录所有者是执行命令的当前账户;如果你已切换到 root,它就是 root。 2750 允许所有者写入、media 组读取和进入,其他账户不能访问;其中 setgid 位让新建内容继承目录的组。 usermod -aG 的 -a 必须保留,它表示追加组,不会替换原来的组。服务需要重启才能取得新增组成员身份。
用 SFTP / WinSCP / 云厂商支持的上传方式,把媒体传到这里;使用普通上传账户时,该账户应拥有目标目录写权限。建议先上传少量文件测试:
如果上传工具保留了过于严格的文件权限,media 组仍可能读不到内容。对 确认由自己管理的这一棵本地目录 补充组读取权限:
目录需要 x 才能进入,文件需要 r 才能读取;不必给电影文件增加可执行位。如果文件没有继承 media 组,再检查 ls -l ,按下一节修正实际媒体目录的组。
6.2 已有目录:保留 owner,按需要授权 #
“root 能看见”不等于“Emby 能看见”。从每一级父目录检查:
/ 、 /mnt 、 /mnt/media 、 Movies 每一级都必须允许 emby 遍历。文件放在 /root 或权限为 700 的家目录时,单改最后一级没用;更适合把媒体放到专用目录。
方案 A:media 组。 仅对自己拥有、没有特殊 ACL 的本地媒体目录使用,保留文件原来的所有者:
方案 B:ACL。 想保持现有 owner / group 时,可以只授权 emby;两个方案不必重复执行。先保存原 ACL 便于恢复:
大写 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 的附加云盘不一定已经挂载。先查看设备和已有文件系统:
若分区已经有文件系统,确认它不是系统盘,再按实际 UUID 挂载到新目录。下方占位符必须替换:
全新空盘没有文件系统时,应按云厂商的数据盘初始化指南处理。 格式化会清空目标设备,不能把教程里示例设备名当作自己的磁盘。 本文不提供可以误格式化系统盘的通用一键命令。
要开机挂载,先备份 /etc/fstab ,用系统编辑器加入与实际 UUID、文件系统相匹配的一行。例如已有 ext4 数据分区可以使用:
nano 若未安装,用对应包管理器安装它,或使用已熟悉的编辑器。下面是 fstab 内容, 不是 Shell 命令 :
实际是 XFS 时应使用 xfs 及对应检查设置,不能照抄 ext4 行。保存后检查语法、重新读取配置并验证挂载:
验证错误时先修复,不急着重启。 nofail 让缺失数据盘不阻止系统启动,但仍需阻止 Emby 在未挂载的空目录上扫描。已有 fstab 挂载定义时,执行 sudo systemctl edit 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 安装与开机运行 #
用云厂商提供的 RDP 地址登录服务器。在服务器内安装 Windows Update、确认时间和磁盘空间。 以下 PowerShell 命令在 Windows Server 上执行 ,防火墙和服务命令需要以管理员身份打开 PowerShell。
用服务器浏览器打开 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 内的文件散放到根目录,也不要在下载文件夹或临时目录运行。
第一条应为 True ,第二条仅适用于已经解压的 portable 安装。普通启动用于先确认程序能运行;每台服务器只选择一种安装,并保留一个实例。
7.3 数据目录和媒体目录 #
保留 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 服务方案 ,它是第三方服务包装工具。
先通过普通启动验证 Emby 可用,再从托盘或后台关闭这个实例,确认任务管理器中没有残留 EmbyServer 进程。
在 Emby 设置中关闭普通实例的随登录启动,避免服务与托盘程序抢占端口 / 数据目录。
从 NSSM 官方站点 取得匹配 Windows 架构的程序,把 nssm.exe 放到固定位置,例如 C:\Tools\nssm\nssm.exe 。服务会依赖这个文件,注册后不要移动或删除它。
在管理员 PowerShell 执行以下命令打开服务配置窗口;本文固定使用服务名 EmbyServer :
在 Exit actions 中将默认退出动作设为 Exit / 不自动重启应用 ,遵循 Emby 官方要求;否则后台点 Shutdown 后 NSSM 可能马上重新拉起。正常重启使用 Windows 的 Restart-Service。
服务账户需要“作为服务登录 / Log on as a service”权限,以及上面列出的目录权限。避免为方便而默认使用权限很高的 LocalSystem;访问 SMB 时,本地系统账户也不会自动拥有你的共享凭据。账户密码在 NSSM 的 Log on 界面输入,不写入脚本 / 命令历史。先用原账户确保目录一致,再考虑单独的低权限服务账户;迁移账户时核对数据目录和 NTFS / 共享权限。
点击 Install service,随后执行:
应看到服务 Running 、启动模式 Auto ,8096 监听且 TcpTestSucceeded 为 True 。重新访问后台,确认进入的是刚才那一套配置,而不是新的空白向导。服务模式不会自动更新,后面的更新步骤必须手动执行。
8. 端口、系统防火墙和云安全组 #
HTTP 8096 没有加密。仅限制来源 IP 不能代替 TLS;初始化和管理员登录优先使用下面的 SSH 隧道或服务器内部浏览器。公网长期使用前,再完成 HTTPS / 私人 VPN。不要仅因为数字相近,就把 https://IP:8096 或 http://IP:8920 当作正确地址。参见 Emby 网络设置 。
8.2 Debian / Ubuntu:已启用 UFW 时 #
如果未安装 UFW,这条命令会提示找不到命令,不等于没有任何防火墙;检查云镜像是否使用 nftables / 其他规则。 Status: inactive 表示 UFW 未启用,不要为了照抄教程直接启动它。
已启用 UFW 且需要受限公网连接时,把 198.51.100.25 改成 你电脑当前的公网 IPv4 :
这个文档示例 IP 不能直接使用。若需要启用 UFW,先按实际 SSH 端口和来源保留 SSH 规则,保持当前连接,再确认新终端能够登录;不要只添加 8096 就执行 ufw enable 。UFW 规则中的来源要与云安全组一致。参考: Ubuntu 防火墙文档 。
8.3 Rocky / AlmaLinux:firewalld #
找到公网网卡实际所在 zone,不一定是 public 。下面仅以 public 为例,同时限制来源;把 zone 和 IP 替换为真实值:
--permanent 保存重启后的规则,reload 让它进入运行配置;reload 也会移除尚未保存的临时规则,所以先确认 SSH 规则已经永久保存。firewalld 未运行时,不应未核对现有规则就临时开启另一套防火墙。检查是否已有向所有来源放行的 8096 规则:新增受限规则不会收紧原来的宽泛规则。参考: firewall-cmd 、 rich rule 语法 。
8.4 Windows Defender Firewall #
在管理员 PowerShell 查看网络配置类别和防火墙状态:
可以打开 wf.msc ,在「入站规则 → 新建规则 → 端口」中选择 TCP 8096、允许连接和当前适用的配置文件,再在规则的「作用域」限制自己的来源 IP。程序规则则必须指向实际 EmbyServer.exe ;程序路径或版本目录变化以后重新核对。
也可以创建下面这条来源受限规则。 -Profile Any 适应云镜像可能采用的 Public / Private / Domain 类别,来源仍限制为你的 IP:
把地址替换后再执行。已有安装器建立的宽泛允许规则也需要检查;新的限制规则不会覆盖它。无需关闭 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 流程。
Linux:在你的电脑另开终端建立 SSH 隧道 ,用户名、IP、SSH 端口按第 2 节的实际值调整:
保留此终端运行,在电脑浏览器打开:
这里使用 18096 避免与电脑自己的 8096 冲突;SSH 把请求加密传到 VPS 的 8096。看到向导后继续配置,关掉隧道终端后这个访问地址就失效。它只转发端口,不会在你的电脑安装 Emby。
Windows:在 RDP 会话中的服务器浏览器 打开 http://localhost:8096 。自己的电脑浏览器中的 localhost 指自己的电脑,不是 VPS。
受限公网诊断地址为 http://服务器公网IPv4:8096 ;IPv6 写成 http://[服务器IPv6]:8096 ,需要 IPv6 路由、监听和对应防火墙规则。公网 HTTP 适合判断连接问题,管理员凭据仍应通过加密隧道 / 已配置的 HTTPS 输入。
不同版本的按钮和中文翻译可能略有差异,流程以 官方初始化说明 为准。
界面语言 :选择中文或需要的显示语言。它与媒体元数据语言不是同一个选项。
创建管理员 :设置独立用户名和强密码,并保存到密码管理器。不要留空密码,不要与 VPS root / Windows 管理员密码复用。Emby Connect 是可选账号关联,不是这一步的前提。
添加媒体库 :按电影、剧集、音乐分别选择内容类型和显示名称,再添加服务器上的真实目录,例如 /data/media/Movies 或 D:\Media\Movies 。不要填写电脑本地路径,也不要把配置目录当作媒体库。还没上传媒体时,可以暂时跳过,稍后在后台「媒体库 / Library」添加。
元数据语言与地区 :按自己希望的海报、简介和分级选择,例如简体中文与中国;英语内容可单独使用 English。文件名和结构尽量规范,先用少量文件检验识别结果。
远程访问 :只用本机 / 隧道初始化时,可以先不启用公网远程访问;要供远程客户端使用时,启用服务器与该用户的远程连接权限。VPS 通常关闭“自动端口映射 / UPnP”,由云平台规则显式控制。
条款与完成 :阅读并确认 Emby 条款,完成向导,使用刚创建的本地管理员账号登录。
在齿轮或「管理服务器」中查看 Dashboard:确认版本、媒体库、活动任务,并通过服务器信息记录真实数据目录。在 Network 中先保持默认本地端口,尚未配置 TLS 时不要设置“要求所有远程连接使用 HTTPS”;不要把 NAT 云主机的公网 IP 填成网卡上不存在的绑定地址,也不要把整个公网定义成 LAN。
在 Library 中核对文件夹、内容类型、元数据语言与扫描选项。首次扫描需要读取文件并获取元数据,大库不会立刻完成。先添加几部媒体,等待扫描,再播放一部,检查显示的是 Direct Play、Direct Stream 还是 Transcoding。识别不正确时先修正命名或匹配,避免反复扫描整个库。
初次部署可以暂缓视频预览缩略图、片头检测等额外任务,待基本播放正常再逐项开启。网络挂载未必支持实时变化监控,可使用 Scheduled Tasks 定时扫描。参考: 媒体库设置 、 播放方式 。
10. Linux 服务管理与日志 #
以下命令适用于本文 APT / RPM 原生安装;Windows 的服务名在本文统一为 EmbyServer ,不要混用。
disable 本身不停止当前进程; stop 本身不取消下次开机启动。仅改正常后台设置通常不需要 daemon-reload ,它用于重新读取 systemd unit / drop-in。
第一条看本次开机,第二条看最近一小时,第三条实时跟随,按 Ctrl+C 退出跟随,不会停止 Emby。启动失败优先看 journal;扫描 / 播放问题还要看 Emby 后台 Logs 中的 embyserver 、 ffmpeg 和硬件检测日志。Linux 默认应用日志在 /var/lib/emby/logs ,确认数据目录后再使用:
参考: systemctl 、 journalctl 、 Emby 日志说明 。向论坛提交日志前检查用户名、媒体路径、公网 IP 和令牌;后台导出有匿名化处理,但公网 VPS 的本地地址仍可能出现在日志中。
11.1 先备份,再改变版本 #
记录当前版本、架构、数据目录、媒体挂载和服务账户。升级可能改变数据库结构, 安装回旧二进制不等于可以安全降级数据库 。升级前保留停止服务时的数据副本和当前版本安装包,并检查新版本发行说明。
Linux 默认数据目录可这样做一份权限受限的离线备份;数据目录改过时替换实际路径:
先确认备份命令成功且磁盘空间充足,再升级。归档可能含密码相关数据、插件配置和个人媒体信息,应加密复制到服务器以外的受控存储。它不包含媒体文件本身,也不包含 fstab、自定义 unit、SMB 凭据等系统配置;这些需要单独安全备份。备份文件与原盘放在同一 VPS 不是灾难恢复。
11.2 APT / DNF 仓库更新 #
Debian / Ubuntu 使用官方仓库时:
确认服务状态、本机 HTTP、后台版本和一部媒体播放。若更新失败,保留错误与备份,根据日志处理;不要反复启动、随机替换数据库或混入 beta 包。手动 DEB / RPM 用户重复前面的官方包下载步骤,下载新稳定版并安装;不需要先卸载旧包。包管理器可能在升级时重新启动服务。
11.3 Windows 更新 #
普通启动模式可按当前 Emby 的更新提示处理,也可手动从官方页取得新安装器。 NSSM 服务模式不会自动更新 :停止服务、确认进程退出、备份真实 programdata 和服务设置,再用原账户把新版本装回原位置。
Portable 用户把新 ZIP 先解压到临时目录,核对结构,停止服务后替换原 System 的程序文件,保留原 programdata 和稳定路径;不要把备份恢复成第二套同时运行的实例。重新启动服务,检查服务器信息中的数据路径、版本和媒体库。如果升级后出现全新向导,先停止并检查是否读错数据路径。
12.1 重启 Emby 与重启操作系统 #
Linux 仅重启 Emby 用 sudo systemctl restart emby-server ;重启整个 VPS 使用 sudo reboot ,会断开 SSH 并中断所有服务。只在确有系统更新 / 内核维护需求时重启整机。
Windows Service 用管理员 PowerShell:
按当前需要选择单条操作,不必把停止、启动、重启连续执行。普通模式从托盘 / 后台 Shutdown 关闭,再从原快捷方式启动;不要用强制结束进程代替正常关机。重启 Windows 使用开始菜单的 Restart,并提前确认 RDP 能恢复。
12.2 Linux 卸载,默认保留数据 #
先停止并取消开机启动,完成数据备份,再执行本发行版的卸载命令:
Debian / Ubuntu:
Rocky / AlmaLinux 等 RPM 系统:
查看卸载清单再确认,不盲目执行 purge / autoremove。 不要把“软件已卸载”理解为“数据库、账号和媒体都已删除” ,包维护脚本和版本可能不同,先备份并检查真实数据路径。媒体目录和数据盘不应随卸载删除。
不再需要官方仓库时,可单独移除本文创建的 那一个 来源文件,然后刷新索引:
不要删除其他软件来源或整目录。手动包安装没有创建这些文件,就不执行此步骤。本文不提供递归删除 programdata 、 /var/lib/emby 或媒体盘的命令;需要完全清理时先核对备份和目录用途。
12.3 Windows 卸载 #
NSSM 模式先停止服务,再从 NSSM 移除本文注册的服务:
确认窗口中的服务名确实是 EmbyServer 。安装器方式在原安装账户的「设置 → 应用」或「程序和功能」中卸载 Emby Server。Portable 没有必须使用的系统卸载器:确认进程 / 服务已退出后,移除快捷方式并按需清理程序目录;若 programdata 与程序位于同一父目录,删除整个 C:\Emby 也会删除你的配置,必须先备份。
只删除本教程创建的防火墙规则,例如:
云安全组中的对应规则也按用途收回,保留 SSH / RDP 管理通道。NSSM 若还被其他服务使用,不要删除它。
13. 按现象排查常见问题 #
下载失败、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 / 启动后马上退出。 先获取状态与本次启动日志:
从第一条真正的错误判断: Permission denied 检查数据目录和父目录; No space left 检查磁盘及 inode;绑定错误检查端口;配置 / 插件异常先备份再处理对应项。 test -w 只检查目录权限,不保证所有旧文件均可写;不要为“修复”而递归修改整个系统。
服务反复被杀 / OOM。 查看:
确认是否内存耗尽、云套餐限制或并发任务过多。降低扫描 / 转码并发,停掉非必要重任务,按实际需要增加资源。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 已失败就先修服务,别反复改安全组。
在自己的 Windows 电脑检查连通性时可以使用:
受限规则允许的来源必须是电脑当前公网 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 等检查:
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 中查看同一时间的事件。
核对 NSSM 文件是否仍在原位置、Application Path / Startup directory 是否正确、Arguments 是否为 -service ,以及普通托盘实例是否已关闭。服务启动成功却没有后台时,再核对真实数据目录和监听,不要直接重装清空配置。
RDP 中可播放,服务模式看不到文件。 两种运行身份可能不同,检查服务账户的 NTFS / SMB 权限和 UNC 路径;服务看不到交互用户的映射盘是常见原因。数据目录与媒体目录要分别授权。
Defender 阻止程序或写入。 查看 Protection History 和 Controlled Folder Access 是否有明确拦截记录,核对官方来源;确有误拦截时按 Microsoft / Emby 支持建议处理具体程序 / 路径。不要关闭整台服务器的 Defender,也不要为整个 C: 盘建立排除。
服务是否正常运行,并设置了开机启动?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(Linux)
反向代理 Emby(Windows Server)
按反向代理教程收紧 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 节。
安装来源 : Emby Linux 下载 、 APT 仓库 、 DNF 仓库 、 官方 Releases 。
Windows : 官方 Server 下载 、 Windows Service 、 NSSM 用法 、 Microsoft 服务账户 。
初始化和排错 : Emby 安装向导 、 媒体库 、 网络 、 数据目录 、 日志 、 管理员重置 。
系统命令 : Debian APT 、 Ubuntu 软件管理 、 Rocky 软件管理 、 systemd 官方手册源码 、 firewalld 文档 。
实践补充 : Vultr Emby 部署指南 用于核对从空服务器到初始化的遗漏项;其 Docker / Traefik 部署不属于本页安装方式。 官方 AlmaLinux 讨论 、 Windows Server 2025 安装器讨论 用于核对实际平台问题。
命令根据官方安装文档、当前仓库文本 / 包索引和系统手册交叉核对,完成了静态语法和 Wiki 渲染检查。 本文编写过程中没有在本地安装或启动 Emby Server,也没有进行发行版 / Windows Server 的真实安装实验。 特殊云镜像、签名故障、CPU 指令集和硬件转码仍要结合自己服务器的实际日志判断。