如何在 Mac 上卸载 Tiny Shield
Tiny Shield 是 Proxyman 出的 macOS 网络监控和防火墙,bundle ID 是 com.proxyman.ProxymanGuard。它和抓包调试工具 Proxyman 不是同一个产品,Proxyman 有自己的指南。Tiny Shield 靠一个网络扩展过滤流量,macOS 以 root 身份运行它,官方文档说要用 Tiny Shield 自带的卸载命令,把应用和扩展一起移除。只删应用的话,扩展会继续运行,这次测试里应用进了废纸篓之后扩展仍然处于激活状态。它的连接记录放在系统文件夹 /Library/Application Support/ProxymanGuard 里。本文覆盖从 tinyshield.proxyman.com 下载的版本和 Homebrew cask tiny-shield。
移除之前
- 买过 Tiny Shield PRO、想把名额留给另一台 Mac 的话,按授权页面的说法,选「Tiny Shield › Tiny Shield License…」,打开 More,再选 Remove License…。卸载应用不会释放名额。
- 以后还想配同样的规则,先把 Block List 里的内容记下来。Tiny Shield 的连接历史存在你自己的 Mac 上,卸载命令会把它的数据删掉。
移除 Tiny Shield 和它的网络扩展
- 打开 Tiny Shield,选「Help › Uninstall TinyShield…」。按开发商 issue 里的记录,它会先弹窗确认,然后移除网络扩展,删掉
/Library/Application Support/ProxymanGuard、/Library/Application Support/com.proxyman.ProxymanGuard和用户资源库里以com.proxyman.ProxymanGuard命名的文件夹,最后退出。macOS 要密码时输入你的 Mac 密码。 - 「应用程序」里还有 Tiny Shield 的话,把它拖进废纸篓。
- 打开「系统设置 › 通用 › 登录项与扩展」,进入「网络扩展」,确认 Tiny Shield 已经不在列表里。打开过 Tiny Shield 的登录时启动选项的话,再看一眼「登录时打开」里也没有它。
如果应用已经删了、扩展还在列表里,就把 Tiny Shield 从废纸篓里放回原处(或者从 tinyshield.proxyman.com 重新下载到「应用程序」),打开后运行「Help › Uninstall TinyShield…」,再移除应用。在「网络扩展」里关掉开关只会让 Tiny Shield 停止监控和拦截,真正移除扩展的是官方卸载命令。macOS 提示扩展要在重启后才移除的话,重启一次 Mac。
数据在哪里
| 位置 | 内容 | 处理建议 |
|---|---|---|
com.proxyman.ProxymanGuard.NetworkExtension |
以 root 身份过滤流量的网络扩展,测试里 46 MB | 用「Help › Uninstall TinyShield…」移除 |
/Library/Application Support/ProxymanGuard |
flow.sqlite 里的连接记录,属主是 root,测试里 3.2 MB |
官方卸载命令会删掉它,还在的话在访达里把它移到废纸篓,输入密码确认 |
~/Library/Application Support/com.proxyman.ProxymanGuard |
应用数据,测试里是空的 | 移除 |
~/Library/Caches/com.proxyman.ProxymanGuard 和 ~/Library/HTTPStorages/com.proxyman.ProxymanGuard |
缓存和网页存储 | 移除 |
~/Library/Preferences/com.proxyman.ProxymanGuard.plist |
偏好设置 | 移除 |
当前用户的缓存目录里还有一份 com.proxyman.ProxymanGuard 的临时缓存(getconf DARWIN_USER_CACHE_DIR 会打印位置)。还在用 Proxyman 的话,别动以 com.proxyman.NSProxy 命名的文件夹。
检查结果
pgrep -il 'tiny shield|proxymanguard'
systemextensionsctl list | grep -i proxymanguard
ls -ld "/Library/Application Support/ProxymanGuard" "$HOME/Library/Application Support/com.proxyman.ProxymanGuard"
pgrep没有输出,表示应用和扩展都没在跑。出现com.proxyman.ProxymanGuard.NetworkExtension这一行,说明扩展还在运行。systemextensionsctl没有输出,表示扩展已经没了。行尾是[activated enabled]说明它还装着并在过滤流量,按上面的步骤运行官方卸载命令。提示重启后卸载的那种状态,重启一次就会消失。ls打印出来的路径仍然存在,No such file or directory表示该路径已经没了。
用 Homebrew 安装时
brew uninstall --cask tiny-shield
这个 cask 除了应用本身没有别的卸载项,所以这条命令只删 Tiny Shield.app,先运行 Tiny Shield 自带的卸载命令,网络扩展才会一起走。它的 zap 清单会删掉 /Library/Application Support/com.proxyman.ProxymanGuard,以及用户资源库里 com.proxyman.ProxymanGuard 的应用数据、缓存、网页存储和偏好设置,但没有写测试里存连接记录的 /Library/Application Support/ProxymanGuard,也不移除扩展。所以自己运行 brew uninstall --cask --zap tiny-shield 也收不干净,而且它不读取 Mole 的勾选。Mole 只在 zap 的每条路径都在 ~/Library 里时才加 --zap,这个 cask 写了 /Library 下的路径,所以 Mole 从不执行它的 zap,你勾选的行由 Mole 自己移除。
Mole 会列出什么
Mole 会勾选应用本体、~/Library/Application Support/com.proxyman.ProxymanGuard、~/Library/Caches/com.proxyman.ProxymanGuard、~/Library/HTTPStorages/com.proxyman.ProxymanGuard、~/Library/Preferences/com.proxyman.ProxymanGuard.plist 和临时缓存。Tiny Shield 不理会退出请求时,Mole 会先强制退出它,再移走应用。
Mole 不会移除也不会列出网络扩展,也不列出 /Library/Application Support/ProxymanGuard,名字里带代理和 VPN 字样的文件夹,Mole 都不放进卸载列表。这两项用 Tiny Shield 自带的卸载命令移除。以上默认状态以「通用 › 清理」里的「卸载时一并移除数据和配置」关闭为前提,打开它对这里没有影响,列出的行本来就都是勾选的。
这次检查覆盖了什么
2026 年 10 月 20 日,这次检查用源码构建、已授予完全磁盘访问权限的 Mole,卸载了测试用 Mac 上本来就装着、在用的 Tiny Shield 1.18.1 Apple 芯片版。Tiny Shield 没有理会退出请求,被强制退出。Mole 列出六行,包括 79.9 MB 的应用本体,全部默认勾选,全部移进了废纸篓,和卸载前按产品名和开发团队搜到的五项用户域文件一一对上,卸载后再搜,用户域里一项都没剩。留下了两项,一是网络扩展,它的 root 进程还在跑,systemextensionsctl 仍然显示 activated enabled,二是 /Library/Application Support/ProxymanGuard 和里面 3.2 MB 的 flow.sqlite。状态页把应用显示成一行 Tiny Shield,占 304 MB,扩展按 bundle ID 单独显示一行。卸载前后都没有登录项。应用通过 Sparkle 更新,没有执行更新。Tiny Shield 自带的卸载命令、由 Homebrew 管理的卸载和 Mole 公证发布版都没有测。
