A porta está aberta, mas não pode acessá-la através do endereço IP externo

6

Eu tenho o RavenDB rodando localhost:8080. Gostaria de torná-lo acessível externamente, apenas como um teste (ignore as preocupações de segurança por enquanto).

Para fazer isso, configurei meu roteador para encaminhar porta externa 8080para porta interna 8080de 192.168.0.101(que é o endereço IP interno da minha máquina, conforme determinado pela entrada IPv4 de ipconfig /all).

De acordo com um verificador de porta externa , a porta 8080 está aberta (o IP externo está mascarado):

insira a descrição da imagem aqui

No entanto, quando vou ExternalIp:8080, não consigo conectar. Por outro lado, InternalIp:8080funciona bem.

Dado que a porta parece estar aberta, mas não consigo me conectar externamente, existem ferramentas ou maneiras de diagnosticar onde o bloqueio está acontecendo?

Informações adicionais possivelmente relevantes

  • Eu tenho o Firewall do Windows, mas desativá-lo não faz diferença.
  • O roteador é o Archer C5, o modem é o Motorola SB6121.
  • Meu ISP bloqueia apenas algumas portas e o 8080 não é um deles.
  • Meu IP externo é dinâmico, mas muda com pouca frequência, e certifiquei-me de usar o correto :)
DumpsterDoofus
fonte
11
se a porta aparecer como "aberta" para uma varredura de porta externa, você terá seus três 'P's: um processo em execução, ouvindo uma porta conhecida, com um caminho para acessá-la. Isso significa que as configurações do encaminhamento de porta e do ouvinte de serviço estão corretas e que um firewall não está bloqueando o caminho. Portanto, isso deixa a configuração de serviço interno como o vetor provável. Revise sua configuração de serviço para ver se ele controla IPs válidos, etc. Além disso, é um tiro no escuro, mas confirme se as regras de encaminhamento de porta estão apontando para o servidor correto, não para outro servidor no 8080. Por último, qual cliente você está testando?
Frank Thomas

Respostas:

10

Existem dois problemas possíveis:

1) Você precisa do RavenDB executando 192.168.0.101:8080 (ou 0.0.0.0:8080). Se estiver sendo executado no host local, não poderá ser acessado de fora da máquina.

2) Você precisa acessá-lo de fora da sua LAN ou usar um roteador que suporte hairpin. O encaminhamento de porta funciona apenas fora da LAN. Muitos roteadores fazem hairpinning automaticamente. Essa é uma prática recomendada pela RFC 5382 , mas muitos roteadores ainda não o fazem.

David Schwartz
fonte
11
Hairpinning é um ótimo ponto. Eu tinha assumido que o Op estava testando a conexão externa de fora da LAN deles, mas você está certo, não há indicação de que seja esse o caso. Boa pegada. No entanto, devo ressaltar que, se a configuração do ouvinte estiver configurada para escutar no host local, a ferramenta de verificação da porta retornará fechada, porque a porta não estará acessível a ela. @op, certifique-se de testar conexões IP externas de fora da sua LAN, a menos que você tenha um roteador de nível corporativo. a maioria dos roteadores comerciais da classe SOHO não suporta NAT hairpin.
Frank Thomas
@FrankThomas: Sim, tentei bater ExternalIp:8080na própria máquina, não em outro dispositivo, que eu acho que poderia ser chamado de "prender a si mesmo". Não sei se o roteador suporta hairpinning. Você e David estão dizendo que, com certeza, devo tentar ligar a máquina a partir de um dispositivo diferente em uma rede completamente diferente (por exemplo, do meu telefone em uma conexão sem fio em um restaurante próximo)?
precisa
exatamente. sem NAT hairpin, você não pode conectar-se à interface externa do seu roteador a partir de um dispositivo na interface interna do roteador. uma cafeteria ou outro wifi grátis seria suficiente para testá-lo (ou apenas chame um amigo para fazê-lo). Meu palpite é que, como sua porta é testada corretamente e o serviço funciona internamente para você, tudo funcionará bem.
Frank Thomas
11
Parece que o problema era contundente, pois consegui acessar a porta usando meu telefone em uma rede 3G. Obrigado!
precisa
Eu tive o mesmo problema com a configuração de um servidor ESP8266. Eu tentei o IP externo do meu PC repetidamente, sem sucesso. Depois de ler isso, tentei me conectar ao ESP8266 pelo meu telefone e funcionou.
Jossi