Firewall do Mac bloqueia nginx (porta 80) do lado externo

10

Eu instalei o nginx usando as portas e o iniciei com o sudo. Acessar a página de boas-vindas do nginx do localhost funciona perfeitamente, no entanto, acessá-lo de um computador externo falha.

Fazer um nmap no computador a partir do exterior revela

80/tcp   filtered http

Então, claramente, o firewall do mac está bloqueando a porta. Em seguida, prossigo para adicionar o executável nginx à lista de exceções do firewall, no entanto, o nmap ainda é exibido como a porta 80 sendo filtrada e não consigo acessar a página da Web. O binário exato que está na lista é / opt / local / sbin / nginx que, ao meu conhecimento, parece correto

Alguma idéia do que devo fazer? Obrigado!

P.S. Desligar o firewall me permite acessar o site a partir do mundo externo, mas isso não é uma solução ideal.

    
por Alex Ionescu 14.12.2012 / 10:30

5 respostas

10

Isso funcionou para mim (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

Quando tentei fazer isso através do symlink (para evitar refazer este processo quando o nginx é atualizado), recebi o seguinte erro: O aplicativo não faz parte do firewall depois de correr:

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/bin/nginx
    
por 25.11.2013 / 21:58
2

Estou tentando descobrir isso há muito tempo, fazendo o seguinte no terminal:

$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --remove /usr/local/Cellar/nginx/1.10.0/bin/nginx
Application at path ( /usr/local/Cellar/nginx/1.10.0/bin/nginx ) removed from firewall

$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/nginx/1.10.0/bin/nginx
The application is already a part of the firewall

$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/Cellar/nginx/1.10.0/bin/nginx
Incoming connection to the application is permitted

E pareceu resolver o problema.

Eu também arrastei o aplicativo nginx para a lista de aplicativos aprovados no firewall do OS X.

    
por 16.06.2016 / 21:21
0

Eu me deparei com esse mesmo problema. Eu suspeito que isso tenha a ver com o modelo de processo mestre / trabalhador do nginx confundindo a implementação do appfirewall da Apple.

A solução que encontrei é dizer ao appfirewall para permitir o processo nginx:

$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw -t nginx

Não me lembro se isso persiste entre as reinicializações ou não. Se isso não acontecer, crie uma lista de inicialização em / Library / LaunchAgents para fazer isso na inicialização, se desejar.

    
por 05.01.2013 / 18:37
0

altere seu $ PATH

deixe o sistema encontrar o nginx em /usr/local/Cellar/nginx/nginx-xx/bin/nginx em primeiro lugar

    
por 08.10.2014 / 13:17
0

Estou no El Capitan (10.11.6). Você pode excluir manualmente nginx do firewall usando a GUI. Isso resolveu para mim.

Primeiro, vá para as Preferências do Sistema. Em seguida, vá para Segurança & Privacidade e clique na guia Firewall.

Clique no botão "Opções de firewall" e adicione nginx como um aplicativo excluído aqui:

O Nginx estava localizado em /usr/local/Cellar/nginx/1.10.3/bin/nginx para mim. Eu não podia navegar para isso no explorador de arquivos em Preferências do Sistema, então, para contornar isso, eu fiz um atalho para nginx na minha área de trabalho e selecionei isso.

    
por 28.03.2017 / 18:40