必须用终端命令验证:sudo /usr/libexec/applicationfirewall/socketfilterfw --getstealthmode,返回“stealth mode is on.”才确认生效;若为off或gui显示开启但实际未生效,需先启用防火墙(--setglobalstate on),再强制开启隐身模式(--setstealthmode on)。

要确认 macOS 防火墙隐身模式(Stealth Mode)当前是否已启用,不能只看图形界面开关状态——GUI 在 Ventura 及更新系统中可能显示开启但实际未生效,必须通过终端命令验证底层配置是否真实写入。
用终端命令直接检测隐身模式状态
这一步操作起来很简单,只需一条命令即可返回明确结果。
打开“终端”应用(可在“访达”→“应用程序”→“实用工具”中找到),输入以下命令并回车:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
系统会提示输入管理员密码,输入后按回车。若返回 Stealth mode is ON.,说明隐身模式已成功激活;若返回 Stealth mode is OFF.,则尚未启用,即使系统设置里打了勾也无效。
【注意:必须使用 sudo 权限执行,普通用户权限无法读取防火墙运行时状态】
配合防火墙总开关一并验证
隐身模式依赖防火墙整体开启才能起效,单独开启隐身模式无意义。
在同个终端窗口中,紧接着运行:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
若返回 Firewall is enabled.,说明防火墙已开;若为 Firewall is disabled.,则需先启用防火墙,否则隐身模式始终不生效。
启用防火墙的命令是:sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on,执行后需再运行上一条命令确认返回 enabled。
当 GUI 设置失效时的强制启用路径
某些 macOS 版本(尤其是升级后或 M 系列芯片搭配新系统时),“系统设置→网络→防火墙→选项→启用隐身模式”开关点击无反应或状态不同步。
此时必须绕过 GUI,用终端强制写入:
第一步:确保防火墙已启用(见上一节)
第二步:执行强制开启隐身模式命令:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
第三步:立即验证是否生效:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
只要返回 Stealth mode is ON.,即表示隐身模式已真实启用——它会让 Mac 对外部 ping 请求静默丢弃、对未发起连接的端口扫描不回复 SYN-ACK、也不广播主机名,从探测层面真正“消失”。











