【问题反馈 / 求官方排查】飞牛影视与飞牛手机 App 外网播放疑似走 HTTP 中转,实际外发被锁在约 500 KB/s;但 AList WebDAV 与 FTP 正常
说明:本文已做隐私脱敏处理,隐藏了我的公网 域名、内外网 IP、账号、设备名等信息。如官方需要,我可以私信补充未脱敏日志和更多现场信息。
一、我的环境
- 一台飞牛 NAS,已开启外网访问 公网IP DDNS解析 +SSL证书
AList 安装在 NAS 上,监听端口 5244
CloudDrive2(以下简称 CD2)把 AList WebDAV 挂载到 NAS 本地目录
- 飞牛影视把这个挂载目录加入媒体库
- 相关入口大致如下:
AList WebDAV:外网 域名A:5244
- 飞牛门户 HTTPS:
外网 域名A:5667
- 飞牛影视服务:
外网 域名A:8005
媒体库的实际读取路径类似这样:
/vol1/1000/FN-video/other/CloudDrive/media/ali/...
这条路径就是我通过 CD2 挂到 NAS 本地后,再由飞牛影视加入媒体库的目录。
二、问题现象
我遇到的是一个很割裂的现象:
现象 1:AList WebDAV 外网直挂,播放正常
- 我把
AList WebDAV 直接挂到外网客户端(例如INFUSE播放器)
- 播放阿里云盘视频时,基本没有卡顿
- 速度明显不止
500 KB/s
现象 2:同样的资源,一旦经过飞牛影视,对外播放就很慢
- 无论是第三方客户端(如 Infuse 一类),还是飞牛手机 App / 飞牛影视 App
- 只要走飞牛影视这条链路,外网播放就容易卡
- NAS 监控面板里,外网上传常常锁在大约
500 KB/s
现象 3:这不只是云盘资源慢,本地视频也慢
- 我后续做了对照
- 不仅是阿里云盘资源慢
- 连 NAS 本地磁盘上的视频,只要通过飞牛影视给外网客户端播放,也会慢
这说明问题不只是阿里云盘 / AList / CD2,而更像是飞牛影视对外出流这层出了问题。
三、论坛里我看到的相关线索
我在论坛还看到一个讨论点:
- 有网友反馈:走
WebDAV 外网下载 / 播放时,速度大约只有 500 多 KB/s
- 但走
FTP 下载时速度正常
- 官方回复了一句:飞牛手机端 App 底层走的是
http 协议
这条线索和我现场现象非常接近:
FTP 正常
AList WebDAV 直挂正常
- 但是飞牛 App / 飞牛影视这条对外播放链路不正常
所以我怀疑问题可能集中在:
- 飞牛 App / 飞牛影视对外播放使用的
HTTP 媒体链路
- 该链路是否采用了服务端中转 / HLS / m3u8 / 自有媒体接口
- 该链路是否存在外网条件下的限速、回源、缓冲或协议实现问题
四、我这边已经做过的排查(有日志证据)
下面这些不是猜测,是我在 NAS 上实际抓到的证据。
1)端口归属已经确认
我在 NAS 上查看监听端口,确认到:
5244 对应的是 alist
8005 对应的是 trim-media
5667 对应的是 nginx
也就是说:
AList 是一条独立服务链路
- 飞牛影视的服务本体是
trim-media:8005
5667 更像飞牛外网网关 / HTTPS 入口
2)5667/v 和 8005/v 指向的是同一套飞牛影视前端
我对比过:
https://外网 域名A:5667/v
http://外网 域名A:8005/v
返回的是同一套飞牛影视页面内容。
这说明 5667/v 很可能只是 HTTPS 网关入口,后面真正工作的还是 8005 上的 trim-media。
3)飞牛影视实际在 NAS 本地读文件,而不是把客户端直接甩到云盘直链
我在 trim-media 的日志里抓到了明确的播放痕迹,出现了类似这样的记录:
=== range path /vol1/1000/FN-video/other/CloudDrive/media/ali/.../某视频.mkv start ... end ... fileSize ...
也抓到过类似下面这种路径:
/vol02/.../dav/ali/.../某视频.mp4
这说明飞牛影视播放时,服务端确实在对 NAS 本地挂载目录做 Range 读取。
换句话说:
对外播放时,飞牛影视并没有把客户端直接导向阿里云盘或对象存储直链,而是自己在 NAS 上打开文件、分段读取、再往外发。
4)飞牛影视日志里出现了它自己的播放链接,而不是存储直链
我抓到过类似这样的日志字段:
PlayLink="/v/media/xxxxxxxxxxxxxxxx/preset.m3u8"
WithoutStream:false
这里至少能说明两件事:
- 播放链接看起来是飞牛影视自己的媒体接口:
/v/media/.../preset.m3u8
WithoutStream:false 看起来不像“直接把原文件链接甩给客户端”
我还直接请求过这个播放链接(已脱敏),返回类似:
{"msg":"Auth Failed","code":-2,"data":null}
这进一步说明:
- 这个链接是飞牛影视自己的受控媒体接口
- 它不是一个“**直链”
5)播放当时的活动连接也能对上
我在实际播放过程中抓到过类似下面的活动连接(已脱敏):
[::ffff:192.168.x.x]:8005 -> [::ffff:外网IP]:端口 users:(("trim-media",...))
192.168.x.x:本地端口 -> 192.168.x.x:5244 users:(("rclone",...))
192.168.x.x:本地端口 -> 192.168.x.x:5244 users:(("clouddrive",...))
[::ffff:192.168.x.x]:5244 -> [::ffff:192.168.x.x]:本地端口 users:(("alist",...))
这意味着当时的真实链路非常像:
外网客户端
-> 飞牛影视 trim-media:8005
-> NAS 本地挂载目录
-> CD2 / rclone / AList WebDAV
-> 云盘
也就是说:
CD2 / AList 负责把源数据拉到 NAS 这一层
trim-media 再负责把内容从 NAS 往外发给客户端
6)播放卡顿时,我还抓到过 trim-media 的写出错日志
例如类似:
failed to copy file to response: write tcp 192.168.x.x:8005->外网IP:端口: write: broken pipe
这类日志至少说明:
- 对外发流的主体就是
trim-media
- 它确实在向外部客户端写数据
- 问题发生在“飞牛影视 -> 外网客户端”这一段时,很值得官方重点看
五、为什么我现在怀疑是“飞牛对外播放链路”的问题,而不是 AList / CD2 / 云盘本身
因为现象已经能拼起来了:
AList / CD2 / 云盘侧
AList WebDAV 外网直挂正常
CD2 后台在播放时能看到任务,而且速度不限速
这说明:
源站到 NAS 这段,大概率没问题。
飞牛影视对外这段
- 实际外网播放卡顿
- NAS 监控外发锁在约
500 KB/s
trim-media 日志显示它自己在做 Range 读和对外写
这说明:
真正慢的是“飞牛影视 / 飞牛 App 对外发流”这段。
本地视频也慢
这一点尤其关键。
如果只是阿里云盘 / WebDAV / CD2 的问题,那么本地视频不该同样慢。
但我实际测试下来,本地视频只要经过飞牛影视对外播放,也慢。
所以根因不能只盯云盘,必须看飞牛影视自己的外网媒体链路。
六、我目前的判断(供官方参考)
我现在比较怀疑下面几个方向:
方向 1:飞牛影视 / 飞牛 App 的外网播放本质上是服务端中转
也就是:
- 不是把客户端导向存储直链
- 而是
trim-media 在 NAS 本机读文件,再通过 HTTP / m3u8 / 自有媒体接口向外发
如果是这样,那么 NAS 自己的外网出流能力 / 这条 HTTP 链路实现,就会直接决定最终速度。
方向 2:该 HTTP 媒体链路在某些外网场景下存在异常限速 / 缓冲 / 长连接问题
因为论坛里也有人提到:
WebDAV 大约 500 多 KB/s
FTP 正常
- 官方说 App 底层走
http
所以我怀疑:
- 飞牛对外媒体分发走的 HTTP 链路
- 在某些网络环境下,可能确实会被锁在大约
500 KB/s 左右
方向 3:5667/v 到 8005 这一层网关 / 协议实现也值得排查
因为:
5667 是 nginx
8005 是 trim-media
- 两者前端页面一致
所以建议官方确认:
- 是否存在
5667 -> 8005 的代理层行为
- 是否存在
HLS / m3u8、Range、分块写出、连接复用、缓存策略等方面的问题
七、我希望官方能帮忙确认的几个点
- 飞牛手机 App / 飞牛影视 App / 第三方客户端接入飞牛影视时,实际走的是否都是同一套 HTTP 媒体接口?
- 这个接口是否一定由
trim-media 服务端中转,而不是直链下发?
PlayLink=/v/media/.../preset.m3u8 这类播放地址,是否意味着当前一定是流式中转而不是直链?
- 是否存在已知问题:外网场景下 HTTP 媒体出流被锁在约
500 KB/s 左右?
- 是否有开关能让飞牛影视在可行时优先下发更直接的媒体链接,而不是始终由服务端代理?
- 本地视频也慢的情况下,官方是否能确认瓶颈已经落在飞牛影视对外出流层,而不是网盘挂载层?
八、我能继续提供的材料
如果官方愿意跟进,我可以继续提供:
- 未脱敏的完整日志
- 播放时的活动连接截图 / 文本
- NAS 监控面板截图
AList、CD2、飞牛影视三者同时播放时的对照现象
- 同一文件在不同链路下的对照结果:
AList WebDAV 直挂
- 飞牛影视外网播放
- 本地视频外网播放
九、总结
我这边目前最核心的结论只有一句话:
云盘到 NAS 这段并不慢,真正慢的是飞牛影视 / 飞牛 App 对外播放这段。
更具体一点就是:
CD2 拉源可以很快
AList WebDAV 直挂也可以很快
- 但只要进入飞牛影视 / 飞牛 App 的外网播放链路,NAS 对外上传就容易锁在约
500 KB/s
而且这个问题已经不只是云盘资源,连本地视频都能复现。
所以非常希望官方能按“飞牛对外 HTTP 媒体链路 / trim-media 出流”这个方向认真排查一下。谢谢。