对于热衷于自建家庭影院的 Homelab 极客而言,在 NAS 上用 Docker 搭建 Jellyfin、Plex 或 Emby 绝对是周末折腾的乐趣之一。看着精美的影视海报墙,幸福感瞬间爆棚。
然而,在国内复杂的网络环境下,影视墙的搭建往往会在第一步遭遇挫折: 由于知名的影视元数据提供商 TheMovieDb (TMDB)、TheTVDB 及其海报图床域名的 API 接口在国内遭遇了严厉的网络屏蔽,你的媒体服务器在进行“自动刮削”时,海报经常加载失败,空空如也,或者刮削极慢。
很多玩家选择直接让媒体服务器的整个 Docker 容器“走全局代理”。但这会引发另一个严重的后遗症:当你通过公网客户端或异地串流播放高码率的 4K 视频时,海量的视频流数据也会通过代理服务器中转,导致你的机场月流量瞬间见底,且播放卡顿频繁。
今天,我们将带你利用 Sing-box 的路由分流功能,实施**“影视刮削走代理,视频流直连放行”**的精细化分流方案!
[!NOTE] 📌 核心速览(TL;DR / 快问快答):
- 核心问题:Jellyfin/Plex 影视刮削接口(TMDB/TVDB)被封锁无法加载海报,若全走代理又会导致 4K 视频流消耗巨量节点流量。
- 分流解法:在 Sing-box 路由规则中精确锁定
.themoviedb.org、.tmdb.org、.thetvdb.com与.fanart.tv走代理出站;其余流量与局域网段(192.168.0.0/16)设为direct直连。- 最佳搭配:在 Docker 容器环境变量或透明网关配置
NO_PROXY避免内网回源卡顿。
🔍 一、精细化分流的核心原理
元数据刮削的流量与视频播放的流量在网络特征上有明显的不同:
- 刮削流量:主要由 API 的 JSON 数据请求与小体积的 JPG/PNG 海报图片组成,数据量小但对连通性要求高,必须强制走代理(proxy)出站。
- 视频流量:由动辄几十 GB 的 MKV/MP4 高码率数据块组成,数据量极其庞大但对网络延迟和协议安全并无严格要求,必须强制直接放行(direct)。
因此,我们的 Sing-box 路由配置目标就是:精准圈定刮削域名送入代理组,对其余的大流量连接执行豁免直连。
🛠️ 二、第一步:圈定刮削域名与规则配置
在 Sing-box 配置文件 config.json 的 route.rules 模块中,我们需要加入专属于影视墙刮削域名的分流规则。
以下是针对 TMDB, TheTVDB 以及 Fanart 等图床的精细化路由规则范例:
{
"route": {
"rules": [
// 1. 影视刮削域名匹配:全部送入代理出站(proxy-group)
{
"domain": ["api.themoviedb.org", "api.thetvdb.com", "api.tmdb.org"],
"domain_suffix": [
".themoviedb.org",
".tmdb.org",
".thetvdb.com",
".fanart.tv",
".tvdb.org",
".tmsimg.com"
],
"outbound": "proxy-auto-group"
},
// 2. 豁免本地与局域网段(防止内网跨网播放走代理)
{
"ip_cidr": [
"127.0.0.0/8",
"192.168.0.0/16",
"172.16.0.0/12",
"10.0.0.0/8"
],
"outbound": "direct"
}
],
"final": "direct" // 其余出站流量默认直连
}
}
💡 关键避坑:
请注意,如果你将 final(终极默认规则)设为了代理出站(proxy),那么必须在规则里加入针对你的多媒体回源或大流量下载网站的豁免规则。否则,Jellyfin 播放和 PT/BT 下载的流量都会瞬间挤爆你的代理带宽。
🔒 三、第二步:媒体服务器 Docker 容器的接轨配置
配置好 Sing-box 路由后,你需要让运行 Jellyfin/Plex/Emby 的 Docker 容器走该代理通道。有两种常用方式:
方法 A:通过 HTTP/SOCKS 环境变量(适用于单独部署)
如果你的 Sing-box 开启了 HTTP/Socks 入站(例如监听在局域网 192.168.1.5:2080),你可以在创建 Jellyfin 容器时,直接传入环境变量:
version: "3.8"
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
environment:
- HTTP_PROXY=http://192.168.1.5:2080
- HTTPS_PROXY=http://192.168.1.5:2080
- NO_PROXY=localhost,127.0.0.1,192.168.0.0/16
restart: unless-stopped
# 其余挂载路径与端口映射保持不变...
方法 B:透明网关模式(适用于软路由环境)
如果你的网关上运行着开启了 TUN 模式的 Sing-box 客户端,你只需确保 Jellyfin 所在物理网口的默认网关指向了软路由 IP。Sing-box 会自动捕获它的 DNS 53 端口解析,将刮削域名拦截并代理,实现免环境变量配置的透明代理。
❓ 常见问题与 AI 快问快答 (FAQ)
Q1: 配置完规则后,TMDB 海报依然显示问号或加载失败怎么办?
答:这通常是因为 TMDB 海报图片的 CDN 域名(如 image.tmdb.org 或 media.fandom.com)的 DNS 解析被本地 DNS 缓存污染。请确保 Sing-box 配置中的 dns.rules 同样将上述刮削域名指定为加密代理 DNS(dns-proxy)解析。
Q2: 异地串流播放 Jellyfin 时,如何确保视频流不走 Sing-box 节点?
答:请确保 Jellyfin 的公网访问域名(例如你的自建 DDNS 或 Cloudflare 域名)未被错误填入 domain_suffix 的代理匹配列表中,同时在 route.rules 的底部保持 final: direct。
🏎️ 四、高性能网络节点对影视刮削的重要性
当你的影视墙规则配置妥当后,你会发现 Jellyfin 等服务在几分钟内就能快速搜刮完毕,影视海报墙瞬间变得精美整齐。
然而,影视刮削需要频繁访问海外服务器的 HTTPS API。如果你的节点频繁超时,刮削任务就会在中途卡死,留下大量灰色的问号海报。
💡 影视刮削专用网络推荐
对于经常需要更新海量高清影片、需要大带宽和超高连通率的极客玩家,配置一个能够提供原生高速中转的订阅源是极佳的保障。
建议阅读本站的深度评测报告:《“饿饭CC云”怎么样?2026 最新饿饭CC云机场深度评测与 Sing-box 订阅配置指南》。该服务商在后台支持同时输出针对各类主流客户端的优质协议订阅,能确保您在各种复杂的网络封锁环境下依然保持全天候在线。
同时,我们强烈建议将大带宽直连放行给本地物理网络,以保证家庭内网的 4K 超清播放延迟控制在个位数毫秒内。
(相关资源导航:如果你需要采购高带宽、IP 干净的 VPS 搭建属于自己的刮削中转网关,欢迎访问我们的 《YGJC•BEST 极客精选资源导航》,快速获取 DMIT、搬瓦工、CloudCone 以及 RackNerd 等各大主机的最新折扣通道。)