
Tenho vários computadores Linux em casa, na universidade e meu telefone Android. Eu gostaria de poder fazer SSH para qualquer um deles a qualquer momento, mas eles estão todos escondidos atrás de redes diferentes e podem perder a conexão ou alterar o endereço IP externo a qualquer momento.
Idealmente, eu teria algum aplicativo em segundo plano, semelhante ao Dropbox, que mantém uma conexão (reconecta) a algum serviço externo com um endereço conhecido. Então, sempre que eu quiser fazer SSH de um computador para outro, o serviço providenciará que uma conexão seja feita. Eu tenho um Raspberry Pi que possui um endereço DynDNS e portas encaminhadas, para que eu mesmo possa executar o serviço, se necessário. Mas é importante que o tráfego não passe por esse servidor, já que não quero que meus dois computadores universitários enviem dados para casa e voltem quando estiverem próximos um do outro.
Existe software que faz isso?
Alternativamente, existe um serviço VPN gratuito semelhante ao antigo Hamachi que funcionaria em vários computadores Linux e Android? Então, todos eles estariam em uma rede pseudo-local e poderiam fazer ssh entre si livremente. Pelo que posso ver, não existem tais serviços gratuitos no momento, o que parece estranho dada a abundância de serviços gratuitos de sincronização de arquivos (Dropbox, Google Drive, Mega, etc).
Responder1
Nível zeroparece se adequar perfeitamente ao seu caso de uso:
Eles chamam isso de "Rede Definida por Software". É uma espécie de mistura entre VPN e serviços como o Hamachi. Basicamente, você precisa criar redes (que possuem IDs exclusivos), às quais você pode conectar e autorizar dispositivos. É uma rede P2P, mas pode usar supernós se sua rede não permitir conexões de entrada.
Atualmente, eles suportam vários sistemas operacionais: Linux, FreeBSD, Android, Windows, OSX.
Exceto no Android, você também pode se conectar a várias redes ao mesmo tempo. A conexão a uma rede cria uma placa de rede virtual em seu sistema operacional.
Você também pode usar zeroconf ou algo parecido se quiser usar DNS.
É baseado em UDP e lida muito bem com alterações de rede. Já experimentei isso muitas vezes com a mudança do meu celular de wi-fi (s) para LTE e vice-versa.
Responder2
Você pode considerar usar o tunelamento SSH.
Crie alguns túneis do seu dispositivo RPi entre si aos quais você precisa acessar e você pode usar SSH para eles usando portas RPi locais.
O problema é que se o dispositivo for reinicializado, sua conexão será interrompida.