
Passei um dia pesquisando como encaminhar uma porta do meu roteador para o meu PC, sem sucesso. E agora estou sem pistas... e frustrado. Já vi muitas páginas com descrições e possíveis soluções, mas de alguma forma não vejo a resposta certa. Então, desculpas se esta é uma pergunta repetida, não é assim que eu vejo.
É isso que tento fazer: quero ter acesso ao meu PC em casa quando estou no trabalho. Para isso eu uso um serviço ddns.
Alguns cenários que funcionam e outros que não: Esta é minha configuração “padrão”.
Tenho dois PCs, um desktop e um laptop. Em ambos, tenho um servidor SSH (bitvise) e um cliente SSH (PuTTY). O desktop está executando o Windows 10 e o laptop está executando o Windows 7. Posso fazer uma conexão SSH do desktop para o laptop e vice-versa, sugerindo para mim, a porta 22 está aberta em ambos os computadores. Certo?
ISP
|
ZyXEL VMG8324-B10A (forward port 22 to 192.168.1.105)
| .1 (192.168.1.x)
|
+- .105 PC (desktop, W10, SSH server on port 22)
|
+- .107 PC (laptop, W7, SSH server on port 22)
O serviço para ddns me permite conectar à minha rede doméstica. Se eu tentar conectar a porta 80, apenas recebo a tela de login do meu roteador, sem problemas. Eu até tentei com um segundo roteador configurado para a porta 8080 e o servidor original encaminhando a porta 8080 para este segundo servidor. Sem problemas.
Esta é a aparência dessa configuração.
ISP
|
ZyXEL VMG8324-B10A (forward port 8080 to 192.168.1.2)
| .1 (192.168.1.x)
|
| .2
LinkSys E3000 (configuration available on port 8080)
| .1 (10.233.1.x)
Consegui conectar-me com sucesso à configuração do LinkSys (na porta 8080) através do provedor ddns. Não há problemas aí. Certo?
Como dito antes, posso estabelecer uma conexão entre o cliente SSH 192.168.1.105 com o servidor SSH 192.168.1.107 e também o cliente SSH 192.168.1.107 com o servidor SSH 192.168.1.105.
Mas não consigo conexão via ddns com nenhum servidor SSH.
Agora posso ver a página de configuração (porta 80) do ZyXEL e do LinkSys E3000 (a porta de encaminhamento 8080 funciona). Por que não funciona na porta 22?
Aqui estão as regras do ZyXEL para o encaminhamento:
# Status Name WAN WAN_IP ServerIP TriggerStart End TranslationStart End Protocol
1 active SSH wan - 192.168.1.105 22 22 22 22 TCP/UDP
2 active http8080 wan - 192.168.1.105 8080 8080 8080 8080 TCP/UDP
Nada de estranho aqui. E é possível a comunicação SSH entre PC e laptop, nada de estranho aí. Onde devo procurar a comunicação do ddns para o PC? O que eu esqueço?
Qualquer sugestão é bem-vinda!
Edição: 5 de setembro de 2016.
Problema resolvido! Com a ajuda das respostas abaixo, consegui resolver alguns problemas de configuração e, há alguns minutos, consegui fazer um RDC passar do meu Android para o meu PC. Legal!
Responder1
Você escreveu que está dentro da rede e acontece o seguinte:
O serviço para ddns me permite conectar à minha rede doméstica. Se eu tentar conectar a porta 80, apenas recebo a tela de login do meu roteador
Isso significa que seu roteador não suporta loopback NAT. Para testar adequadamente o encaminhamento de porta, você precisa estar fora da rede local. Você poderia usar seu telefone com banda larga móvel para testar, por exemplo.
O ping é filtrado por padrão na maioria dos roteadores de consumo. Isso é segurança através da obscuridade, é claro. Também torna o diagnóstico de problemas desnecessariamente difícil, então você pode simplesmente desabilitar essa opção.
Além disso:
o software interno do seu roteador também não está se comportando corretamente. A interface da web é aberta quando você navega até seu endereço IP externo. Isso é muito perigoso! Sem conhecer a estrutura interna da sua rede, um invasor pode obter o controle do seu roteador por meio de scripts entre sites ou algo semelhante.
Responder2
"Posso fazer uma conexão SSH do desktop para o laptop e vice-versa, sugerindo que a porta 22 está aberta em ambos os computadores. Certo?"
Sim. Isso indica que o servidor SSH está em execução e nenhum firewall baseado em software (em qualquer máquina) está bloqueando esse tráfego.
Observe que isso não significa que você pode fazer login via SSH de outra rede. O Firewall do Windows pode aplicar regras diferentes dependendo se a rede parece ser "Privada", "Pública" ou "Convidado". Portanto, só porque o firewall do software permite uma conexão não significa que outra conexão funcionará. Não estou sugerindo que essa seja provavelmente a origem do seu problema, mas se for, pode ser muito difícil detectá-lo se você não pensar a respeito.
Deixe-me também ter certeza de que você entende o que é uma "porta aberta". Estamos nos referindo aos números de porta TCP e aos números de porta UDP. Essas “portas” são simplesmente números. Quando uma “porta” está aberta, isso significa que uma conexão pode ser feita com essa porta.
Assim, quando alguém tentar enviar uma solicitação SSH para o endereço IP da sua casa, o seu ISP passará obedientemente esse tráfego para o roteador do seu prédio. Se o resultado for uma conexão bem-sucedida, a porta estará aberta.
Agora, existem duas maneiras pelas quais o roteador pode lidar com esse tráfego de forma que a porta fique aberta.
Uma dessas maneiras é o roteador executar um programa que responda a essa porta. Portanto, para a porta 22, isso normalmente significaria que o roteador estaria executando um servidor SSH. (E, para a porta 80, isso normalmente significaria que o roteador está executando um servidor HTTP, que costumamos chamar de “servidor web”.)
A outra abordagem possível é o roteador repassar o tráfego para outro dispositivo. Normalmente, isso é feito enviando tráfego para um dispositivo em outra sub-rede. Quando o dispositivo faz isso, ele “rotea” o tráfego. É por isso que costumamos chamar essas coisas de “roteador”.
Para que a segunda abordagem funcione, o roteador precisa saber para qual sistema enviar o tráfego. Isso pode ser feito usando um processo chamado "encaminhamento de porta". Todo o "encaminhamento de porta" realmente envolve informar ao roteador em qual número de porta o tráfego deve chegar e, em seguida, para qual sistema o tráfego vai.
Agora, se você verificar a configuração do roteador, poderá descobrir que a seção “encaminhamento de porta” está em branco. Então, como o SSH pode ser roteado nesse caso? Bem, muitos roteadores têm uma seção de configuração chamada “zona desmilitarizada”, muitas vezes abreviada como “DMZ”. A maneira como essa DMZ funciona é, na verdade, apenas uma regra bastante especial para encaminhamento de porta. Você acaba especificando qual computador o roteador usará, e o roteador enviará todas as portas para esse computador, a menos que haja uma regra mais específica especificada na seção “encaminhamento de porta”. Acho que a maioria dos roteadores geralmente não coloca o DMZ na seção de encaminhamento de porta, talvez porque a configuração do DMZ possa fazer com que o roteador encaminhe tráfego IP além dessas portas.
Em geral, você só pode fazer uma coisa com o tráfego de entrada na porta 22. Ok, então suponho que seja possível fazer mais de uma coisa, como fazer com que o tráfego de um escritório em Seattle vá para um laptop enquanto o tráfego de Tóquio vai para a área de trabalho. No entanto, essas configurações complicadas não são comuns. O que seria muito mais comum é apenas fazer com que o encaminhamento de porta envie uma porta diferente (por exemplo, talvez 2222) para sua outra máquina e fazer com que essa máquina escute em uma porta não padrão.
(Ou faça com que o roteador faça alguma tradução, para que o tráfego de entrada na porta 2222 seja redirecionado para a porta 22 padrão da outra máquina. Mas a máquina que recebe o tráfego nem precisa saber que a porta 2222 foi usada. Ocultar essas informações pode faça com que os logs sejam menos úteis e você precisará lembrar que o roteador está fazendo essa tradução. Em vez disso, basta ouvir a porta 2222, as coisas geralmente ficam mais claras.)
Observe que o ICMP (usado por ping e múltiplas implementações de traceroute) não usa uma porta TCP ou uma porta UDP. (ICMP fica acima do IP. No entanto, embora o IP use a "Camada 3" do modelo de rede OSI, o ICMP não se qualifica realmente como um protocolo que está na "Camada 4" do Modelo OSI, porque não fornece o recurso típico de rastreamento de conversação que tende a distinguir um protocolo da "Camada 4".)
Agora você vê que ter a porta 22 aberta no roteador não ajudará necessariamente as duas máquinas a obter tráfego SSH.
Entenda que seu ZyXEL provavelmente possui dois endereços IPv4 (assumindo que sua Internet esteja usando IPv4). Um é o 192.168.1.1. É seguro nos informar sobre esse endereço, porque é um endereço listado emRFC 1918. O outro é um endereço público. Parece que o endereço muda (desde que você usa DynDNS). Não nos diga esse endereço. (Para conversar, você pode fingir que começa com "203.0.113.", que na verdade é um conjunto de endereços reservados para exemplos/documentação, conforme observado porRFC 5735 página 5.)
Talvez seja mais fácil para você simplesmente não usar o DNS dinâmico, mas obter um IP estático do seu ISP. Conheço um ISP local onde estou (nos EUA) que pode fornecer um IP estático (para um cliente) mediante solicitação, gratuitamente. Eles podem querer cobrar de você (e, nesse caso, você também pode perguntar qual é o preço de um /29, que é um bloco de 8, dos quais 5 normalmente podem ser usados pelo cliente). Isso não significa que sua rota de DNS dinâmico não funcione, mas estou apenas lançando outra opção para consideração.
O serviço para ddns me permite conectar à minha rede doméstica. Se eu tentar conectar a porta 80, apenas recebo a tela de login do meu roteador, sem problemas.
Você não disse qual endereço IP usa ao se conectar à porta 80. Mas como você disse isso logo depois de falar sobre o uso de DDNS, parece que você está falando sobre o uso de seu endereço IP público. Se for realmente esse o caso, o último parágrafo doA resposta de Daniel Bé um aviso bastante válido. Os roteadores de consumo são conhecidos por não terem segurança suficiente para suas interfaces da Web; portanto, encontre a opção que especifica que sua interface da Web deve ser acessível apenas usando a conexão LAN com fio. (Não confie em conexões da Internet nem em Wi-Fi.)