在 Mac 上卸载 Wireshark
Wireshark 装的不只是应用本身:一个叫 ChmodBPF 的后台服务给你的账户开了读取网络数据包的权限,让 Wireshark 不用当 root 运行也能读取网络数据包,而且就算把 Wireshark.app 删了,它也还留在这台 Mac 上,除非你单独把它移除。这份指南覆盖 wireshark.org 官网的 DMG 和 Homebrew cask wireshark-app;两者移除 ChmodBPF 的方式不一样,下面分别说明。
退出 Wireshark,结束正在进行的数据包读取
先停止正在进行的数据包读取,再从菜单退出 Wireshark。Wireshark 本身没有独立的登录项或菜单栏助手,只有 ChmodBPF 作为系统服务在跑,跟应用有没有打开无关。
移除 ChmodBPF,这个数据包读取权限服务
ChmodBPF 会安装一个 LaunchDaemon(org.wireshark.ChmodBPF),并创建一个叫 access_bpf 的 macOS 用户组,允许读取网络数据包设备;加进这个组的账户都能不用 sudo 读取网络数据包。把 Wireshark.app 拖进废纸篓,这两样都不会被碰。
- 官网 DMG:重新打开你当初安装用的那个 Wireshark DMG(挂载它就够了),运行磁盘映像窗口里 Wireshark.app 旁边的 Uninstall ChmodBPF.pkg。它会停止这个 LaunchDaemon,在没有别的东西依赖它时删掉
access_bpf用户组,并删除/Library/Application Support/Wireshark。同一个 DMG 里还有 Remove Wireshark from the system path.pkg,负责去掉把tshark等命令行工具加进你 PATH 的那几行配置。 - Homebrew:执行
brew uninstall --cask wireshark-app移除这个 cask 时,不管带不带--zap,都会顺带停止并卸载 ChmodBPF 这个 LaunchDaemon,并清除它的安装器收据记录。Mole 自己没有为此新开任何特权步骤,完全依赖 cask 自带的卸载流程。
Mole 本身从不安装或移除 ChmodBPF 或 access_bpf 用户组,这件事只交给你、官方的卸载器 pkg,或者 Homebrew。不管走哪个渠道,都用下面的命令确认它是不是真的没了。
Wireshark 的数据放在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
/Library/Application Support/Wireshark |
ChmodBPF 安装的脚本和配套文件 | 系统级需确认行,需要管理员权限;只有靠官方的 Uninstall ChmodBPF.pkg 或 Homebrew 才会清掉,光移走应用本体不会 |
~/.config/wireshark |
你的数据包过滤器、显示过滤器、最近文件和配置文件 | 列出但不默认勾选;这是你保存的配置 |
~/Library/Caches/org.wireshark.Wireshark |
应用缓存 | 默认勾选 |
~/Library/Cookies/org.wireshark.Wireshark.binarycookies |
Cookie | 默认勾选 |
~/Library/HTTPStorages/org.wireshark.Wireshark 及 .binarycookies |
HTTP 存储 | 默认勾选 |
~/Library/Preferences/org.wireshark.Wireshark.plist |
应用偏好设置 | 默认勾选 |
~/Library/Saved Application State/org.wireshark.Wireshark.savedState |
保存的窗口状态 | 默认勾选 |
~/Library/WebKit/org.wireshark.Wireshark |
内嵌网页视图数据 | 默认勾选 |
检查结果
在终端运行下面的只读命令:
pgrep -ilf wireshark
launchctl list | grep -i wireshark
dscl . -read /Groups/access_bpf
ls -d ~/.config/wireshark
pkgutil --pkgs | grep -i wireshark
pgrep 没有输出,说明没有 Wireshark 进程还在运行。launchctl list 没有输出,说明 ChmodBPF 这个守护进程已经不再加载;出现 org.wireshark.ChmodBPF 这一行说明它还在。dscl 如果 access_bpf 还存在会打印这个组的信息,删掉后会提示 eDSRecordNotFound。如果这个组是被别的方式停掉而不是通过官方卸载器,用户组本身可能比守护进程活得更久。ls -d 对 ~/.config/wireshark 执行,如果你保留了这一行会显示你保存的过滤器和配置文件,删掉后会提示「No such file or directory」。pkgutil 如果还留有 org.wireshark.* 这一行,说明安装器收据还在登记,只要它记录的文件已经没了,这条收据本身不是问题。
用 Homebrew 安装时
下一次 Mole 更新会先检查 zap 清单,涉及未勾选的数据、其他应用共用的文件或无法确认的内容时不执行 --zap,已勾选的残留仍由 Mole 清理。Preview 290 尚未包含这项保护。
Preview 290 中,Mole 移除 Homebrew 安装的 Wireshark,效果和 brew uninstall --cask --zap wireshark-app 一样。在 zap 步骤真正执行之前,这个 cask 自带的卸载流程就会先停止并卸载 ChmodBPF 这个 LaunchDaemon,并清除 Wireshark 安装器收据的记录,不管你在 Mole 里留没留勾。zap 清单本身会把 /Library/Application Support/Wireshark、~/.config/wireshark(你的数据包和显示过滤器)、应用缓存、cookie、HTTP 存储、偏好设置、保存的窗口状态,以及内嵌的 WebKit 数据全部移进废纸篓,不管 Mole 里勾没勾都会执行。想保留过滤器和配置文件,就先备份 ~/.config/wireshark,或者只移除应用本体:
brew uninstall --cask wireshark-app
Wireshark 的 ChmodBPF 与 path-helper 安装器源码 · Homebrew Wireshark cask
Mole 会列出什么
以下是 Mole 1.15(目前为 Preview)的处理。~/.config/wireshark 列出但不默认勾选,这一点已在代码里核实为已知应用的需确认行,你保存的过滤器不会在没有主动选择的情况下被删。/Library/Application Support/Wireshark 是需要管理员权限的系统级需确认行,同样从不默认勾选。上面表格里其余路径都是按 bundle identifier 匹配的普通应用数据,和其他应用的缓存、cookie、偏好设置一样默认勾选。不管哪个渠道,Mole 都不管理 org.wireshark.ChmodBPF 这个 LaunchDaemon 或 access_bpf 用户组;移除它们要靠官方的 Uninstall ChmodBPF.pkg,或者 Homebrew 自己的卸载步骤。
这次检查覆盖了什么
测试用的 Wireshark 通过 Homebrew cask wireshark-app 安装,2026 年 9 月 17 日用一个开发版 Mole 卸载。偏好设置被 cask 的 zap 步骤删掉;测试用的 Mac 上没有写出过 ~/.config/wireshark,所以这次卸载没有验证到它的需确认行为。ChmodBPF 是靠 brew 自带的卸载流程移除的,不是 Mole 直接做的。官网 DMG 自带的 Uninstall ChmodBPF.pkg 还没有通过 Mole 重新测试过;上文关于它具体做什么的说明来自阅读 Wireshark 自己的安装器脚本,不是来自这个渠道上一次记录在案的 Mole 卸载。
