常见问题排查

遇到打不开、播不了或生成失败时,按现象找到原因与处理办法。

管理面板的诊断页,显示访问服务器检测、Plex 网络设置、Plex 中转与日志
管理面板,数据为示例

13.1管理面板打不开

点「Cirvel」后弹出上游地址的说明
反向代理或内网穿透的上游填了 127.0.0.1 或 localhost,改成主机的局域网地址,例如 http://192.168.1.10:32400。
提示当前账号不是这台服务器的管理员
管理面板只对服务器所有者开放,换用服务器所有者的 Plex 账号登录。还没认领的服务器打开面板会直接显示「认领这台 Plex 服务器」,按「部署」一章的「全新部署时认领服务器」认领即可。
提示服务器与 Plex 账号的关联已经失效
例如在 plex.tv 退出了所有设备。点「重新认领」,填上认领码,再用服务器所有者的 Plex 账号认领即可恢复。重新认领无论从哪里打开都需要认领码,它在哪里见「部署」一章的「全新部署时认领服务器」。
登录页提示这台 Plex 服务器暂时连不上 plex.tv
服务器连不上 plex.tv 时无法确认登录的账号。连上后页面会自动进入,也可以点「重试」。全新部署的服务器或容器至少要能连上 plex.tv 一次,需要代理时见「部署」一章的「访问外网的代理」。
提示后台服务未运行
刚重启容器时稍等片刻,长时间没有恢复请在「诊断」页查看日志。

13.2STRM 放不出来

通过域名访问时不直连
检查反向代理的上游,见上一条。
在外播放一直转圈,客户端拿到的是内网地址
请求没有经过 Cirvel,Plex 把 STRM 里的地址直接交给了客户端,在外访问不到。检查最后把请求交给 Plex 的那一层,反向代理的上游或 frpc 的 localIP 要填主机的局域网地址,不能是 127.0.0.1 或 localhost,详见「部署」一章的「反向代理与内网穿透」。
只有在外放不了,Cirvel 的其它能力也不生效
客户端可能经 Plex 中转连接。在「诊断」页查看「Plex 中转」,在自定义服务器访问 URL 里填好反向代理域名后关闭中转,见「部署」一章的「反向代理与内网穿透」。
浏览器里的 Plex Web 报错或提示安装扩展
片源是 HDR、杜比视界或 MKV 时,安装 ShimWeave,或在「播放」页把 Plex Web 勾进「局域网交给 Plex 播放」。
电视或手机报错
设备解不了片源编码,换用能解码的客户端,例如 Infuse,或在家里打开「局域网交给 Plex 播放」。新版 Plex for Android 在这种情况下只会提示 Something went wrong。
个别 STRM 服务始终播不了
这类服务需要由客户端直接访问,在「播放」页打开「STRM 兼容模式」。
STRM 服务经公网地址访问后跳到局域网地址,播放被拒绝
Cirvel 为保护局域网不放行这一跳,日志里这一行下面会注明原因。把 STRM 里的服务地址改成它的局域网地址,或在路由器上让这个域名在局域网里解析到内网地址。
链接很长的 STRM 播不了
超过「STRM 地址长度上限」的条目按不可用处理,带有长签名参数的 CDN 地址可能超出。在「诊断」页展开「高级」调高这一项。

Plex 手机客户端播放途中在 Wi-Fi 与移动网络之间切换,可能一直转圈。这是客户端自身的行为,停止后重新播放即可恢复。

13.3安卓电视播到某几集停在开头或自动跳集

安卓电视上的 Plex 客户端默认开着「直通」,把杜比音频(EAC3、TrueHD)原样交给电视或功放。电视声明能接收、实际播不了时,音轨是这类格式的剧集会停在开头几秒,开着自动播放时接连跳到下一集。同一部剧前几集正常、从某一集起不行,多半是从那一集起换了音轨格式。

  1. 1在电视上的 Plex 里,从左侧栏的头像打开「设置」,进入「视频与音频」。
  2. 2选中最下面的「直通」,默认是 HDMI。
  3. 3改成「停用」,回到剧集重新播放。
安卓电视上 Plex 的视频与音频设置,最下面是直通
直通改为停用

停用之后,电视自己能解码的照常播放。解不了的,Cirvel 换成同一个文件里电视能播的音轨,例如 AAC,没有这样的音轨时在家里交给 Plex 转换。

接了支持杜比音频的功放或回音壁、播放一直正常的,保持 HDMI 即可。手机上的 Plex 没有这一项,也不需要设置。

13.4plex.direct 解析不出来

