【影音服务器 03】Jellyfin / Plex 部署模板与带宽账:按并发数算清楚流量钱(2026)
2026-08-15 · DevCraft Studio
用 VPS 自建 Plex / Jellyfin 私人影视库的完整指南:两者怎么选、转码吃 CPU 还是 GPU、带宽与流量怎么算、无 GPU 的 VPS 如何靠直放撑住,以及必须清楚的版权边界。
VPS 影音服务器系列 · 共 4 篇
第 01 篇讲了选型框架,第 02 篇讲了硬件与转码算力,本篇落到「动手」:给你一份可直接复制的 Docker Compose 部署模板,以及最关键的「带宽账」——按并发人数和清晰度,算清楚你每月要付多少流量钱。很多人在 VPS 上翻车,不是因为搭不起来,而是没算清流量,月底账单吓一跳。本篇专治这个。先说结论:影音服务 90% 的成本意外都出在「出站流量」上,而不是 CPU 或硬盘,所以这一篇把流量算到你能闭眼报出月费为止。
延伸阅读
更多相关攻略推荐:Ollama AI系列(2):VPS上的AI推理与API应用、Ollama AI系列(2):VPS上的AI推理与API应用、【CPU选型 01】搭载 AMD Ryzen 9950X 的 VPS、ARM / Ampere 席卷 VPS:性价比真香还是兼容陷阱?、Ollama AI系列(2):VPS上的AI推理与API应用。
最小的 Jellyfin 部署模板
下面是一份最小可用的 docker-compose.yml,把配置、缓存、片库用卷挂出来,方便迁移和备份:
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: "1000:1000"
network_mode: "bridge"
ports:
- "8096:8096"
volumes:
- ./config:/config
- ./cache:/cache
- /mnt/media:/media:ro
restart: unless-stopped把片库放在 /mnt/media(可以是挂载的块存储或家里 NAS),配置和缓存放本地卷。启动后用 http://服务器IP:8096 初始化,扫描媒体库即可。远程访问与反代 HTTPS 见第 04 篇,本篇先解决「跑起来」和「算清账」。需要提醒:user: "1000:1000" 是为了让容器以非 root 身份写配置,避免权限一团乱;如果挂载的片库是 SSHFS,记得在挂载端给好读写权限,否则扫描会报「无权限」。
端口与防火墙
Jellyfin 默认 8096。若只在内网或临时测试,放行 8096 即可;若要长期对外,强烈建议走反代 + 域名 + HTTPS(第 04 篇),不要长期把 8096 裸暴露在公网。无论哪种,防火墙只开必要端口,且把管理端口限制来源 IP 更安全。Plex 默认 32400,思路相同。很多人图省事直接放行 8096 到 0.0.0.0/0,结果没几天就被扫到、被爆破、被塞广告,所以「临时测试可以裸,长期必须反代」是铁律。
带宽账:单路要多少
不同清晰度的稳态码率(实际值看片源,以下是常见区间):
| 清晰度 | 单路码率 | 备注 |
|---|---|---|
| 480p | 1–2 Mbps | 弱网兼容 |
| 720p | 3–5 Mbps | 手机友好 |
| 1080p | 5–15 Mbps | 主流 |
| 4K 原盘 | 40–100 Mbps | 仅内网直连现实 |
注意:如果服务端做转码降码率,出口按目标码率算;如果 Direct Play,出口按片源码率算。所以「让客户端支持高码率格式」不仅省 CPU,还省流量(不用降码也能播)。这里有个反直觉的点:很多人以为转码是为了省钱,其实转码降码率往往增加了服务端的 CPU 负担,但减少了出站的流量——当你流量比 CPU 更贵时(比如超额流量单价高),转码反而划算;反之则 Direct Play 更优。这层权衡正是带宽账的精髓。
按并发数算流量钱
假设你看 1080p(取中值 8 Mbps ≈ 1 MB/s ≈ 3.6 GB/小时),公式:
- 单人每天 2 小时:约 7.2 GB/天,约 216 GB/月。
- 3 人并发各 2 小时:约 650 GB/月。
- 若都看 4K 原盘(80 Mbps):单人 2 小时 ≈ 72 GB,月 ≈ 2.1 TB,流量费立刻爆炸。
所以省钱的第一杠杆是「清晰度别贪高」+「能 Direct Play 就别转码」。多数 VPS 流量包在 1–5 TB/月,家庭几人 1080p 观看通常够用;一旦 4K 原盘对外分享,几乎必然超额。流量单价参考:超额后通常 0.5–2 元/GB 不等,按月结前务必在面板设好流量告警。再算一笔账:若你每月超额 500GB、单价 1 元/GB,就是 500 元——这已经够买一整年的廉价 VPS 了,所以超额流量是影音服务最贵也最容易被忽视的成本。
选套餐时的三个流量陷阱
- 陷阱一:标称「不限流量」但限速。限速后 4K 根本跑不动,等于变相限制。
- 陷阱二:流量包月清零不清零。选可结转或按量计费更稳。
- 陷阱三:入站免费、出站计费。影音服务是出站大户,只看出站单价。
RackNerd、CloudCone 的特价机常有大流量包,适合影音;Contabo 大硬盘机型适合当片库存放。具体硬件对比回看第 02 篇。补充一个实战技巧:如果你的片库主要在家里 NAS、VPS 只是入口,那么「家人从外网看」的流量走的是 VPS 出站到观众,这部分才计费;VPS 到家里 NAS 的回源若是同机房内网或专用通道,通常不计入公网流量,能再省一笔。
把片库从本地迁到 VPS 的笨办法
片库很大时别用 scp 直传(慢且易断),用 rclone 或 rsync -P 断点续传,先传一次全量,之后只增量同步。若片库存家里 NAS,直接把 VPS 通过 SSHFS/rclone 挂载 NAS 目录,片库不占 VPS 流量和硬盘,是最省的方案。关于 rclone 挂载还有个小坑:默认缓存策略可能让首次扫描很慢,建议把 --dir-cache-time 调大、用 rclone mount 的 VFS 缓存,扫描完再恢复正常,能显著缩短首次建库时间。
常见报错排查(中文经验)
- 「数据库被锁」:多半是配置目录权限错或磁盘满,
df -h先看盘,再修权限。 - 「扫描到一半停了」:片库含损坏文件或权限中断,看
docker logs jellyfin末尾报错定位。 - 「播放卡顿但 CPU 没满」:通常是客户端不支持格式在强制转码 + 带宽不足,换客户端或降码率。
- 「外网打不开」:先确认防火墙和 8096 放行,反代部分交第 04 篇。
流量监控与告警实操
算完账还要「盯账」,否则超额了才知道就晚了。三件具体的事:第一,在厂商面板里设流量告警,通常支持「达到 80% 包月量发邮件或电报」,这是最省心的防线;第二,在 VPS 内装个轻量监控(如 vnstat),用 vnstat -m 看每月出站总量,和面板对账,避免厂商统计口径差异导致误判;第三,给 Jellyfin 每用户设「最大码率」,从服务端硬卡住单路峰值,宁可画质低一点也别让一路 4K 原盘把整月流量半小时烧光。把这三条做成习惯,影音服务的成本就从「开盲盒」变成「可控账单」。还有两个细节容易踩:一是厂商统计通常有数小时延迟,告警触发时实际已超,阈值设保守些(如 70%)更稳;二是要分清楚「出站流量」和「入站流量」,你往 VPS 上传片库是入站(多免费),家人从 VPS 看你节目是出站(计费大头),盯错方向会白忙。把出站总量、单路峰值、告警阈值三者对齐,你的带宽账才算真正闭环。
片库命名与整理的小技巧
部署顺了,片库越大越需要规矩,否则扫描出来一堆「未知」让你怀疑人生。三条实用习惯:第一,按「电影 / 电影名 (年份)」和「剧集 / 剧名 / Season 01 /」的目录结构放,Jellyfin 的识别率最高;第二,把字幕和视频放同目录、同名,避免手动匹配;第三,定期用 Jellyfin 的「合并版本 / 替换元数据」功能清理重复。片库上万部时,命名规范省下的不只是整洁,更是首次扫描和日后维护的 CPU 与人力。顺带一提,外部块存储或 NAS 上的目录权限也要稳定,权限一变 Jellyfin 会把它当新文件重新索引,白白烧一轮资源。把命名和权限当基础设施来管,影音服务才能长久稳定运行。