Como posso descobrir se uma porta está aberta ou não?

22

Eu instalei o servidor Apache no meu computador com Windows 7. Consegui exibir o index.php padrão digitando o link na linha de endereço do meu navegador.

No entanto, ainda não consigo ver essa página digitando o endereço IP do meu computador (nem localmente (do mesmo computador) nem globalmente (de outro computador conectado à Internet)).

Foi-me dito que eu precisava abrir a porta 80. Eu fiz isso (de uma forma descrita como aqui ) mas não resolveu o problema.

Primeiro, gostaria de verificar quais portas estão abertas e quais não estão. Por exemplo, não tenho certeza de que minha porta 80 estava fechada antes de tentar abrir. Eu também não tenho certeza se ele foi aberto depois que eu tentei abri-lo.

Eu tentei executar um servidor web muito simples escrito em Python. Para isso usei a porta 81 e funcionou! E eu não tentei abrir a porta 81. Então, ela foi aberta por padrão. Então, se 81 é aberto por padrão, por que 80 não é? Ou é?

INFORMAÇÕES ADICIONAIS:
1. No meu arquivo httpd.conf eu tenho "Listen 80".
2. Este site diz-me que a porta 80 do meu computador está aberta. 3. Recebo respostas diferentes se eu tentar o link e o link . No último caso, o navegador (Chrome) me escreve que o link está quebrado. No primeiro caso eu recebo: Proibido Você não tem permissão para acessar / neste servidor. 4. IE escreve que "O site se recusou a mostrar esta página da Web".

    
por Roman 25.02.2010 / 17:17

11 respostas

16

Se você está apenas verificando suas portas do lado de fora. Use esta ferramenta:

link

Ele tentará se conectar ao seu endereço IP, na porta específica, e informará se ele está aberto ou fechado para o mundo externo.

Problemas locais também? Parece que o firewall do Windows 7 está te cortando. Adicione uma exceção com este tutorial ...

link

    
por 25.02.2010 / 17:27
13

A execução de netstat -a -n ou ss -a -n em um prompt de comando mostrará todas as conexões de rede abertas e as portas de escuta em sua máquina. 0.0.0.0:80 significaria que está escutando na porta 80 de todos os endereços IP (localhost e seus endereços IP público / privado), onde 127.0.0.1:80 significaria que está apenas ouvindo em localhost. Você pode adicionar -b ao comando e ele mostrará qual executável está usando essa porta. Você pode obter as mesmas informações usando o Monitor de Recursos no Windows 7, na seção Portas de escuta da guia Rede.

    
por 25.02.2010 / 18:28
5

Se você quiser ver se ele está aberto em outro servidor, você pode apenas telnet serverName 80 e ver se a sessão é aberta. Caso contrário, o servidor não está escutando ou a porta está bloqueada por um firewall.

Se ele abrir e fechar imediatamente, pelo menos no Windows 2003, o software (como o Exchange) pode não estar configurado para escutar nessa interface ou IP específico, mas está escutando em outras portas. Eu vi o IIS se comportar dessa maneira porque é estúpido, o Apache não pode.

    
por 25.02.2010 / 17:28
2

Você escreveu:

In the first case I get: Forbidden You don't have permission to access / on this server.

Embora isso possa parecer estranho, você realmente não tem problemas com portas abertas (mas com a configuração do Apache).

Essa mensagem "Proibida" vem do seu servidor Apache; significa que o seu servidor da Web é acessível a partir da Internet.

Você precisa configurar o Apache para permitir a veiculação em todos os hosts - caso contrário, eles receberão a página "Proibido". IIRC, o Apache é inicialmente configurado para permitir apenas solicitações do computador local.

Em algum lugar na sua configuração do Apache, provavelmente há uma seção como essa (o diretório real pode ser diferente):

<Directory "/home/piskvor/www">
    Allow from 127.0.0.1
    Deny from all
(...)

Se você quiser permitir que qualquer computador veja suas páginas, será necessário alterar o Deny from all para Allow from all . Veja a documentação do módulo de acesso para mais informações .

    
por 08.03.2010 / 10:43
1

Para ver as portas abertas, provavelmente você deve usar o nmap Eles têm uma versão do Windows: link

Não é suficiente se você ver sua porta 80 aberta a partir do host local - talvez algo que esteja no caminho se você tentar de outro lugar, é por isso que eu recomendo o nmap

Do cliente digitado: nmap ip-de-seu-servidor

    
por 25.02.2010 / 17:23
1

Se você quiser testar isso em sua rede local, faça o download do nmap . Se quiser ver o tempo, a porta estará acessível para o mundo exterior vai executar uma varredura em link

    
por 25.02.2010 / 17:24
0

As portas do servidor podem estar ligadas a um único endereço IP ou a todos os endereços IP disponíveis. Parece que sua instalação do Apache está configurada para se vincular apenas ao 127.0.0.1, e você precisa configurá-lo para vincular a *. Em seu httpd.conf (no diretório conf do Apache), procure por uma linha como Listen localhost:80 e mude para Listen 80 .

    
por 25.02.2010 / 17:27
0

telnet <host> <port> é seu amigo. Tem a virtude de ser instalado em praticamente todos os computadores do mundo.

Edita depois de reler a pergunta:

Aqui estão algumas dicas úteis de diagnóstico

  1. se você puder acessar o site via localhost, mas não através do seu IP local (192.168. *) de outros hosts em sua rede, provavelmente é um problema do firewall do Windows.

  2. se você puder acessar o site de outras máquinas locais, mas não da Internet para o seu IP público, é um problema de configuração do roteador / encaminhamento de porta.

por 08.03.2010 / 05:47
0

Em um prompt de comando, digite:

netstat -ano, look for 0.0.0.0:80 

... ou seu IP: 80. Isso informará se a porta 80 está aberta em sua máquina. Agora, se você quiser verificar e ver se pode acessá-lo de fora de sua rede, vai determinar se você tem algum tipo de firewall. Se precisar, você precisará encaminhar a porta 80 para o seu servidor da Web.

    
por 03.05.2013 / 20:44
0

Se você estiver no Windows, use SysInternals TCPView . Ele pode dizer qual programa está usando qual porta.

    
por 05.02.2015 / 08:45
-2

No comando DOS:

C:\Windows\system32>netstat -a -b

使用中連線

  協定   本機位址               外部位址               狀態
  TCP    0.0.0.0:80             801781-N1:0            LISTENING     [Skype.exe]
  TCP    0.0.0.0:135            801781-N1:0            LISTENING      RpcSs      [svchost.exe]
  TCP    0.0.0.0:443            801781-N1:0            LISTENING     [Skype.exe]
...
    
por 27.12.2013 / 04:18