如何在 Mac 上卸载 LuLu
LuLu 是 Objective-See 出品的免费开源防火墙,会拦下你没有批准过的对外连接,一旦批准了它的系统扩展和网络过滤器,它就不只是「应用程序」里的一个 app 了,所以要用 LuLu 自带的卸载命令移除,不要直接拖进废纸篓,想保留规则就先导出。这篇覆盖官网下载版和 Homebrew cask lulu 两种安装方式。
先导出规则
Objective-See 的 LuLu 页面写到,规则可以在「Rules」菜单里导出和导入,每个档案有各自的规则和设置,想保留的档案卸载前都导出一遍。
用 LuLu 自己卸载
- 点菜单栏里的 LuLu 图标,选择卸载,同一页面写到,退出或卸载 LuLu 都要验证身份。
- 如果只是把 LuLu 拷进了「应用程序」,从没批准过扩展,从菜单栏图标退出后拖进废纸篓就够了。
数据存在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
| LuLu 的系统扩展和网络过滤器 | 在系统设置里批准过的防火墙本体 | 不是能拖进废纸篓的文件,用 LuLu 自带的卸载命令移除 |
归在 LuLu 的 bundle 标识符 com.objective-see.lulu.app 名下的文件 |
偏好设置和缓存,存在时才有 | 默认勾选 |
| ~/Library/Caches/com.objective-see.lulu 与 ~/Library/Caches/com.objective-see.lulu.helper | Homebrew zap 清单里写的缓存 | 会列出但默认不勾选 |
| ~/Library/Preferences/com.objective-see.lulu.plist 与 ~/Library/Preferences/com.objective-see.lulu.helper.plist | Homebrew zap 清单里写的偏好设置 | 会列出但默认不勾选 |
核对卸载结果
pgrep -il lulu
systemextensionsctl list | grep -i lulu
ls -ld ~/Library/Preferences/com.objective-see.lulu*
pgrep没有输出,说明 LuLu 没在运行。systemextensionsctl list没有输出,说明没有注册着的 LuLu 系统扩展,出现 LuLu 的一行说明扩展还装着,用 LuLu 自带的卸载命令处理,应用已经删了就重装一次 LuLu 再卸载。ls -ld提示「no matches found」或「No such file or directory」,说明没有 LuLu 的偏好设置文件留下,列出文件说明它还在。
用 Homebrew 安装时
lulu 这个 cask 的 zap 清单有四条,是 com.objective-see.lulu 和 com.objective-see.lulu.helper 名下的缓存和偏好设置,都不是 LuLu 的 bundle 标识符,所以 Mole 还可能从这个应用的 Homebrew zap 清单里列出它们,默认不勾选。其中任何一条存在又没勾时,Mole 就不加 --zap,你勾选的行照样由它自己移进废纸篓。zap 清单和 Mole 都不会停用系统扩展,那是 LuLu 自带卸载命令的事。
自己运行 zap 步骤,不管 Mole 里勾没勾,这四条都会被删掉:
brew uninstall --cask --zap lulu
只移除应用:
brew uninstall --cask lulu
Mole 会列出什么
对官网下载版的 LuLu:
- 归在 LuLu 的 bundle 标识符
com.objective-see.lulu.app名下的文件默认勾选。 - Mole 还可能从这个应用的 Homebrew zap 清单里列出
com.objective-see.lulu和com.objective-see.lulu.helper名下的四条缓存和偏好设置,默认不勾选。 - LuLu 的系统扩展和网络过滤器不会列出。
这次检查覆盖了什么
2026 年 9 月 19 日,只把 LuLu.app 从官网下载版拷进「应用程序」,从没批准过它的系统扩展和网络过滤器,它以菜单栏应用的形式运行,再用 Mole 1.15 的 Preview 构建(build 277)卸载,没有 Homebrew 安装记录。Mole 的启动项列表把 LuLu 内嵌的登录项显示成只供确认的一行,应用移除后这一行也没了。批准过的网络扩展、规则、档案和 Homebrew cask 都没有测到,所以上面的卸载步骤来自 Objective-See 的页面,不是这次测试的结果。
