原因
在 iOS 15 和 macOS Ventura 中,新增了一个功能:限制 IP 地址跟踪
而这个功能虽然在中国大陆无法完整使用,但是能使用部分功能(对网站跟踪器隐藏 IP 地址) 这就使得在非 Cloudflare 的第三方网站中的人机验证器 (域名:challenges.cloudflare.com) 被识别为跟踪器,而在 OpenClash 中,为了防止 YouTube 等使用 QUIC 导致速度不佳,通常会 禁用 QUIC
,而恰好 iCloud 专用代理使用了 QUIC
iCloud 专用代理使用 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
中:
mask.icloud.com
mask-h2.icloud.com
mask.apple-dns.net
域名来源: 为 iCloud 专用代理准备网络或网页服务器 - Apple Developer
原理:
让 iCloud Private Relay 的流量不经过内核直连,这样能让它们正常使用 QUIC 连接,也不会影响到禁用其它网站的 QUIC
OpenClash 的 本地 IPv4 绕过地址
设置中只能添加 IP/IP-CIDR,不支持域名,所以要通过 dnsmasq 设置
在 OpenWrt 的 网络
--> DHCP/DNS
--> 中的 IP 集合
中,添加域名:
mask.icloud.com
mask-h2.icloud.com
mask.apple-dns.net
到
china_ip_route
china_ip6_route