Plex 在局域网里优先让客户端用形如 https://192-168-1-10.<一串字符>.plex.direct:32400 的加密地址连接服务器。路由器的 DNS 重绑定保护、DNS 过滤规则与代理软件的 fake-ip 常常让这个名字解析不出来或指错,客户端要等它超时才换用别的连接,表现为局域网里 Plex Web 换页转圈、客户端打开慢,「诊断」页「从这台设备访问服务器」的局域网加密连接显示连不上或较慢。

在路由器的 DNS 设置、DNS 过滤规则与代理软件的分流和 fake-ip 过滤里放行 plex.direct,代理软件里一般写作 +.plex.direct。改完在这台设备上用 nslookup 核对。检测结果的排查说明里有这台服务器的完整名字,可以直接复制。

终端
nslookup 192-168-1-10.<一串字符>.plex.direct
nslookup 192-168-1-10.<一串字符>.plex.direct 223.5.5.5
得到服务器的局域网地址
例如 192.168.1.10,说明解析正常。请确认这台设备与服务器在同一个局域网,中间没有访客网络隔离或防火墙。
得到 198.18 或 28 开头的地址
代理软件的 fake-ip 接管了解析,把 plex.direct 加进 fake-ip 过滤。
第一条没有结果,第二条能得到局域网地址
本地 DNS 丢弃了指向局域网的应答,在路由器里关掉 DNS 重绑定保护,或为 plex.direct 设例外。

13.5局域网里的设备被当成外网

在家播放却按外网的画质与带宽限制,多半是 Plex 没有把这台设备的地址算作局域网,容器用 bridge 网络时最常见。「诊断」页「从这台设备访问服务器」下面会提示「Plex 把局域网里的设备当成了外网」,并给出要加的网段。

在 Plex 设置的「网络」里把这个网段加进「局域网络」,已有内容时用逗号隔开追加。提示说这个地址是反向代理时先不要加,原因与做法见「开始使用」一章的「检查网络连接」。

13.6设备连不上 plex.tv

Plex Web 在显示内容之前要先等 plex.tv 返回账号与服务器列表,plex.tv 慢或连不上时页面会转圈很久,或者显示离线。「诊断」页「从这台设备访问服务器」的访问 plex.tv 会显示较慢或连不上。

经这台服务器打开的 Plex Web
打开「播放」页的「加速 Plex Web 连接 plex.tv」,默认已经打开。检测结果里也有就地打开的按钮,下次打开 Plex Web 时生效。
已经打开仍连不上
说明是这台设备自己连不上 plex.tv。这台设备上的 Plex 客户端要能访问 plex.tv 才能登录和找到服务器,请在系统或路由器的代理里为 plex.tv 设置可用的线路。

安卓上已经登录过的 Plex 客户端在 plex.tv 连不上时会用保存在设备上的服务器列表,内容照常加载。不要为此清除 App 数据或重装,重新登录必须连上 plex.tv。

13.7安卓客户端显示离线模式

安卓上的 Plex 客户端启动时用一个联网检测判断自己是否在线,这个检测访问的是 clients3.google.com/generate_204,而不是 plex.tv。所在网络访问不到它时,App 就显示「离线模式」,即使服务器与 plex.tv 都能连上。这个检测由 App 直接发出,不经过服务器,Cirvel 无法代为处理。

  • 在代理软件里让 clients3.google.com 走一条稳定的线路。
  • 或者在代理软件里用重写规则让它直接返回 204。
  • iPhone 上偶尔出现离线模式时,处理办法相同。

不要为此清除 App 数据或重装。重新登录必须连上 plex.tv,清除之后设备上保存的服务器列表也没了。

13.8STRM 分析失败或远端访问已暂停

在「STRM 分析」页点「查看失败」,每一条失败都写着原因与处理办法,处理后点「重新分析」。失败原因是「远端暂时拒绝访问」的,是网盘暂时限流或拒绝了请求,Cirvel 会自动重试,通常不需要处理,同一来源连续被拒时才会暂停后台访问。

页面显示「远端访问已暂停」,说明某个 STRM 来源连续拒绝访问,后台分析暂停到页面上显示的时间,之后先试探一次再恢复,播放不受影响。经常触发时,调低「后台每小时请求上限」,或把「熔断灵敏度」改成「标准」或「保守」。

暂停提示写着请求经过代理
多半是分流规则把网盘送去了别的线路,网盘不认新的出口。在代理里把网盘设为直连,或与 STRM 服务走同一条线路,见「部署」一章的「访问外网的代理」。
想清除分析结果
不要删除 /config/cirvel 文件夹,这样清不掉分析结果,还会丢失设置。失败的条目按提示处理后点「重新分析」即可。
连不上远端,后台分析已暂停
同一个 STRM 来源连续几个条目都连不上。提示里写着断在 STRM 里的地址还是它跳转到的网盘地址,以及是否经过代理。经过代理时确认代理能访问这个地址,或在分流规则里设为直连。改了代理设置并重建容器后,暂停立即解除。

