我正在尝试允许连接到端口 8080 上运行 nginx 的 mac。我尝试使用 UI 来设置防火墙。还尝试使用终端 - 没有任何效果?
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/nginx/1.8.0/bin/nginx
当我关闭防火墙时,一切正常。
最佳答案
以守护程序模式正常启动似乎没有将 nginx 绑定(bind)到防火墙
$ sudo nginx
以非守护程序模式启动确实会绑定(bind)到防火墙,MacOS 会提示您添加/拒绝防火墙规则。
$ sudo nginx -g "daemon off;"
您还可以在外部连接尝试连接到 nginx 时调试防火墙日志文件
$ sudo tail -f /var/log/appfirewall.log
你会想同时看到
LISTEN
和 CONNECT
在日志中: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)
关于macos - mac防火墙不会为nginx打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30380196/