引言:为什么你需要一个私人流媒体中心
Netflix 每年涨价、Disney+ 和 HBO 各自独占内容,每个月加起来订阅费轻松上百。更头疼的是,你想看的电影可能分散在三四个平台,有些甚至根本没上架。自己下载的蓝光原盘和收藏的老片子,也只能存在硬盘里吃灰,想在手机或电视上放还得折腾 U 盘。私人流媒体中心的思路就是把你所有媒体文件集中管理,在任何设备上随时播放,不受平台限制。
Lunarr 是一个开源的自托管媒体服务器,专为无头服务器设计,可以用 Docker 部署在 VPS 或 NAS 上。它支持自动匹配电影和剧集元数据,生成漂亮的海报墙,还具备实时转码能力,让你在带宽有限的情况下也能流畅播放。这篇文章会从选 VPS 开始,一步步带你在 Linux 上部署 Lunarr,配置 TMDb 元数据、添加媒体库、设置 HTTPS 远程访问,同时也会对比 Plex 和 Emby,帮你判断哪个更适合自己的需求。
Lunarr 是什么?与 Plex、Emby 的定位差异
Lunarr 的核心功能包括:
- 多源媒体库:支持本地文件夹、SFTP 和 WebDAV 三种来源,文件可以分散在不同位置。
- 智能元数据匹配:自动从 TMDb 拉取电影和剧集的海报、简介、评分等信息。
- 多种播放方式:直接播放原始文件,或在带宽不足时自动 HLS 转码。
- 设备投屏:支持 Chromecast 和 AirPlay,方便推到电视上播放。
- 字幕支持:自动加载同目录下的
.vtt字幕文件。 - 访客分享:可以生成有时效的链接分享给朋友,不需要他们注册账号。
- 开源免费:基于 Apache-2.0 协议,可以随意修改和分发。
与 Plex、Emby 相比,Lunarr 最大的优势就是完全免费,没有隐藏付费点。下面这张表可以直观看出区别:
| 特性 | Plex | Emby | Lunarr |
|---|---|---|---|
| 价格 | 基础功能免费;硬件转码需购买 Plex Pass(约 119 美元永久) | 基础免费;硬件转码、部分客户端需付费订阅(约 4.99 美元/月或 119 美元永久) | 完全免费 |
| 硬件转码 | 仅限 Plex Pass | 付费订阅支持 | 不支持(仅 CPU 转码) |
| 元数据来源 | 内置代理,支持多种 | 内置代理,支持多种 | 仅 TMDb |
| 媒体源 | 本地、网络挂载 | 本地、网络挂载 | 本地、SFTP、WebDAV |
| 客户端应用 | 几乎所有平台都有官方 App | Web/iOS/Android/智能电视 | 主要靠 Web 界面,Chromecast/AirPlay 投屏 |
| 用户管理 | 完善的多用户体系 | 完善的多用户体系 | 基础管理员+访客分享 |
| 部署复杂度 | 中等(需注册账号) | 中等(需注册账号) | 简单(Docker 一行命令) |
Lunarr 的定位非常明确:适合个人或小家庭使用,媒体库规模在几十 GB 到几 TB 之间,不追求 4K HDR 硬件转码,想要一个干净、开源、无后顾之忧的方案。如果你需要多用户并发、硬件加速、完整的客户端生态,那付费的 Emby 或者 Plex 可能更合适。
部署前的准备:VPS 配置建议
Lunarr 对 VPS 的要求不算高,但需要根据你的媒体库大小和播放场景来选。以下几点是关键:
CPU 与内存
- 最低配置:1 核 CPU、1GB 内存。只适合播放 480p/720p 原始文件,不转码。
- 推荐配置:2 核 CPU、2GB 内存。能流畅转码 720p,同时运行其他服务(如下载工具)。
- 转码场景:如果要实时转码 1080p,建议 4 核 CPU、4GB 内存以上。Lunarr 没有 GPU 加速,CPU 转码压力较大。
存储
- 系统盘:至少 20GB,用于安装系统和 Docker 镜像。
- 媒体存储:这是最大变量。一部 1080p 电影大约 2-5GB,一套《权力的游戏》全季可能占 200GB。如果计划存 2TB 以上的内容,建议单独挂载额外数据卷,比如用 VPS 提供的块存储,或者挂载 S3 兼容的对象存储。如果对延迟不敏感,远程存储(SFTP/WebDAV)也是节省本地硬盘的方案。
带宽
- 直接播放:原始码流播放,720p 需要约 5Mbps,1080p 约 10Mbps,4K 约 20-40Mbps。
- 转码播放:转码后 720p 约 2-3Mbps,1080p 约 5-8Mbps。上传带宽是瓶颈,尤其是从国内 VPS 往境外播放时,可能需要优化线路。
网络与系统
推荐使用 Ubuntu 22.04 或 24.04 LTS,Docker 最新版本。如果 VPS 在中国境内,需要考虑备案和防火墙问题(建议直接选海外 VPS)。
下面是不同使用场景的配置建议表格:
| 场景 | CPU | 内存 | 硬盘 | 上行带宽 | 参考月费(约) |
|---|---|---|---|---|---|
| 个人播放 720p | 1 核 | 1GB | 40GB | 5 Mbps | $3-$5 |
| 家庭 1080p 直接播放 | 2 核 | 2GB | 200GB | 10 Mbps | $6-$10 |
| 家庭 1080p 转码+少量并发 | 4 核 | 4GB | 500GB | 20 Mbps | $15-$25 |
费用只是大致行情,实际价格随时变动。如果你预算有限,可以多留意 2026 海外 VPS 主机推荐 里的年付方案,比如 Hostinger 的 KVM2 计划(2 核、4GB、80GB SSD),套餐经常有折扣(需人工核实最新价格)。
使用 Docker 部署 Lunarr(两种方式详解)
前置条件
确保 VPS 已安装 Docker 和 Docker Compose。快速安装命令:
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker
sudo apt install docker-compose-plugin -y # Ubuntu
创建目录与权限
mkdir -p /opt/lunarr/data
## 重要:data 目录必须能被 Docker 用户写入,否则 SQLite 数据库创建失败
chmod 777 /opt/lunarr/data
如果你已有媒体文件,建议挂载到统一目录,比如 /media。
方式 1:docker cli 直接运行
docker run -d \
--name lunarr \
-p 8280:8280 \
-v /opt/lunarr/data:/data \
-v /media:/media \
-e AUTH_SECRET='你的至少32字符随机密码' \
-e LUNARR_DATA_DIR=/data \
-e ORIGIN=https://你的域名或IP:8280 \
--restart unless-stopped \
sayem314/lunarr:latest
AUTH_SECRET:必须稳定,一旦改变会导致现有 session 失效。建议用openssl rand -hex 32生成。ORIGIN:如果打算通过反向代理访问,这里填最终公网地址(如https://media.example.com);如果直接 IP 访问,填http://你的VPS_IP:8280。
方式 2:docker-compose.yml
创建 /opt/lunarr/docker-compose.yml:
version: "3.8"
services:
lunarr:
image: sayem314/lunarr:latest
container_name: lunarr
restart: unless-stopped
ports:
- "8280:8280"
volumes:
- /opt/lunarr/data:/data
- /media:/media
environment:
- AUTH_SECRET=你的至少32字符随机密码
- LUNARR_DATA_DIR=/data
- ORIGIN=http://你的VPS_IP:8280
然后在 /opt/lunarr 目录下执行:
docker compose up -d
首次访问
打开浏览器访问 http://你的VPS_IP:8280,会看到管理员注册页面。注册后进入主界面,可以开始添加媒体库了。
配置 TMDb 元数据与添加媒体库
Lunarr 的元数据全靠 TMDb(The Movie Database)。需要先拿一个 API Key。
获取 TMDb API 密钥
- 注册 TMDb 账号。
- 在设置页面 -> API -> 申请 API 密钥,选“开发者”用途,几分钟就能拿到
读取访问令牌(Read Access Token)。 - 在 Lunarr 后台的「设置」->「TMDb metadata」里填入该令牌。
关于网络代理的坑
Lunarr 内部使用 Node.js 的原生 fetch API(基于 undici),它不支持通过 HTTPPROXY / HTTPSPROXY 环境变量走代理。这意味着如果 VPS 所在网络无法直连 themoviedb.org(比如中国大陆的 VPS),元数据就会完全失效。目前 Lunarr 官方没有绕过方案,唯一靠谱的办法是 VPS 本身能透明代理,或者直接使用境外的 VPS。
添加媒体库
点击「Add library」,填写:
- Type:Movies 或 TV Shows。
- Source:选择 local folder(本地挂载)、SFTP 或 WebDAV。
- Folder path:填入容器内的路径,比如
/media/movies。 - Scheduled rescan:建议较大量媒体设为 Daily,小量可以用 Hourly。
添加后,Lunarr 会自动扫描文件并匹配元数据。如果匹配失败,可以手动触发扫描。文件名最好符合规范,比如 电影名 (年份).mp4,识别率更高。
媒体文件的管理建议
- 保持目录结构整洁:
/media/movies/放电影,/media/tv/放剧集,剧集最好按剧名/Season 01/剧名 S01E01.mkv的格式。 - 侧边字幕:将
.vtt文件放在与视频同名同目录下。 - 如果使用远程源(SFTP/WebDAV),需要注意服务器的并发连接限制和延迟,首次扫描可能较慢。
远程访问安全配置:HTTPS、认证与防火墙
直接暴露 Lunarr 的 8280 端口是很危险的做法——没有加密,密码在网络上明文传输。正确做法是用反向代理加 TLS。
推荐使用 Caddy(最简单,自动 HTTPS)
Caddy 默认自动申请 Let's Encrypt 证书。下面是示例 /etc/caddy/Caddyfile:
media.example.com {
reverse_proxy localhost:8280
}
然后重启 Caddy:
systemctl reload caddy
记得将域名 A 记录指向 VPS IP,并确保 80 和 443 端口开放。
或者用 Nginx
server {
listen 443 ssl http2;
server_name media.example.com;
ssl_certificate /etc/letsencrypt/live/media.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/media.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8280;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
建议配合 certbot 自动续签。
防火墙
只放行 80/443 和 SSH 端口(比如 22),关闭 8280 的外部访问:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
其他安全要点
- AUTH_SECRET 必须用强随机值,不要用
password123。 - 数据备份:Lunarr 的 SQLite 数据库和 HLS 缓存存放在
/opt/lunarr/data,定期备份此目录即可。 - 域名隐私:如果怕暴露真实 IP,可以在 VPS 前面套一层 Cloudflare CDN,但注意转码流量会经过 Cloudflare 可能违反 ToS(他们不支持视频转码),建议只用于静态资源代理或直接回源。
- 设备分享:Lunarr 可以生成有时效的访客链接,不需要给对方账号密码。
如果你对 Ubuntu 系统安全配置不太熟悉,可以参考我们之前的 Ubuntu 24.04 VPS 安全加固清单,里面包含了 SSH 密钥登录、Fail2ban、自动更新等完整步骤。
使用场景与局限性(诚实评价)
Lunarr 不是万能的,搞清楚它的强项和短板,你才不会买了 VPS 后后悔。
适合的场景
- 个人媒体库管理:几百部电影、几十部剧集。Lunarr 的海报墙效果很好,浏览体验接近专业流媒体。
- 远程播放:出差或旅行时,通过手机浏览器或 VLC 访问家里的媒体库。
- 低成本替代:不需要花一分钱买软件授权,VPS 本身也就每月几美元。
- 技术爱好者:喜欢折腾 Docker、自己搭服务的人。
不适合的场景
- 多人并发观看转码:4 核 CPU 大约只能支撑 2-3 路 1080p 转码,再多就会卡顿。如果家里有四五个人同时从不同设备看,Plex Pass 的硬件转码优势明显。
- 4K HDR 内容:没有硬件加速,CPU 软解 4K HDR 会满载甚至超时,基本不可用。
- 专业字幕需求:Lunarr 只支持
.vtt侧边字幕,内嵌字幕(如 MKV 内的 PGS/ASS)不会显示。如果你很多资源是内封字幕,建议先转外挂字幕或用 Emby。 - 客户端生态:没有官方原生 App,只能通过 Web 浏览器或投屏。智能电视上的体验不如 Plex/Emby 的客户端。
与 Emby 的对比
如果你愿意每月花几十块人民币买 Emby Premiere,它能提供更完善的客户端、硬件转码、多用户权限、插件系统等。Lunarr 适合不愿意额外付费、且技术能力足以处理偶尔折腾的用户。
总结与行动建议
Lunarr 是一个轻量、免费、开源的自托管媒体服务器,非常适合用 VPS 搭建。对大多数个人用户来说,2 核 CPU、2GB 内存、60GB 以上的 SSD(或者挂载对象存储)已经够用。如果你是第一次尝试,可以按以下步骤操作:
- 选购一台 VPS:推荐 Hostinger 的 KVM2 套餐(价格需人工核实)或 Vultr 的按小时计费方案($2.5/月起,需人工核实当前套餐)。如果你对亚洲线路有要求,可以关注 搬瓦工 的 CN2 GIA 套餐(价格浮动较大,需人工核实)。
- 安装 Docker 和 Docker Compose。
- 用 docker-compose 部署 Lunarr。
- 配置 TMDb API Key,添加媒体库。
- 使用 Caddy 或 Nginx 反代,配置 HTTPS。
- 上传你的媒体文件(使用 SFTP、S3 或直接拷贝)。
- 测试播放:在手机、电脑、电视上打开域名,享受自己的媒体中心。
原创文章,作者:dakule,如若转载,请注明出处:https://dakule.com/content/1172.html