13.9片头片尾没有生成

条目详情提示需要打开生成开关
Plex 的「生成片头标记」与「生成片尾标记」都是「从不」,在 Plex 设置或「维护」页「Plex 的任务」里打开其中一项。
只有 STRM 的集一直没有标记
自动生成默认不读 STRM,在「片头片尾」页设置里打开「为 STRM 生成片头标记」或「为 STRM 生成片尾标记」,或在条目详情里点「立即生成」。
页面显示已达上限
过去 24 小时的读取量到了 STRM 每日上限,稍后自动继续,也可以在设置里调高上限。
片尾模型不完整
Plex 的片尾模型下载不完整,看画面找片尾会一直失败。点「修复模型」,修好后对失败的条目重新生成。
缺少自带的 FFmpeg
多半是只更新了程序、没有更新镜像。重新拉取 tidewren/cirvel 镜像并重建容器后恢复,已有的结果不受影响。
片尾一直没有生成
Plex 设置里的「标记来源」是「仅云端」时,按 Plex 的原意不在本机分析片尾,只用云端已有的片尾和同一集其他版本已有的片尾,STRM 的云端片尾同样由 Cirvel 去查,STRM 的读取开关不起作用。想让 Cirvel 生成,把它改为「任意」或「仅本地」,或在条目详情里点「立即生成」。

单个条目生成失败时,原因与处理办法见「片头片尾」一章的「看懂片头片尾页与失败原因」。

13.10新文件不自动入库

新文件进不了 Plex 时,管理面板的「概览」页会说明原因,条件不再成立时提示自动消失。

外部工具让 Plex 扫描的文件夹不在任何媒体库里
Plex 不会扫描它。提示给出这个文件夹与最接近的媒体库文件夹,确认工具里的路径和 Plex 看到的是否一致,或者在 Plex 里把这个文件夹加进媒体库。
外部工具让 Plex 在另一个媒体库里扫描这个文件夹
工具里设置的媒体库与文件夹所属的媒体库不同,Plex 同样不会扫描它。确认工具里设置的媒体库,或者文件是否整理到了正确的文件夹。
Plex 的自动扫描关着
新文件要等定期扫描才入库,定期扫描也关着时不会入库。
Plex 的局部扫描关着
每次有文件变化 Plex 都扫描整个媒体库,新文件入库会变慢。
定期扫描关着,网盘上新加的文件不会入库
有媒体库文件夹在网络共享或网盘挂载上,Plex 收不到这些位置的文件变化,需要定期扫描兜底。

后三条提示里有「打开自动扫描」「打开局部扫描」或「打开定期扫描」,点一下就打开 Plex 里对应的设置,定期扫描按每天一次打开。提示一次显示一条。扫描开关可能是你有意关掉的,每条提示都可以点「不再提示」,在这个浏览器里不再显示,随后轮到下一条。

全新安装、还没有建媒体库的 Plex,由 Cirvel 打开自动扫描、局部扫描与每天一次的定期扫描。之后怎么设由你在 Plex 里决定,Cirvel 不再改动。

Plex 的「自动扫描我的资料库」靠系统通知发现新文件,要为媒体库里的每个目录各占一个监听名额。名额由宿主机的系统设置决定,与 Cirvel 的版本无关。STRM 数量很大时,目录数可能超过名额,超出的目录收不到通知,新文件只能等「定期扫描我的资料库」或维护时段的整库扫描才入库,看起来就像增量扫描变成了定时扫描。

名额不够时,「概览」页会显示「Plex 的文件监听名额不够」,写着有多少个文件夹没能加入监听,并给出下面的命令。也可以按下面的步骤自己检查。

  1. 1在宿主机上查看当前名额,数字明显少于媒体库的目录数时就可能不够。
  2. 2在 Plex 的日志目录统计监听失败的次数,大于 0 说明名额已经用完。
  3. 3在宿主机上调大名额,并写进 /etc/sysctl.conf 让重启后仍然有效。部分 NAS 系统重启后会还原这个文件,需要用系统自带的开机任务再执行一次。
  4. 4重启 Cirvel 容器,让 Plex 重新为全部目录加上监听,再统计一次日志确认没有新的失败。
宿主机
cat /proc/sys/fs/inotify/max_user_watches
sysctl -w fs.inotify.max_user_watches=1048576
echo 'fs.inotify.max_user_watches=1048576' >> /etc/sysctl.conf
Plex 日志目录
grep -c "Failed to add watch" "Plex Media Server"*.log

