O Firewall do Windows tem a porta 80 aberta, mas impede que o Apache faça conexões

11

Eu tenho uma máquina Windows 7 que serve poucas páginas (mas importantes!). Eu tenho uma exceção que permite qualquer tráfego para a porta 80 *, mas o Apache 2.2 ainda não pode servir páginas (embora eu possa vê-las na própria máquina). Se eu desativar completamente o Firewall do Windows, posso executar ping na caixa e carregar as páginas.

O que mais eu preciso configurar para que o Apache possa fazer seu trabalho?

* Na verdade, o mesmo acontece mesmo que eu mude a exceção para "todas as portas" em vez de apenas 80.

Charles
fonte
3
1. Pare de usar o ping como uma ferramenta de teste de serviço. Se você pode executar ping no host ou não, é irrelevante se o site está ou não sendo executado e acessível. 2. Qual perfil de rede está ativo no firewall do Windows e a qual perfil de rede sua regra está vinculada?
precisa saber é o seguinte
@ joeqwerty: mencionei ping apenas para fornecer informações adicionais.
Charles

Respostas:

10

Se a porta 80 está ou não aberta no seu firewall, não significa que o ping começará a funcionar se o Apache estiver sendo executado corretamente. O ping usa o ICMP, que é um protocolo próprio que precisa ser aberto no firewall para receber respostas de ping da sua máquina. Portanto, não conte com o ping para verificar se a sua configuração apache / firewall está funcionando.

Em resposta à sua regra de firewall para tcp 80, vá para as propriedades da sua regra e verifique se todas as três caixas de seleção (Domínio, Privado, Público) estão marcadas e, se não, não. insira a descrição da imagem aqui

Aqui está um HOWTO com as etapas exatas que você precisa executar para abrir a porta 80 no Windows 7: link

Atualizar:

Verifique também se você não está bloqueando o processo apache com o Firewall do Windows.
1. Vá para o Painel de controle
2. Selecione Sistema e segurança
3. Na seção Firewall do Windows, selecione Permitir um programa pelo Firewall do Windows .
insira a descrição da imagem aqui
4. Desmarcar a caixa à esquerda do nome do aplicativo impede que ele acesse os recursos de rede, enquanto a verificação permite o acesso.
insira a descrição da imagem aqui
Se o Apache não estiver listado, clique no botão Permitir outro programa… para adicioná-lo e marque as caixas em Casa / Trabalho e Público.

George Tasioulis
fonte
Todos os três foram verificados. O site não será aberto em um navegador (exceto no próprio servidor).
Charles
1
@ Charles: Nesse caso, faça estas 5 coisas: 1. Habilite o log do firewall na máquina Windows 7. 2. Instale um programa de captura de pacotes na máquina Windows 7. 3. Inicie uma captura. 4. Tente navegar no site a partir de outra máquina. 5. Interrompa a captura e inspecione-a e o log do firewall em busca de pistas sobre o que está acontecendo.
Joeqwerty
Tem certeza de que criou a regra no Inbound Rulespainel esquerdo?
George Tasioulis
@ Charles, por favor, verifique minha atualização.
George Tasioulis
1
@ George: É isso. A permissão "Monitor Apache Servers" (além da exceção da porta 80) fez com que funcionasse.
Charles
2

Verifique o serviço "Cache de ramificação" e pare-o se estiver em execução.

Sergey
fonte
1

Se a desativação do firewall resolver completamente o problema, mas suas regras de exceção não, então arriscaria dizer que suas exceções estão com defeito.

Segundo a Microsoft , a primeira etapa na solução de problemas de firewall é verificar o perfil ativo (público, privado ou domínio).

A primeira etapa na solução de problemas do Firewall do Windows é verificar qual perfil está ativo. O Firewall do Windows com Segurança Avançada é um aplicativo com reconhecimento de local de rede. À medida que os locais de rede aos quais o computador está conectado são alterados, o perfil do Firewall do Windows muda. Os perfis descrevem as configurações e regras do Firewall do Windows que são aplicadas, dependendo do tipo de local da rede das conexões de rede ativas.

Portanto, uma possibilidade é que você tenha feito a regra certa, mas com o perfil errado.

Espero que ajude.

Somantra
fonte
Bom pensamento, +1. Esse não é o meu problema, mas pude ver alguém cometendo esse erro.
Charles
0

Seu httpd.conf provavelmente está se restringindo a clientes apenas em host local ou sub-rede local.

No seu conjunto httpd.conf:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

e possivelmente também este:

<Directory "E:/Apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Allow from all
</Directory>
djangofan
fonte
Não é o problema, porque se eu desligar o firewall, o problema desaparece. (Além disso, antes de atualizar para o Win7, o mesmo httpd.conf funcionava bem por anos.)
Charles
0

Seu firewall não permite que nenhuma nova conexão compartilhe informações sem o seu consentimento. A única coisa a fazer é dar seu consentimento ao seu firewall.

  1. Vá para as configurações do firewall no painel de controle
  2. Clique em Configurações avançadas
  3. Clique em Regras de entrada e adicione uma nova regra.
  4. Escolha 'Tipo de regra' para porta.
  5. Permitir isso para todos os programas.
  6. Permita que esta regra seja aplicada a todos os perfis, como Domínio, Privado, Público.
  7. Atribua um nome a esta regra.

É isso aí. Agora outro PC e celular conectados na mesma rede podem acessar os sites locais. Vamos começar o desenvolvimento.

Surjeet Verma
fonte