若Mac应用网络连接被防火墙阻止,需将其添加至白名单:一、通过系统设置启用防火墙;二、在防火墙选项中点击“+”手动添加.app应用;三、对未签名应用可用终端命令socketfilterfw添加;四、用--listapps验证并--unblockapp解除阻止;五、SIP保护下需复制程序到非保护路径再添加。

如果您在Mac上运行某个应用时发现其网络连接被系统防火墙阻止,则可能是该应用未被添加到防火墙白名单中。以下是将特定应用添加到macOS防火墙白名单、允许其联网的具体操作步骤:
一、通过系统设置启用并配置防火墙
macOS内置的防火墙默认处于关闭状态,需先启用才能进行应用级规则配置。启用后,系统会自动监控进出流量,并对未授权应用弹出提示。
1、点击屏幕左上角苹果图标,选择“系统设置”。
2、在左侧边栏滚动到底部,点击“隐私与安全性”。
3、向下滚动至“防火墙”区域,点击右侧的“详细信息…”按钮(若显示“关闭防火墙”,先点击开启)。
4、在弹出窗口中,确保“开启防火墙”开关已打开。
二、手动添加应用到防火墙允许列表
启用防火墙后,部分应用可能不会自动出现在允许列表中,需手动将其可执行文件路径添加进去。系统仅识别.app包内的主可执行文件或已签名的二进制程序。
1、回到“防火墙”设置页面,点击“防火墙选项…”。
2、点击左下角的“+”号按钮。
3、在弹出的文件选择窗口中,导航至应用程序所在位置(通常为/Applications),选中目标应用(如“Chrome.app”或“Postman.app”),点击“添加”。
4、确认该应用右侧的状态显示为“允许传入连接”,表示已成功加入白名单。
三、使用终端命令强制添加未签名应用
某些开发工具或未经过Apple公证的应用可能无法通过图形界面添加。此时可通过终端向防火墙规则库直接写入例外项,绕过GUI限制。
1、打开“终端”(可在“访达→前往→实用工具”中找到)。
2、输入以下命令并回车,以查看当前防火墙状态:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
3、若返回“Firewall is disabled”,先启用:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
4、添加指定应用(以路径为准,例如自定义脚本位于~/Desktop/myapp):
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add ~/Desktop/myapp
5、允许该应用传入连接:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp ~/Desktop/myapp
四、验证应用是否获得网络权限
添加完成后,需确认应用实际能建立网络连接。macOS防火墙会在首次尝试连接时触发权限请求,若此前已拒绝,需清除旧记录重新触发。
1、在终端中执行:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps,检查目标应用是否出现在输出列表中。
2、若列表中对应应用状态为“blocked”,执行:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /path/to/app。
3、重启该应用,观察是否仍弹出“xx想要接收来自网络的连接”提示;若不再弹出且功能正常,则表示白名单生效。
五、处理SIP保护导致的添加失败
macOS启用系统完整性保护(SIP)后,部分安全目录下的进程(如/usr/bin下的工具)无法被手动添加进防火墙白名单。此时需改用替代路径或禁用SIP(不推荐)。
1、确认目标程序是否位于受保护路径:运行which program_name(如which curl),若返回/usr/bin/curl,则属于SIP保护范围。
2、创建符号链接副本至非保护路径:
sudo cp /usr/bin/curl /usr/local/bin/curl-allow
3、在防火墙选项中添加/usr/local/bin/curl-allow而非原始路径。
4、后续调用时使用新路径:/usr/local/bin/curl-allow -I https://example.com。










