用 socketfilterfw 控制 macOS 防火墙

macOS 图形界面防火墙的底层是 /usr/libexec/ApplicationFirewall/socketfilterfw——完全可脚本化。

macOS应用防火墙防火墙中风险
运行 `/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate` 查看状态,用 `--add <应用>`、`--setstealthmode on`(需 sudo)管理规则。

01命令

命令
$ /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/MyApp.app
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on

02作用说明

macOS 内置的应用防火墙与 pf 是独立的两层,其命令行位于令人意外的路径 `/usr/libexec/ApplicationFirewall/socketfilterfw`。关键操作:`--getglobalstate`/`--setglobalstate on|off` 开关防火墙,`--add`/`--remove` 管理单应用规则,`--setstealthmode on` 让 Mac 忽略未经请求的探测(包括 ping)。`--listapps` 列出所有有规则的应用,可借此发现阻塞所需端口的旧条目。

03风险

风险中风险
!注意: 应用防火墙默认放行已签名应用;为改名或重签名的二进制添加规则会产生行为不一的重复条目。

04撤销

撤销
$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off

05来源

最后验证: 2026-09-17 · 分类: 安全与隐私