mac 防火墙不会为 nginx 打开

mac firewall will not opening up for nginx

我正在尝试允许连接到端口 8080 上的 mac 运行 nginx。我尝试使用 UI 来设置防火墙。还尝试使用终端 - 没有任何效果?

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/nginx/1.8.0/bin/nginx

关闭防火墙后一切正常。

如果您使用来自 brew 的 nginx,只需 运行 nginx 和 sudo 参数:

$ sudo brew services start nginx

然后防火墙要求您允许连接。

注意:如果你运行相同的命令但没有sudo,防火墙不允许连接。

守护进程模式下正常启动好像没有绑定nginx到防火墙

$ sudo nginx

以非守护进程模式启动会绑定到防火墙,MacOS 会提示您 add/deny 防火墙规则。

$ sudo nginx -g "daemon off;"

您还可以在外部连接尝试连接到 nginx 时调试防火墙日志文件

$ sudo tail -f /var/log/appfirewall.log

您希望在日志中同时看到 LISTENCONNECT

Jun 21 17:11:17 MacBook socketfilterfw[1645] <Info>: nginx: Allow TCP LISTEN  (in:0 out:4)
Jun 21 17:11:17 MacBook socketfilterfw[1645] <Info>: nginx: Allow TCP CONNECT (in:1 out:0)