简介

由于本人实在不喜欢今年 macOS 26 的液态玻璃效果,所以准备把所有设备都固定在上个版本。

屏蔽 macOS 更新,是用屏蔽本机和检查更新主机之间连接的方式,让系统更新无法连接更新服务器。
在 macOS Sequoia 15.7 测试有效。理论上是大多版本都通用的。

屏蔽更新

一句话总结:
屏蔽设备连接 swdist.apple.com 即可。
macOS 会连接这个主机,获取系统更新包的地址。屏蔽之后,获取不到,自然无法更新。

下面三种方案,选择一个就可以。请额外阅读其他问题

这个操作会让所有受“设置-软件更新”管理的软件,全都更不了!
比如 Safari 和 CommandLineTools。

使用 hosts 方案

打开终端,运行下面的命令即可(运行时需要输入密码)。

1
echo "127.0.0.1 swdist.apple.com" | sudo tee -a /etc/hosts

然后刷新 DNS 缓存,在终端中依次运行下面的命令

1
2
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

现在回到设置→软件更新,就会显示无法检查更新了。

如需临时更新一下,使用 sudo vi /etc/hosts,删掉新增的这一行即可。

使用防火墙方案

要使用能管理某个程序的连接的防火墙,比如 Little Snitch,但这是个付费的。
也有开源的替代品 Lulu 能达到同样的效果,相较于 Little Snitch,Lulu 更简单,但功能有限。

使用方式大同小异,阻止/System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdatedswdist.apple.com 的连接即可。
相比用 hosts 屏蔽,这个更加灵活方便一点。

下面是上述两个软件的详细步骤

Little Snitch 详细步骤

  1. 打开规则管理(程序主窗口)
  2. 新建规则
  3. 在显示 Any Process 的输入框中,粘贴下面这行内容并回车
    /System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated
  4. Action 选择:Deny
  5. Direction 选择:Outgoing
  6. To 选择 Hostnames,并在下面填入 swdist.apple.com
  7. 然后确认创建规则!

现在回到设置→软件更新,就会显示无法检查更新了。

如需临时恢复更新,禁用这个规则即可。

Lulu 详细步骤

  1. 打开程序主窗口,选择“规则”选项卡,点击“查看规则”进入规则管理窗口
  2. 新建一个规则
  3. 程序路径部分,粘贴下面这行内容
    /System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated
  4. 在远程地址/域名部分,填入 swdist.apple.com
  5. 行为选择禁止
  6. 保存规则

现在回到设置→软件更新,就会显示无法检查更新了。

使用 DNS 服务器规则

只适用于自建 DNS 服务器,只限于连接这个 DNS 服务器时有效。
swdist.apple.com 解析至任意错误 IP 即可。

其他问题

如果同时使用VPN或代理软件

一些代理软件的全局模式(GLOBAL),会拦截所有请求,发往代理服务器通信。这样就导致 macOS 检查更新的流量,会绕过防火墙和 hosts。
部分软件还会绕过本机的 DNS,统一使用代理服务器。

如果你用全局模式,那没办法。
如果你用直连模式(DIRECT),搭配防火墙,将 PacketTunnel 与 swdist.apple.com 建立的通信禁止即可。
如果你用规则模式(RULE),修改你的规则,将与 swdist.apple.com 修改至 DIRECT,然后搭配防火墙,将 PacketTunnel 与 swdist.apple.com 建立的通信禁止即可。

如果你用 Shadowrocket,将全局路由修改为“配置”,然后修改配置文件,在配置文件设置的通用-跳过代理中,加入 swdist.apple.com 即可。

如果依然有红点角标

屏蔽更新后,如果仍然有红点角标,并且由于检查不到更新导致角标去不掉的话:

暂时放行 swdist.apple.com,然后打开系统设置-软件更新,此时应该会跳出下个版本的更新按钮。
点击更新,系统应该会弹窗,让你同意一份许可协议,什么都不要点。
从左上角 Apple 按钮中,打开强制退出,然后强制退出设置 App 即可。

之后记得把 swdist.apple.com屏蔽。

另外

很多文章中列出了一堆需要屏蔽的地址。
参考在企业网络上使用 Apple 产品一文的“软件更新”可以看出,其实很多都是用于下载更新包,或者 CDN 地址。
swdist.apple.com 是用来获取更新地包地址的,直接把它掐断,就不用费劲屏蔽别的了。