--protocol auto 不会在 QUIC 手shake 被拒绝时回退到 HTTP/2,如果 UDP 预检报告其状态正常,则会出现 CRYPTO_ERROR 0x178 (tls: no application protocol)
作者: mashkovd创建于 2026年9月9日更新于 2026年9月9日
描述错误 当在网络中 TLS 手shake 期间拒绝了与隧道边缘的 QUIC 手shake(而不是黑洞)时, --protocol auto 永远不会回退到 HTTP/2。它无限期地重试 QUIC,采用指数性的延迟,不注册连接,隧道仍然处于下线状态。在同一运行和同一秒钟内,有两个不同的观察结果: 1. **没有回退。**每个拨号都以 CRYPTO_ERROR 0x178 (remote): tls: no application protocol 失败 - TLS 警报 120,no_application_protocol - 和 auto 不断重试 QUIC,而不是切换传输。 2. **启动预检查报告了现实的相反情况。**在拨号失败的那一刻,UDP 连接性 为两个区域都报告 状态=通过,详细信息为 QUIC 连接成功,并且运行结束 建议协议=quic。 这看起来像是第二个导致了第一个:预检查的 UDP 组件似乎测试可达性,而不是真正的隧道手shake,因此传输选择逻辑被告知 QUIC 可用,而实际上却不是。
内容来源: cloudflare/cloudflared