Ale*_*scu 10 firewall web nginx osx-mountain-lion macos
我使用端口安装了 nginx 并使用 sudo 启动它。从 localhost 访问 nginx 欢迎页面工作正常,但是从外部计算机访问它失败。
从外部在计算机上执行 nmap 显示
80/tcp filtered http
Run Code Online (Sandbox Code Playgroud)
很明显,mac防火墙正在阻止该端口。然后我继续将 nginx 可执行文件添加到防火墙例外列表中,但是 nmap 仍然显示为端口 80 被过滤并且我无法访问该网页。列表中的确切二进制文件是 /opt/local/sbin/nginx 据我所知似乎是正确的
任何想法我应该做什么?谢谢!
PS 关闭防火墙确实允许我从外部世界访问网站,但这不是理想的解决方案。
Eug*_*ene 10
这对我有用(OSX 10.9):
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/nginx/1.4.4/bin/nginx
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/Cellar/nginx/1.4.4/bin/nginx
Run Code Online (Sandbox Code Playgroud)
当尝试通过符号链接执行此操作(以避免在升级 nginx 时重做此过程)时,出现以下错误: 运行后应用程序不是防火墙的一部分:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/bin/nginx
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题。我怀疑这与 nginx 的主/工作进程模型混淆了 Apple 的 appfirewall 实现有关。
我找到的解决方案是告诉 appfirewall 允许 nginx 进程:
$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw -t nginx
Run Code Online (Sandbox Code Playgroud)
我不记得这种情况在重新启动后是否仍然存在。如果没有,请在 /Library/LaunchAgents 中创建一个启动 plist,以便在启动时执行此操作(如果您愿意)。
归档时间: |
|
查看次数: |
10744 次 |
最近记录: |