iCloud 专用代理和 AdGuard
本文介绍 Mac 版 AdGuard。这是一款多功能广告拦截程序,可在系统级别保护设备。 要了解其工作原理, 请下载 AdGuard 应用程序。
问题描述
AdGuard 默认使用「默认路由」功能,禁用 iCloud 专用代理的原因。
目前,AdGuard 和 iCloud 专用代理不能同时工作。 AdGuard 无法阻止广告,因为 iCloud 专用代理会在 AdGuard 过滤网络连接之前对流量进行加密。 当 iCloud 专用代理处于活动状态时,应用就无法进行过滤(包括本地过滤)。 因此,AdGuard 无法在 Safari 中过滤流量或执行 DNS 过滤。 但是,AdGuard 仍然会过滤其他浏览器的流量。 要继续使用 iCloud 专用代理,请考虑安装 AdGuard Safari 版。
在 Mac 上使用任何 VPN 应用程序也是如此:用户必须在使用 iCloud 专用代理或 VPN 服务之间进行选择。
更详细的说明
现在 Mac 版 AdGuard 使用基于网络扩展 API 的 macOS 内置的 Socket 过滤。 这种新的漏洞百出的机制取代了老式的内核扩展。 在过去的一年半内,我们向 Apple 报告了超过 20 个(!)关于其新过滤方式的错误。
网络扩展 API 有一个类似 VPN 的配置,其中包含一个类似路由的条目列表。 在 Big Sur 上,AdGuard 开发了「分离隧道」规则,以避免创建「默认路由」规则,因为它会给 Big Sur 早期版本带来问题。
在 Monterey 上,推出了 iCloud 专用代理。 邮件应用程序的隐私功能也使用专用代理服务器。
因此,AdGuard 无法与 iCloud 专用代理和邮件应用程序的隐私功能一起使用:
- iCloud 专用代理应用于库级别的连接,在连接到达 AdGuard 运行的套接字级别之前。
- iCloud 专用代理使用 QUIC,AdGuard 无法在已过滤的应用程序中过滤 QUIC,因为 HTTP/3 过滤尚未可用。
- 因此,AdGuard 会阻止 QUIC,包括 iCloud 专用代理的流量,否则就无法拦截广告。
- 当用户使用 iCloud 专用代理,将 AdGuard 切换到「分离隧道」模式时,就无法在 Safari 中打开网站。
- 要在 Monterey 上解决这个问题,我们应用「默认路由」规则。 专用代理检测到该规则时,功能将自动禁用。 因此,AdGuard 可以在 Monterey 上无缝运行,但 iCloud 专用代理会被禁用。
network.extension.monterey.force.split.tunnel
恢复了 Big Sur 行为,但由于(3)和(4)的原因,该选项会中断网站访问权限。 我们努力寻找能够解决这个问题的办法。 一种可能的解决方案是实施 HTTP/3 过滤。
建议的解决方案
我们建议将 AdGuard 与更传统的 VPN 服务(如 AdGuard VPN)一起使用。
替代解决方案
用户可以禁用「默认路由」,防止 AdGuard 使用「默认路由」。 前往「高级设置」→ network.extension.monterey.force.split.tunnel
进行设置。
请注意,在这种情况下,用户将面临上述问题。