如何在 Mac OS X 上通过命令行启用防火墙?

cwd*_*cwd 8 firewall command-line macos

我可以使用“安全和隐私”首选项窗格来启用和禁用防火墙,但是如何使用命令行来执行此操作defaults write

图片.png

Ans*_*ers 12

通过以下方式启用应用程序防火墙

defaults write /Library/Preferences/com.apple.alf globalstate -int 1
Run Code Online (Sandbox Code Playgroud)

(0 禁用),并重新启动服务

launchctl unload /System/Library/LaunchAgents/com.apple.alf.useragent.plist
launchctl unload /System/Library/LaunchDaemons/com.apple.alf.agent.plist

launchctl load /System/Library/LaunchDaemons/com.apple.alf.agent.plist
launchctl load /System/Library/LaunchAgents/com.apple.alf.useragent.plist
Run Code Online (Sandbox Code Playgroud)

应用防火墙可以通过/usr/libexec/ApplicationFirewall/socketfilterfw二进制进行控制。

请参阅此处了解更多信息。

请注意,应用程序防火墙与 BSD 数据包过滤器完全不同,后者可以使用ipfw命令行实用程序进行配置。

  • 您需要 `sudo` 卸载和加载守护进程 (/System/Library/LaunchDaemons/com.apple.alf.agent.plist);否则它会尝试从用户 launchd 卸载和加载它们,这将无法正常工作。但是,不要对用户代理的命令进行 `sudo`。 (2认同)