跳到主要内容
Mole
概览 功能 口碑 定价 常见问题 博客
EnglishEN 简体中文中 繁體中文繁 日本語日 한국어한 FrançaisFR DeutschDE ItalianoIT EspañolES
立即购买购买 下载

    帮助、文档、更新日志和文章

    首页/博客

    卸载 Mac 上的杀毒软件,别把网络一起弄断

    卸载应用发布于 2026年8月15日更新于 2026年8月22日约 11 分钟

    一款杀毒产品不是一个应用。它是一个应用包,外加一组注册记录,这些记录 macOS 收在自己那一侧:一个系统扩展、一份保存下来的网络过滤配置、一个或多个 launchd 任务,通常还有一个特权助手,受管理的 Mac 上再多一份配置描述文件。把应用包拖进废纸篓,删掉的只是前端,那些注册记录一条都没动,这类软件「卸不掉」的名声就是这么来的,所以第一步该去找厂商自带的卸载器,不是打开访达。

    除了应用包,安全类产品还装了什么

    任何一台 Mac 上,一分钟就能只读地清点一遍它到底装了什么:

    systemextensionsctl list
    ls -la /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgents
    ls -la /Library/PrivilegedHelperTools
    profiles list
    pkgutil --pkgs | grep -i vendorname
    

    系统扩展装的是检查文件和流量的代码,取代了这类软件过去用的内核扩展,老教程里那套「删掉 .kext」现在已经对不上任何东西。Apple 的系统扩展指南写明了它住在哪里:「系统扩展位于你的应用的 Contents/Library/SystemExtensions 文件夹内。」激活一个系统扩展要本人点头,装安全软件总得跑一趟设置就是这个缘故。Apple 的部署技术说明补上了删除时最要紧的一条,这样打包出来的提供程序「运行在全局上下文中,完全独立于当前登录的用户」。

    网络内容过滤器或透明代理是另一个独立对象,断网的多半就是它。让它生效的那份配置属于系统,不属于应用。NEFilterManager 说得很直接:「过滤器配置保存在由 Network Extension 框架管理的 Network Extension 偏好设置中」,而且只有拥有它的应用显式保存时,改动才会生效。

    launchd 任务负责把后台部件拉起来。/Library/LaunchDaemons 在开机时以 root 身份运行,比任何人登录都早,/Library/LaunchAgents 在每个用户登录时运行,~/Library/LaunchAgents 只为你运行。这些目录里的 plist 是一条向 launchd 注册的记录,不是普通的设置文件。

    /Library/PrivilegedHelperTools 下的特权助手是一个 root 所有的可执行文件,配着一个守护进程,文件挪走之前该先把它卸载。公司或学校发的 Mac 上还有配置描述文件,带着扩展批准和过滤器载荷,软件装的时候不用问任何人,同一套机制也能把它装回来。

    一个杀毒安装程序展开成多样东西:应用程序里的一个应用包、包内的一个系统扩展、保存在 Network Extension 偏好设置里的一份网络过滤配置、注册到 launchd 的守护进程与代理、一个特权助手工具,以及一份配置描述文件。
    这里面只有第一样是你能拖动的文件,其余都是 macOS 保管的注册记录,各有各的归属和各自的删除路径。

    为什么拖进废纸篓不可能管用

    Apple 确实写了一条好消息,但它比第一眼看上去窄得多:「当用户删除对应的应用时,系统会自动卸载任何系统扩展。」这一条覆盖的是应用包内部的那个扩展,对其他注册记录只字未提,而那些东西没有一个在包里。

    最常见的那类抱怨就出在过滤器配置上。它在 Network Extension 偏好设置里有自己的生命周期,Apple 文档写的是删除它要由拥有它的应用显式发起一次调用,而删掉一个应用永远不会发起这次调用。于是剩下一个过滤器还开着,它指向的提供程序却已经不在了,症状就是半卸载之后大家常报的那几种,DNS 查询失败,浏览器每打开一个页面都卡住,连接超时而 Wi-Fi 图标满格。网络没问题,是流量被交给了一个答不上来的过滤器。

    launchd 任务是第二种失败。删掉可执行文件并不会注销那条拉起它的任务,只是把一个跑得动的服务变成了每次启动都失败的服务,任务如果配成了保持存活,还会被反复重试,「卸载完之后风扇开始狂转」的反馈就是这么来的。反过来同样成立,任务还加载着的时候删掉 plist,launchd 会一直留着这条任务到下次重启,磁盘上却已经什么都没有了。特权助手和配置描述文件活下来的道理一样,而一份带软件载荷的描述文件,会把你删掉的东西重新装回来。

    应用包已经被移进废纸篓,而网络过滤配置、已加载的守护进程、特权助手和配置描述文件全都活了下来,造成 DNS 失败、反复重启的循环,以及被重新装回来的软件。
    一款安全产品卸到一半会出的每一种症状,都能追回到某条注册记录,它活得比你删掉的那个文件更久。

    难卸是一个设计决定

    安全软件如果随便哪个进程都能悄悄卸掉,它就一点价值都没有,有能力的恶意软件第一件事就是干掉盯着自己的那个东西。所以 macOS 把生命周期的两端都放到后台进程够不着的地方,激活要一个真人在设置里点「允许」,停用则要由拥有该扩展的应用发起一次请求。点允许的位置,Apple 的提示说明页指向 macOS 15 及以后的登录项与扩展,更早的版本在隐私与安全性里。这份阻力就是设计本身在起作用,并没有一串藏起来的 rm 命令,能算「真正的卸载」。

    铁律:先跑厂商自带的卸载器

    永远如此,而且要排在动任何别的东西之前。只有承载它的那个应用能为自己的扩展提交停用请求,只有保存了那份过滤配置的应用能把它从 Network Extension 偏好设置里删掉,也只有厂商自己的工具清楚,停止顺序一旦搞错,哪个组件会把别的组件重新装回来。第三方卸载工具拿不到这些句柄,所以残留扫描器,包括 Mole,管的是厂商工具跑完之后剩下的东西,替代不了它。

    如果你已经把应用拖进了废纸篓,用文件 > 放回原处把它放回去,打开它,用它自己的卸载器。下面各节讲的是每家厂商把卸载器放在哪。

    每家厂商的卸载器在哪

    下面每个链接都指向厂商自己的支持站,最新步骤以那里为准。支持页面会挪位置,两边说法不一致时,跟着页面走,不要跟着这段摘要走。

    McAfee

    卸载器已经在 Mac 上了,就在应用程序里,名字随产品而定,Total Protection 和 LiveSafe 用的不是同一个。McAfee 的这篇文章要求以管理员身份登录,退出每一个 McAfee 应用,然后打开前往 > 应用程序双击那个卸载器。有两步能说明为什么要照着读、别自由发挥,它提醒 macOS 弹出系统扩展提示时要点允许,而且把重启写成了最后一个编号步骤,不是一句建议。程序坞上可能会残留一个已经失效的图标,得手动拖走。

    Norton

    同样是应用程序里已有的一个独立卸载器。Norton 的卸载页走的是前往 > 应用程序,双击 Norton Uninstaller,然后「输入管理员账户密码,点击 Install Helper」,再输一次密码,最后 Finish。安装助手这一步是卸载器拿权限的地方,它得靠这份权限去拆自己那些系统级组件。

    Avast

    应用内卸载,它的页面一开头就把最省事的那种替代做法先排除掉了:「把 Avast Security 拖进废纸篓或者使用 Clean My Mac,都不会完整卸载这个应用。」文档给的路径是菜单栏里的 Avast Security > Uninstall Avast Security,点 Continue,然后输入 Mac 开机密码并点 Install Helper。同一个卸载器也放在应用程序里,叫 Avast Security Uninstaller,应用打不开的时候用它。

    Bitdefender

    是一个专门的卸载程序,不是拖进废纸篓。卸载页要求打开 Bitdefender 文件夹,双击 Bitdefender Uninstaller,勾选产品,点 Uninstall,再输入管理员用户名和密码。同一轮还会问要不要一并删掉 Bitdefender VPN,不打算继续用就点同意,那个组件自己也注册了一个网络扩展。

    Malwarebytes

    一个应用内的菜单项。卸载文章让你走菜单栏的 Help > Uninstall Malwarebytes,确认一次,再输 Mac 密码。这一类里少见的是,同一页也接受直接用访达删除,厂商等于替自己占的那点地方表了个态。旧的 support.malwarebytes.com 卸载文章现在会跳转,用 help.malwarebytes.com 那一页。

    Sophos

    两款产品,两个答案。面向消费者的 Sophos Home 用一个独立应用 Remove Sophos Home,从聚焦里启动。那一页对另一种做法说得毫不客气:「不要把 Sophos Home 拖进废纸篓,那样并不会卸载这个程序。」它会装一个助手,问你要密码,还需要重启。同一页附了一节可选内容,讲卸载之后怎么再移除 Sophos 的系统扩展,那套流程把 systemextensionsctl uninstall 夹在关闭和重新开启系统完整性保护之间。边界在哪,这一句说得最清楚,哪怕是厂商自己的卸载器,也不总能把自己的扩展一并带走。这些步骤是可选的,厂商自己就这么标的,系统完整性保护值得一直开着。

    面向企业的 Sophos Endpoint 用启动台里的 Remove Sophos Endpoint,但文档加了一道门:「如果防篡改保护已开启,你需要先关闭它才能卸载 Sophos Endpoint。」这需要 Sophos Central 管理员,或者存在那个控制台里的单机密码,公司发的 Mac 上,这件事轮不到用户自己做。

    Kaspersky

    应用内,走支持面板。卸载页走的是 Help > Support,Uninstall,再点一次 Uninstall,然后输入管理员凭据,并且提醒你 Chrome 和 Firefox 的扩展会比应用活得更久。Kaspersky 还发布了一个独立的清除工具 kavremover-mac,应用内那条路走不通时用它。两个页面都标着 2024 年的日期,所以要对着自己的版本再确认一遍。

    如果 Mac 受管理,答案在 IT 那边

    在这件事上花掉一整晚之前,先确认这个决定是不是轮得到你做:

    profiles status -type enrollment
    profiles list
    

    第一条不需要管理员权限就能打印 DEP 和 MDM 的注册状态,第二条列出为你这个用户安装的配置描述文件,同样的信息也出现在系统设置 > 通用 > 设备管理里。Apple 的设备管理指南把后果说得很直白:「有些描述文件只能由这台 Mac 的系统管理员移除。如果你无法移除某个描述文件,这台 Mac 可能是受管理的电脑。」

    在受管理的 Mac 上,安全软件是那套管理的一个载荷。你在本地删掉,描述文件会把它装回来;想在本地关掉防篡改保护也做不到,密码在一个你进不去的控制台里。找 IT 把它取消分配。

    怎么验证真的卸干净了

    半卸载在这一步抓得住,代价也低。要在厂商卸载器跑完、Mac 重启之后再做,因为下面好几项检查只有开过一次机才说真话。

    1. 系统扩展。

    systemextensionsctl list
    

    在一台什么都没装的 Mac 上,输出是一行 0 extension(s)。否则每一行会写出团队标识符、扩展的 bundle 标识符、版本,以及方括号里的状态。哪一行还带着刚删掉那家厂商的标识符,就说明停用没走完。这个工具确实提供 systemextensionsctl uninstall <teamID> <bundleID>,有些厂商也正是为这种情况写了文档,但只有厂商页面让你用的时候才去用它。

    2. launchd 注册记录。 在三个位置里找厂商的标签,再问 launchd 实际加载了什么:

    ls -la /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgents
    launchctl list | grep -i vendorname
    sudo launchctl list | grep -i vendorname
    

    两条 launchctl list 答的是不同问题,第一条覆盖你的登录会话,第二条覆盖 root 守护进程所在的系统域。一个 plist 残留却没有对应的已加载任务,说明它是陈旧文件;有已加载任务却没有 plist,说明这台 Mac 需要重启一次;两边都有,说明软件还在跑。Mole 把这三个位置合成一份清单展示,就是下一节的内容。

    3. 网络过滤器。 注册过的内容过滤器会出现在系统设置 > 网络的「过滤器」条目里,没有条目就说明什么都没登记。应用都没了还留在列表里的那个,正是断你网的元凶。

    4. 登录项与扩展。 打开系统设置 > 通用 > 登录项与扩展,登录列表和下面的后台项都要读一遍,厂商组件在这里比应用活得久是常事。

    5. 正在运行的进程。 在活动监视器里搜厂商名,并从显示菜单切到所有进程,这样 root 所有的守护进程才会包含进来。重启之后搜出来是空的,这才算数。

    6. 安装记录。 pkgutil --pkgs | grep -i vendorname 会说出安装程序写了什么,等活跃组件都清掉之后,它能给你一批路径,值得再去 ~/Library/Application Support 底下核对一遍。

    前三项检查干净,这个产品就已经离开这台机器了,剩下的只是磁盘空间,不再是行为。

    Mole 在这件事里做什么,又拒绝做什么

    一个卸载审核界面,某个应用被展开,显示它的应用包以及 ~/Library/Application Support 和 ~/Library/HTTPStorages 下的残留项,每一项带大小和复选框,底部是删除按钮。
    一次卸载会碰到的每一项,都在任何东西移动之前连着路径和大小列出来。低置信度的行默认不勾选,所以默认动作永远是更小的那个。

    Mole 的「软件」页把应用清单和启动项放在同一屏,所以一款产品注册的启动代理、守护进程和登录项,就摆在注册它们的那个应用旁边,各自带着真实路径。

    对于残留,Mole 按 bundle 身份匹配而不是按名字,它认识的系统级路径就是上面那些:/Library/LaunchDaemons/<bundle-id>.plist、/Library/LaunchAgents/<bundle-id>.plist、/Library/PrivilegedHelperTools/<bundle-id>,以及 /private/var/db/receipts 下的安装记录。每一个系统级匹配都是「待审核」置信度,默认不勾选,你读完每条路径再逐个勾上,而不是从一份预先勾好的清单里往下取消。删除进废纸篓,出了错是拖回来,跳过项和失败项都会报出来,全部在本地跑。

    有两处拒绝比上面这些都重要。Mole 会扫 /Library/SystemExtensions,看有没有扩展属于正在卸的这个应用,找到就给一条提示,点名那个扩展,说明它可能在应用删掉之后还留着。它不会去尝试停用,它做不到,那次请求必须由拥有它的应用发出。还有一类厂商产品,卸载被锁死、受管理,或者拆着卸就会出事,包括 ESET、CrowdStrike、SentinelOne、Jamf、Palo Alto GlobalProtect 和 Cisco Secure Client,Mole 干脆拒绝卸载,直接指向厂商官方的卸载器。

    正是这条边界让这一页其余内容站得住,所以说得毫不含糊,Mole 不是恶意软件处置,不是备份,也替代不了软件自带的卸载器,尤其是带驱动、VPN 组件或系统扩展的那些。对杀毒软件来说,Mole 的活是从厂商卸载器跑完之后才开始的。在终端里,免费开源的 Mole CLI 用 mo uninstall 做同样的审核,每条破坏性命令都支持 --dry-run,可以先把路径清单读一遍。

    常见问题

    删掉杀毒软件之后网就断了,怎么办

    几乎可以肯定是一份网络过滤配置活得比应用久。它住在 Network Extension 偏好设置里,由框架独立于应用包来管理,所以删掉应用之后,剩下一个过滤器还开着,它指向的提供程序已经不在了。去系统设置 > 网络看有没有「过滤器」条目,再用 systemextensionsctl list 看有没有活下来的扩展。解法是把厂商的产品装回来,跑它自己的卸载器。为了删掉一个软件先把它装回来,是别扭,但这确实是最短的路。

    我能不能直接删掉 /Library/LaunchDaemons 里的 plist

    不能当第一步做,能当最后一步做的情况也很少。那里的一个 plist 是一条向 launchd 注册的记录,任务还加载着的时候删掉文件,任务会一直跑到下次重启,磁盘上却没有任何东西能解释它。等厂商卸载器跑完、Mac 重启过、sudo launchctl list 里也搜不到对应的已加载任务,那个残留的 plist 才算没作用的遗留物。软件还装着的话,它的 plist 永远不要删。

    厂商卸载器要了密码然后失败了,接下来怎么办

    查三件事。这台 Mac 是不是受管理的,如果是,挡住你的是防篡改保护或者某份描述文件,答案在 IT 那边。产品是不是还在跑,有些卸载器在自己的守护进程还占着文件时收不了尾,重启再试一次。还有卸载器是不是当前版本,有些厂商会另外发一个清除工具,跟应用内那条路是分开的。三件事都干净的话,下一站是厂商支持。

    检查是否卸干净之前需要重启吗

    需要。扩展的拆除和 launchd 的注销都要跨一次开机才完成,所以卸载器刚跑完就去查,可能查出一批本来就已经排队要消失的残留,也同样可能漏掉一个还会回来的守护进程。

    延伸阅读

    • 怎么彻底卸载 Mac 应用,讲通用顺序、bundle 标识符和共享容器。
    • 卸载 Mac 应用后怎么清理残留,讲活跃组件确认清掉之后的残余。
    • Mac 清理工具永远不该删什么,是同一种判断的另一面。

    Mole 是一个原生 Mac App,腾出空间、管理 App、维护系统、看清磁盘和实时状态都在里面,一次买断不用订阅。

    看看 Mole

    继续阅读

    • 卸载应用如何在 Mac 上彻底卸载应用,又不误删数据约 5 分钟
    • 卸载应用Mac 应用卸不掉:七种成因,每种一个症状约 10 分钟
    • 卸载应用从 Mac 卸掉 Java,别弄断工具链约 3 分钟

    Mole · 鼴

    Mac 清理、软件与状态工具。

    v1.13.0 (166) · 更新日志

    支持

    帮助 功能文档 更新日志

    法律

    服务条款 隐私政策 退款政策

    资源

    博客 命令行工具 合作推广

    联系

    Twitter hi@mole.fit

    请认准官网 mole.fit · 避免下载到来路不明的版本

    命令行版继续免费开源。