调大名额只在真正用到时占用内存,每个目录约 1KB,20 万个目录约 200MB。命令要在宿主机上执行,在容器里改不了这个设置。

名额足够之后,只想要增量扫描时按下面设置。

打开
Plex 设置「资料库」里的「自动扫描我的资料库」与「当检测到更改时,启动局部扫描」。
关闭
同一页的「定期扫描我的资料库」。
关闭
维护时段里的「维护期间刷新所有库中内容」,在 Plex 设置的「计划任务」或「维护」页的「Plex 的任务」里都可以关,两边是同一个设置。

两个定时扫描都关闭之后,收不到通知的目录只能手动扫描才会更新。名额不够,或者媒体目录是从其他机器挂载过来的网络共享与网盘时,在其他机器上新增的文件不会产生通知,这两种情况建议保留「定期扫描我的资料库」,把间隔设长一些作为兜底。STRM 直接写在 Plex 所在的主机上,或者通过这台主机的共享文件夹写入,都能正常收到通知。

13.11网盘要经代理才能访问

分析 STRM、生成片头片尾与进度条预览,以及局域网交给 Plex 转换时,读网盘的是内置的 FFmpeg。它只认小写的 http_proxy,不读大写的 HTTP_PROXY 与 HTTPS_PROXY。网盘只有经代理才能访问时,在大写的代理变量之外再设置小写的 http_proxy,https 地址的网盘同样用它,重建容器后生效。

compose.yaml
    environment:
      - HTTP_PROXY=http://192.168.1.2:7890
      - HTTPS_PROXY=http://192.168.1.2:7890
      - http_proxy=http://192.168.1.2:7890

能直连的网盘不必设置这一项,直连通常更快,也更不容易触发风控。设了以后,本机与 STRM 所在的局域网主机仍然直连。

13.12许可连不上或 Pro 即将失效

Pro 需要定期连接许可服务续期。连续连不上时,「许可」页会提示 Pro 将在什么时候失效,播放不受影响。失效后暂时回到免费版,恢复连接后自动恢复 Pro,已分析的媒体信息与 Pro 设置都会保留。

  1. 1在「诊断」页的「网络连接」查看许可服务与 plex.tv 是否可访问。
  2. 2连不上时通常是容器访问不了外网,可以为容器设置 HTTP_PROXY 与 HTTPS_PROXY,重建容器后生效,写法见「部署」一章的「访问外网的代理」。
  3. 3设置了代理仍提示经代理连不上许可服务时,先确认代理本身可用,再在代理的分流规则里把 tidewren.com 设为直连。
  4. 4提示 Plex 服务器的登录已失效时,例如在 plex.tv 退出了所有设备,请在 Plex Web 的设置里重新登录或认领服务器。

13.13面板顶部的 Plex 提示

Plex 的安全连接设为了「必须」
Plex 只接受加密的连接,有设备因此连不上时,点「改回首选」,或在 Plex 设置的「网络」里修改。
Plex 数据库结构与 Cirvel 不兼容
Cirvel 已停止写入,避免写坏数据。请反馈问题,步骤见「收集日志并反馈」,在 Cirvel 适配之前不要自行更换 Plex 版本。
Plex 服务器暂时不可用
Plex 可能正在启动或重启,恢复后面板会自动重新读取。
Plex 没有登录 plex.tv
Plex 启动时登录 plex.tv 失败,客户端会显示服务器未认领。Cirvel 先自动重启一次 Plex,仍未恢复时点「恢复」。反复出现时检查服务器能否访问 plex.tv 以及代理设置。

13.14收集日志并反馈

  1. 1在「诊断」页的「日志」里,给 Cirvel 或 Plex 一侧选一个比当前更高的级别,旁边会出现恢复时间的选项,例如「30 分钟后恢复」,再点「应用」,然后重现问题。
  2. 2点「下载」,得到 Cirvel 与 Plex 两侧的日志。
  3. 3到 Cirvel-Feedback 仓库提交 issue,描述现象,不要贴日志。
  4. 4把下载的日志发邮件到 support@tidewren.com,邮件里注明 issue 编号。

下载的日志已去掉令牌与签名参数,但仍可能含媒体路径与客户端地址,所以只发到邮箱,不要贴进公开的 issue。

点「查看」可以直接在面板里看最近的日志,按级别与关键字筛选,打开「跟随新日志」可以看到新写入的内容。认得出原因的行下面会附上说明与处理办法,例如 STRM 被拒绝跳到局域网地址时该怎么改。

「调试」与「详细」级别的日志量很大,只在排查问题时打开。