每台 Mac 都自带防火墙,但大多数人从未打开过它的设置。本指南说明它在 macOS 14 Sonoma、macOS 15 Sequoia 和 macOS 26 Tahoe 的“系统设置”中的位置、每个选项的作用,以及如何让某个特定 App 通过。步骤和选项名称来自 Apple 的《macOS 使用手册》和《Apple 平台安全保护》指南(见资料来源),界面标签于 2026 年 10 月 4 日在一台运行 macOS 26.7 的 Mac 上核对过。最后一部分讨论这款防火墙从一开始就不是为之设计的事情,因为关于 Mac 防火墙的大多数困惑正源于此。
内置防火墙是什么
Apple 称之为应用防火墙。你列出的不是端口,而是 App 和服务,并逐一决定它们是否可以接受来自网络的连接。Apple 的《平台安全保护》指南用四句话描述其控制项:无论 App 为何,阻止所有传入连接;自动允许内建软件接收传入连接;自动允许已下载并签名的软件接收传入连接;以及根据用户指定的 App 添加或拒绝访问。第五个选项可以让 Mac 不回应 ICMP 探测和端口扫描请求。这些全都涉及从外部到达你的 Mac 的流量。防火墙面板在关闭时自己也是这么说的:“这台电脑的防火墙当前已关闭。允许所有到这台电脑的传入连接。”
如何在 Mac 上打开防火墙
Apple 为 Sonoma、Sequoia 和 Tahoe 记录的路径相同。
- 选取苹果菜单 ›“系统设置”。
- 点按边栏中的“网络”。
- 点按“防火墙”。你可能需要向下滚动才能看到它。
- 打开“防火墙”。
- 若要更改其他设置,请点按“选项…”,打开或关闭相应设置,然后点按“好”。
开关打开后,面板会显示:“防火墙已打开并设置为防止未经授权的应用程序、程序和服务接受传入连接。”这句话准确描述了其范围:未经授权的 App 接受传入连接。你也可以在“终端”中使用 macOS 自带的命令行工具确认其状态,而不更改任何设置。
# read the firewall state; no administrator password needed to read
/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
Firewall is enabled. (State = 1)
/usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
Firewall stealth mode is off在由雇主或学校管理的 Mac 上,防火墙可能由配置描述文件设置。这种情况下,相关设置会显示为锁定状态,命令行工具也会回应称,在受管理的 Mac 电脑上无法从命令行修改防火墙设置。
逐一说明“选项…”
- 阻止所有传入连接:阻止除 DHCP 和 IPSec 等基本互联网服务所需之外的所有传入连接。Apple 提醒,这也会阻止共享服务,例如文件共享、屏幕共享和媒体共享。
- 自动允许内建软件接收传入连接:由有效证书颁发机构签名的内建 App 和服务会被加入允许列表,而不会询问你。
- 自动允许已下载的签名软件接收传入连接:对由有效证书颁发机构签名的已下载 App 和服务作同样处理。
- 启用隐身模式:用 Apple 的话说,它会阻止你的 Mac 回应可能被用来暴露其存在的探测请求。
是否应该打开隐身模式?
隐身模式会让 Mac 忽略使用 ICMP 的 ping 等测试请求以及端口扫描探测。这样,同一网络上的其他设备在检查你的 Mac 是否存在时就得不到回应。对于会连接公共 Wi-Fi 的笔记本电脑,这是一个合理的默认设置;它也不会妨碍你自己的 App 正常工作,因为它只涉及来自外部的未经请求的请求。如果你依赖其他设备 ping 这台 Mac,例如家庭监控工具,那么开启隐身模式后,该工具可能会报告 Mac 无法访问。
如何允许某个 App 通过 Mac 防火墙
当防火墙打开、而某个尚未列入列表的 App 开始监听连接时,macOS 会询问:“你想要应用程序‘App 名称’接受传入网络连接吗?”并提供“拒绝”和“允许”两个按钮。你的回答会保存在“选项…”下的列表中。若要自行添加 App,或更改之前的回答:
- 打开“系统设置”›“网络”›“防火墙”,然后点按“选项…”。防火墙关闭时该按钮不可用。
- 点按应用程序和服务列表下方的添加按钮(+),然后选择该 App。
- 在该 App 旁边选取“允许传入连接”或“阻止传入连接”。
- 点按“好”。
Apple 补充了两点提醒。通过防火墙阻止某个 App 的访问,可能会干扰该 App 或依赖它的其他软件;而某些未出现在列表中的 App 仍可能通过防火墙获得访问权限,包括系统 App、服务和进程,以及由其他 App 自动打开的经过数字签名的 App。因此,该列表并不是所有可以接受连接的程序的完整清单,而只是迄今为止所记录决定的清单。
macOS 防火墙拦不住什么
上述任何设置,以及 Apple 针对受管理 Mac 的防火墙配置描述文件中的任何键,都不会限制传出连接。你安装的 App 可以在任何时候连接到任何国家的任何服务器,而内置防火墙不会被询问。这是有意为之的设计选择,而不是缺陷:现代 Mac 所做的大部分事情,从同步邮件到检查更新,都是传出的,入站过滤器可以把不请自来的访问者挡在门外,又不会破坏这些功能。
其后果是,如今在个人 Mac 上最重要的风险都是向外流动的。窃取密码的程序把收集到的东西发送到它选定的服务器。带有分析库的 App 向第三方上报数据。收到恶意指令的 AI 智能体上传了一个文件。在每种情况下,连接都是从你的 Mac 发起的,因此入站防火墙无论是否开启隐身模式,都看不到介入的理由。macOS 还包含更底层的 pf 包过滤器,它可以按地址和端口拦截传出流量,但它不知道是哪个 App 打开了连接;我们的 pf 相关文章解释了为什么它不是一款实用的按 App 防火墙。
用 FireAI 增加出站控制
HisnLabs 开发的防火墙 FireAI 覆盖了内置防火墙留下的传出一侧。它作为 Apple Network Extension 内容过滤器运行,这是 Apple 为此目的提供的框架,因此 macOS 会在每个新连接打开之前询问它,并提供 App 身份、远程主机或 IP 地址、端口和协议。App 通过代码签名而非名称来识别,因此被篡改的知名 App 副本不会继承该 App 的规则。
当某个 App 第一次尝试访问你没有设置规则的目的地时,FireAI 会暂停这一个连接并询问你,显示目的地,并在能够判断时显示其所在国家和公司。你可以选择仅此一次、直到 App 退出、直到重新启动或始终允许或拦截,作用范围可以是一个地址、整个网站、一个 IP 地址或任何地方。也可以预先按 App 编写规则,依据网站、域名、IP 地址或端口。FireAI 同样会对传入连接执行规则,但从不就传入连接发出询问,因此请保持 Apple 防火墙开启来负责这项工作:两者是互补关系,而不是二选一。
简要检查清单
- “系统设置”›“网络”›“防火墙”:打开。
- “选项…”:使用公共 Wi-Fi 的笔记本电脑开启隐身模式。
- 检查“选项…”下的 App 列表,移除不再使用的 App。
- 处于不受信任的网络上且不需要共享服务时,打开“阻止所有传入连接”。
- 对于传出连接,请使用出站防火墙,因为内置防火墙不会过滤它们。
FireAI 和 HisnLabs 在其中扮演的角色
Apple 的防火墙决定谁可以连接到你的 Mac;FireAI 决定你的 App 可以连接到哪里。保持前者开启,并免费试用后者 17 天。
FireAI 是 HisnLabs 自己的产品:一款直接在 Mac 上运行的 AI 防火墙。它用通俗易懂的语言显示你的应用建立的每一个连接,并让你决定哪些数据可以离开你的 Mac——它的 AI 在本地运行,因此你的流量永远不会发送给我们或任何其他人。HisnLabs 的安全研究团队负责让这些判断保持准确:归类哪些域名只是普通的遥测、哪些属于真正的服务,追踪连接背后的国家和网络,并用真实的流量模式训练设备端模型(FireAI Pilot 功能)——这一切都不会离开你的 Mac。
你可以阅读它背后的技术决策,或试用 FireAI 17 天:HisnLabs 出品的 FireAI。
