用 socketfilterfw 控制 macOS 防火墙
macOS 图形界面防火墙的底层是 /usr/libexec/ApplicationFirewall/socketfilterfw——完全可脚本化。
运行 `/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 on02作用说明
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 off05来源
- socketfilterfw — macOS Command Reference依据: Command reference for socketfilterfw flags.
- Block connections to your Mac with a firewall依据: Describes the macOS application firewall, per-app rules, and stealth mode that socketfilterfw configures.
最后验证: 2026-09-17 · 分类: 安全与隐私