系统版本:X86
设备环境:物理机、局域网/公网/反代/域名,手机系统/APP版本号:IOS26、1.27.9 安卓TVAPP版本号:1.2.3
BUG现象:飞牛全端所有的APP都不支持IPV6的重定向。
我的飞牛主要通过域名访问,在外访问这个域名时会反代会代理访问飞牛,在家访问时反代服务会发包括真实服务的内网IP和端口的307重定向,在有一次我把重定向的内网IP设置IPV6地址时,发现了手机APP登录时会直提示服务器拒绝访问,不会跟随反代的307响应进行跳转。
发现现象后,我这进行了全方位测试,通过测试发现反代服务返回的重定向地址为IPV4,则飞牛APP会自动跟随跳转,重定向地址为IPV6则会认为连接地址无效。而重定向地址为域名的情况下又有两种情况,若域名的DNS只有AAAA的IPV6记录,飞牛APP同样会认为连接地址无效,若域名有AAAA和A记录,则飞牛APP只会使用A记录的IPV4地址进行连接,不理会AAAA记录。
之后我再对影视功能进行了全方位的重定向测试,测试了网页端、IOS飞牛APP手机端、IOS飞牛影视APP端、安卓TV端。测试方法为将STRM文件里的播放地址域名指向反代,再通过飞牛播放这个STRM文件,测试是否可以正常播放,结果只有网页端表现正常。
当反代服务将播放域名重定向到openlist的V4地址时,所有端都能正常播放,重定向到openlist的IPV6地址时,除网页端外的其他端均无法播放视频。当反代服务重定向到另一个域名时,若这个域名的DNS有包含openlist的V4地址的A记录,则可以正常播放,若只有指向openlist的IPV6地址的AAAA记录,则无法播放。
以上所有测试的设备都是在有公网、本地IPV6地址且IPV6正常可用的情况下进行的,302重定向也同样测试过,情况也是一样的。我这推测应该是飞牛APP用的http库本身或库的参数配置的有问题导致的BUG。
出现频率:必现