V2EX 07月23日 09:32
[宽带症候群] QType 65 (HTTPS) 的封锁导致苹果设备 App 和网页访问异常缓慢
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章探讨了iOS/macOS系统广泛应用QUIC/H3协议及其对DNS查询(特别是QType 65)的影响。QUIC因其基于UDP的特性,难以被深度包检测,有时能绕过网络限制。然而,部分DNS过滤和代理软件对QType 65的处理不当,例如以SERVFAIL而非SOA/REFUSED响应,导致苹果系统无法正确回落至HTTP/1.1,进而引发应用龟速或错误。文章指出,激进的阻止策略,如DROP丢包,会造成应用卡顿,并提及某些公司为监控员工而一刀切阻止QUIC。此外,苹果自带的DoH以及“Limit IP Address Tracking”功能也可能间接影响网络体验。最后,文章提供了禁用浏览器QUIC的建议,并强调了QType 65只有在收到NOERROR/SOA响应时,苹果系统才能正确处理。

⚡️ QUIC/H3协议在iOS/macOS系统中的广泛应用:苹果系统已将QUIC(HTTP/3)集成到大部分组件,第三方App调用系统API时,在发起A/AAAA请求后会进一步发送QType 65(HTTPS DNS Lookup)请求,以尝试升级至H3连接。QUIC的无状态UDP特性使其难以被深度包检测,为用户提供了绕过网络限制的可能性。

⚠️ DNS处理不当引发兼容性问题:部分DNS过滤软件和代理软件在处理QType 65请求时存在兼容性问题,例如使用SERVFAIL而非苹果系统能正确识别的NOERROR或SOA响应。当苹果系统收到这些不兼容的响应时,未能正确回落至HTTP/1.1,导致App或网页访问出现龟速甚至错误,影响用户体验。

🚫 激进的网络策略加剧问题:一些网络环境采取激进的阻止策略,如直接丢弃QType 65请求,这会导致应用长时间等待无响应,最终超时回落。更糟的是,如果在H3升级请求队列中丢包,会使得网络体验非常卡顿。即使是SSR++等OpenWrt插件也采用DROP策略,对IM类App造成严重卡顿。

🌐 苹果自带DoH与IP地址跟踪的影响:苹果自带的DoH(DNS over HTTPS)在大陆未被封锁,但其线路速度可能影响整体网络体验。默认启用的“Limit IP Address Tracking”功能,在WiFi和蜂窝网络下可能导致出口IP变为Anycast最近的Akamai DNS,这可能与用户网络状况产生关联。

🔧 禁用QUIC以规避问题:对于桌面用户,可以通过禁用浏览器中的QUIC功能(例如在Chrome中通过`chrome://flags/#enable-quic`)来避免浏览器发起QType 65查询和H3升级尝试,从而规避相关兼容性问题。

iOS / macOS 已经将 H3 即 QUIC HTTPS 应用到基本上系统各个组件,而第三方 App 调用系统 API 时会在发起 A 或 AAAA 请求后再次发送一个 QType 65 请求,即 HTTPS DNS Lookup ,一般情况下 H3 需要从 http/1.1 或 H2 升级,而服务器是否允许升级除了 Header 外还可以通过 QType 65 查询的方式,因为 QUIC 流量本质是无状态的 UDP ,难以被深度包检测,所以有些用户使用干净的 DNS 访问 Facebook 的时候能够通过未被硬阻断 TCPMUX 的 H2 或 QUIC 的 H3 无墙访问,最近一年大陆已经不再劫持 QType 65 查询,但是很多 DNS 过滤软件和手机上复杂的 Rule-based 代理软件等各自处理 DNS 请求的方式和回应的方式均不一致,苹果在 DNS 服务器返回错误内容的时候也没有正确处理,这可能可以解释为什么有些人将 DNS 模式改为 Fake IP 后比一般模式下使用更快。

某些 DNS 过滤软件和代理软件在某些用户定义的规则下将 QType 65 请求阻止,而且阻止的方式不是通过 SOA 或者 REFUSED ,而是 SERVFAIL ,问题就出在这里,苹果只认 QType 65 回复 NOERROR 或者 SOA ,其它情况下如 QType 65 超时,REFUSED 或者 SERVFAIL ,很多情况下不会回落到 http/1.1 ,这就会导致某些情况下 App 或者访问的网页龟速,甚至直接出错,这种激进或头脑简单的策略并不能防止中间人,某些公司网络内为了监控员工行为会一刀切阻止 QUIC ,更有甚者直接拦截 QType 65 ,这会导致很多本来没有被阻止的 App 或网站访问异常缓慢,因为应用始终在等待服务器回应,而策略一般是丢包,回应根本不存在,最后只会超时被迫回落,这是最好的情况,最差的情况是很多 assets 在正在尝试升级 H3 的请求队列之后,这会导致网络看上去非常卡。

包括 SSR++ 在内的 OpenWrt 插件也仍然在采用简单粗暴的 DROP ,这会导致客户端超时响应,在很多情况下尤其是 IM 类 App 内卡顿严重。

https://github.com/fw876/helloworld/blob/8ab6c0141bcb9abe757e6327157e9057389b642d/luci-app-ssr-plus/root/usr/bin/ssr-rules#L241

有些苹果用户也许没有注意到这个现象,这是因为苹果有个自带的 DoH ,这个 DoH 在大陆没有被封,有时候这个 DoH 线路龟速会引起其它问题,它在 WiFi 和蜂窝网络中的设置叫做 Limit IP Address Tracking ,这个选项是默认启用的,如果能够连上你的出口会变成 Anycast 最近的 Akamai 出口的 DNS ,对于广移来说是香港,不知道是否 Apple 全权控制。

对于桌面用户,可以前往如 chrome://flags/#enable-quic 禁用 QUIC 则可以避免浏览器发起 QType 65 查询然后尝试升级 H3 。

开启 QUIC 的应用会发出 QType 65 请求



只有回复 NOERROR / SOA 苹果才能正确处理





大陆不再劫持 QType 65



向伊朗不存在的 DNS 服务器发起 QType 65 查询反而被 GFW 注入返回了 A 记录

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

QUIC HTTP/3 DNS QType 65 网络兼容性
相关文章