用 VPS 部署 Lunarr 私人流媒体中心:Plex 替代方案、配置需求和远程访问安全

本文将介绍如何使用 VPS 部署开源自托管媒体服务器 Lunarr,涵盖 VPS 配置选择、Docker 部署、元数据匹配、HTTPS 远程访问设置,以及与 Plex、Emby 的对比分析。

引言:为什么你需要一个私人流媒体中心

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,会看到管理员注册页面。注册后进入主界面,可以开始添加媒体库了。

注意:如果 VPS 有防火墙(如 UFW),记得放行 8280 端口。但最终生产环境不应该直接暴露这个端口,下一节会讲安全配置。

配置 TMDb 元数据与添加媒体库

Lunarr 的元数据全靠 TMDb(The Movie Database)。需要先拿一个 API Key。

获取 TMDb API 密钥

  1. 注册 TMDb 账号。
  2. 在设置页面 -> API -> 申请 API 密钥,选“开发者”用途,几分钟就能拿到读取访问令牌(Read Access Token)。
  3. 在 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(或者挂载对象存储)已经够用。如果你是第一次尝试,可以按以下步骤操作:

  1. 选购一台 VPS:推荐 Hostinger 的 KVM2 套餐(价格需人工核实)或 Vultr 的按小时计费方案($2.5/月起,需人工核实当前套餐)。如果你对亚洲线路有要求,可以关注 搬瓦工 的 CN2 GIA 套餐(价格浮动较大,需人工核实)。
  2. 安装 Docker 和 Docker Compose
  3. 用 docker-compose 部署 Lunarr
  4. 配置 TMDb API Key,添加媒体库
  5. 使用 Caddy 或 Nginx 反代,配置 HTTPS
  6. 上传你的媒体文件(使用 SFTP、S3 或直接拷贝)。
  7. 测试播放:在手机、电脑、电视上打开域名,享受自己的媒体中心。
注意:文章里提到的 VPS 价格、优惠码和套餐细节都是动态的,下单前最好到我们站内的最新优惠页面或商家官网确认。如果你遇到部署问题,欢迎在评论区留言,我会尽量帮你看。

原创文章,作者:dakule,如若转载,请注明出处:https://dakule.com/content/1172.html

(0)
上一篇 1天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注