反代 302 直连
FlowMedia 提供 Emby 和 Navidrome 反向代理。客户端连接 FlowMedia 反代端口后,播放请求会被 302 重定向到云盘 CDN 直链,从而减少服务器中转流量。
端口说明
| 端口 | 服务 | 用途 | 谁来访问 |
|---|---|---|---|
6688 | FlowMedia 主服务 | Web UI、API、任务管理 | 浏览器、Webhook、企业微信回调 |
6689 | Emby 反代 | Emby / Infuse / VidHub 等客户端 302 直连 | 视频客户端 |
6699 | Navidrome 反代 | Subsonic 兼容客户端 302 直连 | 音乐客户端 |
Docker Compose 中需要映射:
yaml
ports:
- "6688:6688"
- "6689:6689"
- "6699:6699"使用前提
| 前提 | 说明 |
|---|---|
| 云盘账号在线 | FlowMedia 需要调用 115 / 123 / 阿里云盘接口获取直链 |
| 已生成新版 STRM | Emby 反代依赖链接同步生成的新版 STRM |
| 媒体服务器能索引目标目录 | Emby/Jellyfin/Plex 索引 /media,Navidrome 索引 /music |
| 客户端连接反代端口 | 视频客户端连接 6689,音乐客户端连接 6699 |
| 防火墙放通端口 | 局域网或公网访问都需要放通对应端口 |
Emby 反代配置
客户端地址
把客户端里的服务器地址从原 Emby 地址:
http://<Emby主机IP>:8096改为 FlowMedia Emby 反代地址:
http://<FlowMedia主机IP>:6689| 参数 | 含义 | 示例 |
|---|---|---|
<FlowMedia主机IP> | 运行 FlowMedia 的服务器 IP 或域名 | 192.168.1.250 |
6689 | FlowMedia Emby 反代端口 | 固定为 6689 |
| 原 Emby 地址 | 用于 Emby 管理和媒体库刷新 | 仍然保留 8096,不要删除 |
工作流程
- 客户端向
6689请求播放。 - FlowMedia 把请求转发给 Emby,并识别 DirectPlay 播放信息。
- FlowMedia 从 STRM 中解析云盘标识。
- FlowMedia 调用云盘接口获取 CDN 直链。
- FlowMedia 返回
302,客户端直接从云盘 CDN 播放。
STRM 要求
| 项目 | 说明 |
|---|---|
| 新版 STRM | 链接同步生成,内嵌云盘播放所需标识,推荐使用 |
| 旧版路径 STRM | 只写挂载路径,可能无法触发 302 直连 |
| 强制同步 | 用于把旧 STRM 重新生成新版 STRM |
如播放失败,优先在链接同步任务中执行「强制同步」。
Emby 路径映射
如果页面中有路径映射设置,请按媒体服务器看到的路径与云盘挂载路径对应填写。
| 参数 | 含义 | 示例 |
|---|---|---|
| Emby 媒体库路径 | Emby 容器中媒体库文件所在路径 | /media/电影 |
| 云盘路径前缀 | FlowMedia / CloudDrive2 中对应的真实云盘路径 | /CloudNAS/115/影视库/电影 |
| 云盘类型 | 文件属于哪个云盘 | 115 / 123 / 阿里 |
示例:
| Emby 媒体库路径 | 云盘路径前缀 |
|---|---|
/media/电影 | /CloudNAS/115/影视库/电影 |
/media/电视剧 | /CloudNAS/115/影视库/电视剧 |
如果使用新版内嵌 pick_code 的 STRM,路径解析依赖会更少;但路径规划仍建议保持清晰,便于排查。
Navidrome 反代配置
客户端地址
Subsonic 兼容客户端中填写:
http://<FlowMedia主机IP>:6699| 参数 | 含义 | 示例 |
|---|---|---|
<FlowMedia主机IP> | 运行 FlowMedia 的服务器 IP 或域名 | 192.168.1.250 |
6699 | FlowMedia Navidrome 反代端口 | 固定为 6699 |
| 原 Navidrome 地址 | 用于管理音乐库 | 如 http://192.168.1.250:4533 |
音乐同步要求
Navidrome 推荐使用软链接模式:
/CloudNAS/音乐库 → 音乐链接同步软链接 → /music → Navidrome 索引FlowMedia 反代会拦截音乐流媒体请求,并尽量重定向到云盘 CDN。
DirectPlay 优先策略
FlowMedia 反代优先直连播放:
| 项目 | 说明 |
|---|---|
| 支持客户端 | Infuse、VidHub、Emby App、mpv、部分 Subsonic 客户端 |
| 不适合场景 | 浏览器软解、服务器转码、需要硬字幕烧录的播放 |
| 优势 | 降低 FlowMedia / Emby 所在服务器的上行流量 |
| 替代方案 | 如必须转码,请直接连接 Emby / Navidrome 原生端口 |
缓存参数
反代内部会缓存云盘直链,避免频繁拖动进度条时反复请求云盘接口。
| 参数 | 含义 | 用户是否需要配置 |
|---|---|---|
| URL 缓存 | 短时间复用已获取的直链 | 自动管理 |
| 缓存过期 | 直链过期后自动重新获取 | 自动管理 |
| 手动清理缓存 | 排查直链异常时使用 | 可在反代设置页操作 |
故障排查
| 问题 | 排查方法 |
|---|---|
| 客户端无法连接 | 检查 6689 / 6699 是否映射,防火墙是否放通 |
| 仍然走服务器流量 | 确认客户端连接的是 FlowMedia 反代端口,不是 Emby / Navidrome 原端口 |
| 播放失败 | 确认云盘账号在线,STRM 为新版,必要时强制同步 |
| 浏览器播放异常 | 浏览器常触发转码或软解,建议使用 DirectPlay 客户端 |
| 拖动进度条黑屏 | 等待缓存刷新,或清理反代缓存后重试 |
| 群晖端口冲突 | Navidrome 反代使用 6699,不要映射到群晖常用的 6690 |
推荐验证步骤
- 在 FlowMedia 中确认云盘测试连接成功。
- 对视频链接同步执行一次强制同步。
- 在 Emby 中刷新媒体库,确认能看到 STRM。
- 客户端连接
http://<FlowMedia主机IP>:6689。 - 播放一个视频,观察 FlowMedia / Emby 容器流量是否明显降低。