QUIC 与 HTTP/3 被拦截:网页转圈、协议报错和怎么退回 HTTP/2
很多站点已经用 HTTP/3 传输,底层是 QUIC,跑在 UDP 的 443 端口上。国内部分网络会丢掉或干扰这段 UDP,于是 Chrome 或 Edge 里出现 ERR_QUIC_PROTOCOL_ERROR,页面一直转圈。Firefox 若还在用 HTTP/2,同一个地址却能打开。视频站尤其明显:网页骨架出来了,播放器不走。
浏览器本应在 QUIC 失败后退回 HTTP/2。退回被中间设备搞坏时,连接会卡死而不是自动降级。另一类情况是你开了系统代理:代理主要接管 TCP,QUIC 的 UDP 绕过代理直接出去,撞上拦截,看起来像「开了代理反而打不开」。下面按怎么确认、怎么退回、线路该用哪种模式讲。
协议失败长什么样
先确认再改设置。打开开发者工具的网络面板,看失败请求的协议列。全是 h3 且状态失败,同时换 Firefox 能开,就可以按 QUIC 被拦处理,而不是先重装浏览器。
| 对比项 | QUIC / HTTP/3 | HTTP/2 |
|---|---|---|
| 传输 | UDP 443 | TCP 443 |
| 浏览器显示 | 开发者工具协议列多为 h3 | 协议列多为 h2 |
| 典型报错 | ERR_QUIC_PROTOCOL_ERROR | 连接重置或超时,文案不同 |
| 谁先用 | Chrome、Edge 对大站往往先试 | Firefox 默认可先走这条 |
| 被拦时 | 可能不退回,页面挂起 | 只要 TCP 通就能开 |
| 和代理 | 系统代理经常盖不住 UDP | 系统代理可以接管 |
| 和线路模式 | 需要隧道把 UDP 装进去 | 系统代理或隧道都能走 |
从转圈到能打开:分步操作
- 第一步:先把线路准备好,连上刺猬VPN。安装客户端后自定义用户名和密码即可完成匿名注册,不需要邮箱、也不需要手机号,免费节点永久免费、不限流量、不限速,注册即用;全程 HTTPS+AES 加密传输。需要让 UDP 也进隧道时用全局模式,不要只挂系统代理。
- 第二步:在 Chrome 地址栏打开开发者工具,切到网络,勾选保留日志,刷新失败的页面。看协议列是 h3 还是 h2,把报错原文记下来。
- 第三步:若确认是 QUIC,在 Chrome 地址栏输入 chrome://flags,搜索 QUIC,把 Experimental QUIC protocol 设为 Disabled,底部提示重启浏览器。Edge 把地址换成 edge://flags,同样搜索 QUIC 后关闭。
- 第四步:Firefox 在地址栏输入 about:config,接受风险提示,搜索 network.http.http3.enabled,设为 false。改完新开窗口再试,旧窗口可能还留着上一轮连接。
- 第五步:临时测试可以用启动参数。Chrome 快捷方式目标后加空格和 --disable-quic,只用于确认问题,确认后仍建议在 flags 里关,避免快捷方式丢失。
- 第六步:若关了 QUIC 仍然打不开,就不是 HTTP/3 这一层了。再看是不是证书、域名解析或 TCP 本身被重置。不要同时改三处,否则不知道是哪一下生效。
- 第七步:线路侧改成全局或隧道,让 UDP 443 不再绕过。改完用原先失败的 Chrome 配置再测一次;若此时开着 QUIC 也能播,说明之前是 UDP 漏出本地网络。
- 第八步:路由器或公司防火墙若整段丢掉 UDP,浏览器退回 HTTP/2 是更稳的日常设置。家宽只是偶发时,可以保留 QUIC,用隧道把它带出去。
按现象排查:协议、代理和分片
同一台电脑上两种浏览器结果相反,优先怀疑协议,而不是账号。
- 只有 Chrome 失败、Firefox 正常:Chrome 在用 HTTP/3。按上面的 flags 关闭 QUIC,重启后再看协议列是否变成 h2。
- 报 ERR_QUIC_PROTOCOL_ERROR:QUIC 握手或包被丢。先关 QUIC;若必须用 HTTP/3,改隧道模式再打开。
- 开了系统代理后视频站更差:UDP 没进代理,QUIC 走了本地出口。改全局模式,或直接禁用 QUIC。
- 页面能开、播放器转圈:播放域名单独走了 HTTP/3。在网络面板里点开媒体请求看协议,不要只看网页文档那一条。
- 关掉 QUIC 后变成连接重置:TCP 这条也不通,问题已经超出 HTTP/3。保持 QUIC 关闭,改查重置和证书。
- 时好时坏、晚上更明显:路径上有人按包长丢掉 UDP。可同时检查隧道的最大传输单元,分片异常时 QUIC 会卡在握手。
- 手机浏览器正常、电脑不行:手机应用可能没用 QUIC,或手机走了另一条线路。不要用手机结果否定电脑上的协议列。
- 公司网络所有 UDP 都不通:禁用 QUIC 让浏览退回 TCP。语音和游戏仍要 UDP 的,另看防火墙是否放行,不在浏览器开关里解决。
三种处理哪个合适
禁用 QUIC 不是把网速锁死,只是让浏览器走 TCP 上的 HTTP/2。刺猬VPN自身不对账号设速率上限,页面快慢仍取决于线路和网站。实际可用性取决于当前网络环境。
| 对比项 | 浏览器禁用 QUIC | 隧道带走 UDP | 只开系统代理 |
|---|---|---|---|
| 网页 | 退回 HTTP/2,一般能开 | HTTP/3 也可能可用 | QUIC 仍可能漏出 |
| 操作位置 | flags 或 about:config | 客户端连接模式 | 系统代理端口 |
| 视频站 | 通常恢复播放 | 视 UDP 是否真的进隧道 | 播放器仍可能转圈 |
| 性能取舍 | 少一条 UDP 路径 | 少一次本地丢包 | 看起来开了代理却没盖住 |
| 适合 | 公司网封 UDP | 家宽偶发干扰 | 只访问纯 TCP 的站 |
| 会员与免费 | 与哪一档无关 | 时长套餐期间不限流量、不限速 | 免费节点同样不限流量、不限速 |
和解析、包长问题怎么分工
协议退回之后如果域名根本解析不到,那是另一层。加密解析怎么开、系统解析怎么被换掉,见 DoH 与 DoT 怎么配。握手能开始但稍大的包就停,更像路径上的分片问题,见 MTU 怎么改。
先做一次对照:禁用 QUIC 后若网站立刻打开,就停在这一步,不必去改解析和包长。若禁用后仍失败,再按解析、证书、重置的顺序各改一处。命令行可以用浏览器的网络日志导出,但日常把协议列从 h3 变成 h2 已经足够判断。
怎么确认流量没有绕过线路
判断 QUIC 有没有绕过线路,不要看客户端图标亮没亮,要看失败请求走的是哪一种协议、以及换模式之后协议列有没有变化。系统代理开启时,浏览器访问普通网页可能已经走代理,视频请求仍可能用另一条 UDP 直连出去。所以测试时只改一件事:先保持 QUIC 开着,把模式从系统代理改成全局,刷新同一个视频页,看协议错误是否消失。
若全局之后错误消失,说明之前的 UDP 确实漏了。这时可以重新打开浏览器的 QUIC 开关,让站点继续用新协议,但连接模式要保持全局。若全局之后仍然报协议错误,再禁用 QUIC,让页面退回基于 TCP 的下一代 HTTP。两步不要一起做,否则你不知道是模式生效还是开关生效。
公司网络若禁止所有 UDP,全局模式也带不走被防火墙丢掉的包,禁用 QUIC 才是能留下的办法。家里晚上才出现、白天正常,更像链路抖动或包被按大小丢掉,除了换模式,还要核对隧道的包长设置,避免握手包过大。手机系统浏览器和电脑不要用同一结论,手机应用可能根本没有走新协议。
改完设置后用无痕窗口重试,避免上一轮失败的连接还占着。地址栏里的报错原文保留下来,方便对照是协议错误还是连接被重置。前者优先处理 UDP,后者在关掉新协议之后若仍出现,就要改去查 TCP 本身。
家庭路由器的安全设置里如果有「关闭不安全的 UDP」一类开关,会和浏览器的协议选择叠在一起。先只关浏览器里的协议,确认页面能开,再决定要不要动路由器。路由器改完记得记录原值,避免语音通话一起受影响。
开发者工具里失败的那一条要看完整域名,不要只看主站。播放器、字体和统计往往是别的主机名,其中只有一部分走新协议。把走新协议且失败的主机名记下来,禁用协议后这些请求应变成基于 TCP 的协议并成功。若主文档成功、某个脚本仍失败,再单独看那个主机,不要把整站判成协议问题。
常见报错速查表
| 现象 | 原因 | 解决办法 |
|---|---|---|
| ERR_QUIC_PROTOCOL_ERROR | UDP 443 上的 QUIC 失败 | 禁用 QUIC 或改走隧道 |
| 协议列全是 h3 且失败 | 浏览器优先 HTTP/3 | Chrome flags 关闭 QUIC 并重启 |
| 只有视频转圈 | 媒体域名单独走 QUIC | 看媒体请求的协议列 |
| 一开系统代理就坏 | UDP 绕过代理 | 改全局模式或禁用 QUIC |
| Firefox 正常 Chrome 不行 | 两边默认协议不同 | 先改 Chrome,不要重装 |
| 禁用后仍连接重置 | TCP 也不通 | 改查重置与证书,保持 QUIC 关闭 |
| 晚上才出现 | UDP 丢包或包长问题 | 隧道模式,并核对 MTU |
高频问答
- 问:关掉 QUIC 会不会进不了正规网站?答:不会。站点会用 HTTP/2 或更早的 HTTP 继续提供页面。少的是 UDP 那条实验路径。
- 问:flags 里的开关重启就没了吗?答:设成 Disabled 会保留。用快捷方式参数才容易丢。改完一定要重启浏览器。
- 问:手机 Chrome 在哪关?答:手机版不一定暴露同样的 flags。更稳的是让手机应用走全局隧道,使 UDP 不再直连本地网络。
- 问:HTTP/3 是不是更快所以不该关?答:路径干净时它能少一轮握手。路径丢 UDP 时它只会转圈。能开页比协议新更重要。
- 问:系统代理为什么盖不住?答:系统代理传统上代理 TCP。QUIC 走 UDP,不进那个端口。隧道模式才按流量装进线路。
- 问:关了又想打开怎么办?答:把同一项改回 Default,重启浏览器,并用全局模式再试。仍报协议错误就继续关着。
先让页面打开再谈协议
QUIC 被拦截、Chrome 报 ERR_QUIC_PROTOCOL_ERROR、视频站只在新浏览器里转圈,处理顺序是:看网络面板的协议列,确认 h3,然后在浏览器里禁用 QUIC,或把客户端改成能带走 UDP 的全局模式。系统代理盖不住这段流量。禁用后仍失败,再去查解析和包长,不要三处一起改。
刺猬VPN采用 HTTPS+AES 加密传输,支持自定义用户名和密码匿名注册,不需要邮箱和手机号。免费节点永久免费、不限流量、不限速;时长套餐按周期计费,期间不限流量、不限速。客户端有断线保护和按域名、地址的智能分流,但 QUIC 这种 UDP 不能靠「只代理浏览器」解决。实际可用性取决于当前网络环境。公司网络若稳定丢掉这类数据包,浏览器开关就保持关闭;只在家里且全局模式已打开时再恢复默认。恢复后用原先失败的网址对照,协议列应从失败变为成功,否则继续关着。对照测试只保留一个变量。先记录失败时的协议列和报错原文,再改连接模式或浏览器开关中的一个,重启浏览器后用无痕窗口打开同一网址。成功就停,失败再改下一项。同时改模式和开关,事后无法知道是哪一项让页面打开。家里的测试和公司的测试分开记。家里全局模式能开、公司必须关掉新协议,这是网络不同,不是浏览器坏了。把两种环境的结论写在便签上,下次换地方时按环境选,不要沿用上一处的开关。失败记录留到当天结束再删,下次换网络先看便签,不要凭感觉重装浏览器。
换刺猬VPN告别连接烦恼:一键连接、连接稳定
刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。