解决软路由环境中 Safari 无法通过 Cloudflare 人机验证
原因
在 iOS 15 和 macOS Ventura 中,新增了一个功能:限制 IP 地址跟踪
而这个功能虽然在中国大陆无法完整使用,但是能使用部分功能(对网站跟踪器隐藏 IP 地址) 这就使得在非 Cloudflare 的第三方网站中的人机验证器 (域名:challenges.cloudflare.com) 被识别为跟踪器,而在 OpenClash 中,为了防止 YouTube 等使用 QUIC 导致速度不佳,通常会
禁用 QUIC,而恰好 iCloud 专用代理使用了 QUICiCloud 专用代理使用 QUIC,这是一种基于 UDP 的全新标准传输协议。专用代理中的 QUIC 连接需要使用端口 443 和 TLS 1.3 建立,因此请确保你的网络和服务器已准备好处理此类连接。
一个完美耦合的 bug 就这样出现了:
访问带有 Cloudflare 人机验证的网站 --> Safari 判断challenges.cloudflare.com为跟踪器,使用iCloud Private Relay连接此域名 --> OpenClash 配置的防火墙规则禁止 QUIC 连接
导致人机验证卡在 “正在验证” 状态:

解决
方法一
在 无线局域网 设置中,关闭
限制 IP 地址跟踪 功能- 缺点: 无法使用自带邮件 APP 和 Safari 对于跟踪器和广告收集器的隐藏 IP 地址功能

方法二
关闭 Safari 浏览器的
隐藏 IP 地址 功能- 缺点: 无法对于其它跟踪器和广告收集器隐藏 IP 地址

方法三
在 dnsmasq 中添加以下域名到 IPSet
china_ip_route 和 china_ip6_route 中:域名来源:
原理:
让 iCloud Private Relay 的流量不经过内核直连,这样能让它们正常使用 QUIC 连接,也不会影响到禁用其它网站的 QUIC
OpenClash 的本地 IPv4 绕过地址设置中只能添加 IP/IP-CIDR,不支持域名,所以要通过 dnsmasq 设置
在 OpenWrt 的
网络 --> DHCP/DNS --> 中的 IP 集合 中,添加域名:到


作者:Fanx
声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
Previous
JetBrains IntelliJ 系列全家桶激活服务器 (停止更新)
Next
OpenWrt 配置不完全指北