Existe software que me ajudará a ssh / conectar ao meu computador de casa a partir da internet pública? (Digamos, uma cafeteria).
Eu entendo que perguntas semelhantes a esta foram feitas, mas nenhuma parece realmente responder à pergunta. Deixe-me adicionar alguns detalhes para evitar as muitas respostas sobre DynDns e encaminhamento de porta.
Eu tenho acesso a um servidor SSH publicamente acessível. Apenas o encaminhamento de porta de lá não é uma solução estável que dura vários dias. O encaminhamento de portas tende a abandonar conexões, ser lento etc.
Eu não quero configurar / pagar por DynDns e configurar o NAT traversal no meu roteador.
Eu sinto o seguinte deve ser possível, eu só não sei se existe software que já realiza isso:
Da mesma forma que os programas peer-to-peer atravessam NAT perfurocortante, deve ser possível ter um programa em execução na minha máquina doméstica que abra o acesso externo às portas apropriadas através de perfuração. Além disso, o programa pode difundir o IP público de computadores domésticos e portas externamente visíveis e perfuradas em algum lugar (digamos, em um servidor público ou por e-mail) e atualizar periodicamente essas informações.
Existe software como este? Uma parte dessa funcionalidade já é realizada por vários softwares de torrent.
fonte
Respostas:
Ya então eu acho que o encaminhamento de porta é o método de perfuração. Se você quisesse, poderia colocar seu computador em uma DMZ e evitar toda a bagunça.
fonte
Não sugiro colocar seu dispositivo em uma DMZ sob nenhuma circunstância, a menos que você realmente saiba o que está fazendo e possa proteger o dispositivo e a rede ao redor.
Existe um software que pode emular uma LAN através da Internet, chamada LogMeIn Hamachi . Ao instalar e ativar isso no host, você pode acessá-lo fazendo login na VLAN em qualquer lugar da Internet.
Embora eu não veja necessariamente o problema com o Port Forwarding.
Outra opção é usar o recurso Port Forwarding embutido do SSH. Se houver outro host SSH acessível pela Internet (chamaremos de Host 1) na mesma LAN do host ao qual você está tentando se conectar (Host 2), você poderá emitir um comando que salte a conexão do seu computador. (em uma porta local específica) através do Host 1, e o Host 1 direciona seu tráfego para o Host 2 não encaminhado pela porta em sua LAN.
O comando é o seguinte e deve ser executado na máquina local que você está tentando usar para conectar-se ao Host 2
Isso abrirá uma porta na sua máquina (seu
[local-port-to-open]
argumento) que o SSH gerencia, enviando qualquer tráfego dessa porta através do túnel criptografado[user-of-Host-1]@[Host-1-address]
argumentos para o Host-2, conforme especificado[local-IP-of-Host-2-according-to-Host-1]:[port-to-connect-to-on-Host-2-from-Host-1]
. Esse método é chamado de Encaminhamento de porta local (não entendo o encaminhamento de porta remoto).Por exemplo, digamos que eu queira me conectar ao Host 2, que não é encaminhado por porta, do meu café local, usando o Host 1, que é encaminhado por porta, para devolver a conexão à sua LAN. Observe que isso abrirá um PTS na máquina remota, mas poderá ser ignorado até que você deseje fechar este túnel. Então você pode apenas fechar a sessão de terminal como faria normalmente.
O IP público do Host 1 é
201.31.103.212
(o NAT que encapsula o Host 1 e o Host 2) na porta1337
para SSH. Host 2, na LAN, tem o IP local do192.168.254.40
e usa porta22
para SSH. O nome de usuário de login do host 1 éfish
.Ok, então vou dizer que tenho a porta local
8080
não utilizado e pode usá-lo para esta demonstração temporariamente.O comando que eu formaria é como tal:
Agora isso abre porta
8080
no seu computador local e envia para192.168.254.40
na porta22
(Host 2) de acordo com o Host 1 (que é[email protected]
)Agora, se você quiser SSH no Host 2, tudo que você precisa fazer é especificar seu computador na porta
8080
. Digamos que o nome de usuário de login do Host 2 sejaturtle
O SSH está gerenciando sua porta
8080
, e envia a sua solicitação SSH para o Host 1, que envia para o Host 2. Por favor, note que, ao invés de usar127.0.0.1
, você também pode simplesmente usarlocalhost
. É apenas uma preferência.Outro uso do SSH Port Forwarding é proxies.
Cenário: Estou na escola com meu laptop pessoal e quero acessar o Twitter, que está bloqueado (na verdade é na minha escola, então eu fiz exatamente isso). Eu tenho um host SSH encaminhado por porta em minha casa com o IP
39.34.81.56
na porta1337
. Quero devolver uma conexão com o Twitter (os servidores da Web são mais comumente hospedados na porta80
) do meu porto8080
no meu laptop através do meu host em casa. Gostaria de emitir o comando no meu laptop:Agora eu posso acessar
localhost:8080
no meu navegador, e ele irá rotear o Twitter através do meu túnel criptografado, de seus servidores para minha casa, em seguida, para o meu laptop na escola.Eu posso usar esse mesmo método para entrar em um site que não usa SSL (pastebin por exemplo) em público e ter certeza de que minhas credenciais estão seguras porque são criptografadas usando SSH e enviadas somente sem SSH da minha casa, o que eu fiz com certeza é seguro.
Boa sorte!
EDIT: Apenas uma nota lateral, os endereços IP mostrados aqui não devem ser endereços válidos, mas na chance de que eles são, por favor, não assediar os usuários desses IPs.
fonte