我正在尝试允许连接到在端口 8080 上运行 nginx 的 mac。我尝试使用 UI 来设置防火墙。还尝试使用终端 - 没有任何效果?
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/nginx/1.8.0/bin/nginx
Run Code Online (Sandbox Code Playgroud)
当我关闭防火墙时,一切正常。
如果您使用 brew 中的 nginx,只需使用sudo参数运行 nginx :
$ sudo brew services start nginx
然后防火墙要求您允许连接。
注意:如果您运行相同的命令但没有 sudo,则防火墙不允许连接。
守护进程模式下正常启动好像没有绑定nginx到防火墙
$ sudo nginx
Run Code Online (Sandbox Code Playgroud)
以非守护进程模式启动会绑定到防火墙,MacOS 会提示您添加/拒绝防火墙规则。
$ sudo nginx -g "daemon off;"
Run Code Online (Sandbox Code Playgroud)
您还可以在外部连接尝试连接到 nginx 时调试防火墙日志文件
$ sudo tail -f /var/log/appfirewall.log
Run Code Online (Sandbox Code Playgroud)
您将希望在日志中同时看到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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2608 次 |
| 最近记录: |