Big Sur:优势、劣势、缺陷
不久之前我们更新了适用于 Mac 的 AdGuard v2.5。其中特别强调了与 macOS Big Sur 的兼容。最近发布的修补程式 v2.5.1 也包含很多与兼容有关的修复。
正文开始前我必须强调,兼容 AdGuard 跟 Big Sur 并不简单。今年苹果致力改善 macOS 反而使一切变得更加混乱。
首先是由于内核扩展变更老旧。如您经常阅读我们的博客,您可能知道我们三月已提到过这一点。如您感兴趣,在网上能搜索到不少的信息。然而关键是,内核扩展是 AdGuard 之前版本使用的 API(应用程序接口)。开发 Big Sur macOS 后,对 API 也做出了极大改变。因此,AdGuard 所有内部流程需要根据新 API 被重建。
但这不是唯一的阻挠。Big Sur 的出现标志着苹果将 Intel 切换到 ARM 处理器。您一定可以猜到,这也付出了很大的代价。我们来仔细看一下这两个因素。
ARM 支持
由于ARM 是更加易懂的,让我们从这里开始。苹果为开发人员提供所谓 Developer Transition kit(开发者移转套件)。它包含以 ARM 为基础的 Mac Mini 原型和其他改进。
我们检测成功了。我们很高兴告诉大家,AdGuard 与 ARM 处理器运行顺利。
移动至网络扩展
网络扩展(Network Extensions)是替代旧内核扩展 API 的 新版 API。为什么苹果决定开发新 API?是为了避免开发人员使用内核,而只使用用户模式。正确实施内核扩展是非常难的。如您犯任何一个错,都可能导致整个系统崩溃。将所有之前只可以实施于内核的功能转移到用户模式,使操作系统更加稳定性,至少理论上是这样。遗憾的是,要付出巨大代价。
说到 AdGuard,我们已经阐明, AdGuard 现在要用为系统全面过滤的 API 叫做网络扩展。没错, 刚开始采用它确实很痛苦。Big Sur 是首个全面使用网络扩展的操作系统。我们发送了不少错误报告,花很长时间与苹果开发者沟通。好消息是,这一切都不是徒劳的。与网络扩展有关的问题都修复了。
请注意,macOS Catalina 不包含所有的主要改进,因此您要依靠老的内核扩展。
尽管我们使用了千方百计,在网络扩展上还是存在一些限制。让我们看一下已知的问题及其解决的办法:
与本地代理兼容性
有一些与 AdGuard 跟代理同时运作有关的细微差别。告诉大家一则好消息:在 Big Sur 上任何远程代理与 AdGuard 能同时运作并不需求您执行额外设置。但说到本地代理(localhost),用户则要从系统设置移除并直接在 AdGuard 配置它。
在 Big Sur 适用于 Mac 的 AdGuard 上配置上游代理,您需要前往 AdGuard 菜单 -> 高级 -> 高级设置...。以配置代理在 upstream.proxy
设置点击 数值 的字符串。
输入 scheme://user:password@host:port
字串,字串中
scheme
是指http
、https
、socks4
或socks5
(根据您的代理类型)
如您使用
socks5
代理类型,请将upstream.proxy.socks5udp
设置的数值设置为true
。这样您使 AdGuard 将 UDP 流量经过代理服务路由。
-
user
和password
是您的代理的相应的用户名和密码(如需要的话)。如其中一个或两个都不合适您的代理,请忽略它们。 -
host
是您的代理服务器的 IP 地址 -
port
是代理服务器要使用的所需端口号
比方说:
socks5://localhost:6322
要配置不要求用户名和密码,监听端口 6322 的 SOCKS5 本地代理。
以让 AdGuard 将全部流量向已配置的代理服务器路由,点击“应用”。
为一些常用本地代理的指导
根据您使用的本地代理,设置和其他细节会存在小小的区别。关于一些常用代理(Surge, Shadowsocks)的更详细指导,可以在我们的知识库查看。
有旧版 API 的 VPN 应用程序
虽然 AdGuard 在操作系统显示为 VPN,与其他以 VPN 为基础的应用程序同时运行时不应冲突。但是如您使用其他不是从 AppStore 下载的以 VPN 为基础的应用,则它有可能使用的还是旧版 VPN API,因此您必须将它从过滤中排除:
- 打开 AdGuard 菜单。
- 选择 首选项...。
- 切换到 网络 标签。
- 点击 应用程序... 按钮。
- 找到您想排除的应用程序并取消勾选。
使用网络扩展的备选方案
预知在 Big Sur 上所可能出现的问题是不可能的。有多种多样的硬件/软体和配置设置。若您遇到与兼容性的问题,请与我们客服支持联系。然而您也可以尝试使用变通办法:
使用“自动代理”过滤模式
您可以尝试将 AdGuard 切换到 自动代理 模式。您使系统将 AdGuard 作为代理。这样您可以绕过网络扩展导致的问题。
- 打开 AdGuard 菜单。
- 选择首选项...。
- 切换到 网络 标签。
- 点击 选择模式... 按钮。
- 选择 自动代理。
现在 AdGuard 将**.pac** 文件自动添加到您的 Mac 网络设置,因此系统将 AdGuard 作为代理并尝试将所有流量经过 AdGuard 发送。
请注意,有些应用程序将会忽略此系统设置,因而其流量将不会被过滤。
开启内核扩展
这是最后的选择。以开启内核扩展,首先请您禁用系统完整性保护(SIP)。这个方法也许可以解决您的问题,但是也可能会导致更多的问题。如果您做了好准备的话,请根据知识库的文章内容执行操作。
我们再次重申,只有在所有的解决办法都无效的情况下,我们才推荐您使用该方法,因此还是请您慎重考虑。
总结
阅读完这篇文站后,您可以发现 Big Sur 既有优势亦有劣势。但只有时间才可以告诉我们,将来 Big Sur 会出现更多问题还是有无限的潜力。现在,请您尽力掌握这篇文章所讲的知识,并准备好与潜在的混乱交手。我们一起希望苹果公司能够进入“高速发展模式”,并立即修复所有问题。