macos应用级防火墙无法真正“一键全管”,但可通过socketfilterfw命令行工具批量执行添加、阻止、清空、验证等操作;它不支持图形界面交互,但适合脚本化部署,所有命令基于apple官方框架,兼容ventura至sequoia系统。
macos 的应用级防火墙策略不能真正“一键全管”,但可以通过 socketfilterfw 工具批量执行关键操作,覆盖添加、阻止、清空、验证等核心管理动作。它不支持图形界面里那种带勾选框的交互式列表,但能用命令快速完成策略部署,尤其适合脚本化或批量环境。
直接列出所有已注册的应用规则
运行以下命令可查看当前被防火墙识别并管理的全部应用(含签名状态和允许/阻止标记):
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps
返回结果中每行包含应用路径、是否已签名、当前策略(Allow/Block),是后续操作的基础依据。
批量添加多个应用到防火墙管控列表socketfilterfw 不支持单条命令添加多个 .app,但可用 shell 循环实现“类一键”添加:
for app in "/Applications/Skype.app" "/Applications/Zoom.us.app" "/Applications/Slack.app"; do sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add "$app" done
添加后默认为“允许传入连接”,如需立即阻断,再补上 --block 命令(见下文)。
统一阻止指定应用的传入连接(最常用管控动作)
对已添加的应用,逐个执行阻断更稳妥;若已知路径,可组合成一行:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --block "/Applications/Slack.app" \ && sudo /usr/libexec/ApplicationFirewall/socketfilterfw --block "/Applications/Telegram.app"
注意:--block 只影响传入连接,不影响出站——macOS 内置防火墙对出站限制有限(仅 15.3.2+ 版本在 GUI 中显示该选项,命令行暂无等效开关)。
清空全部应用规则(谨慎使用)
没有“一键删除所有”的原生命令,但可通过重置防火墙全局状态间接清除用户添加项:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
此操作会恢复为默认策略:仅自动放行已签名系统软件,用户手动添加的应用条目将丢失。如需保留基础规则,建议先用 --listapps 记录,再用 --remove 逐个清理。
验证策略是否生效的可靠方式
别依赖界面刷新,终端验证最准:
# 查看防火墙总开关 sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate # 查看 block-all 模式是否启用(即“阻止所有传入连接”) sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getblockall # 查看隐身模式状态 sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
三项返回均为 enabled 或 on 才表示对应策略已激活。
这些命令全部基于 Apple 官方框架 socketfilterfw,无需安装第三方工具,兼容 Ventura 至 Sequoia 系统,执行后即时生效,不需重启。











