Contexto
Estou tentando melhorar meu fluxo de trabalho.
Atualmente tenho um desktop (que, basicamente, possui GPU) e um notebook. Quero explorar o desktop mesmo quando estou trabalhando com o notebook remotamente (ambos rodam Linux)
Na minha universidade apenas a porta 80 está aberta para conexões externas.
Solução atual
Meu desktop possui um servidor SSH e estou encaminhando algumas portas no meu NAT wanaddr:80 -> localaddr:22
para evitar a restrição na rede da Universidade.
Além disso, estou implantando o código e executando com um intérprete remoto usando IDEs IntelliJ, funciona perfeitamente.
Problema
Tenho necessidade de usar mais serviços remotamente, por exemplo tensorboard
, MLFlow
, jupyter
. As dificuldades surgem porque devo usar a porta 80 no lado da WAN, então não posso simplesmente encaminhar outras portas.
Tentativa de solução
Supondo que o nome de domínio do meu desktop seja desktop.dev
.
Estou tentando redirecionar subendereços específicos para os serviços corretos, por exemplo
ssh.desktop.dev:80 -> <?> -> localhost:22
tensorboard.desktop.dev:80 -> <?> -> localhost:8888
jupyter.desktop.dev:80 -> <?> -> localhost:8000
Tentei usar o Caddy, mas depois entendi que ele suporta apenas solicitações HTTP, estou pesquisando o Traefik, mas não estou conseguindo fazer isso facilmente.
Você pode me indicar a direção certa?
Responder1
Use o encaminhamento de porta SSH (opção -L). Da sua máquina doméstica, exponha apenas o ssh. Não importa a qual porta você se conectará; 80 é aceitável. Na máquina doméstica, execute serviços no dispositivo de loopback ou pelo menos disponibilize-os no loopback.
Em seguida, conecte-se a partir de sua estação de roaming como: ssh -p home-port home.address -L 8888:localhost:8888 -L 8000:localhost:8000 etc.
(se você estiver no Windows putty é capaz de fazer isso)
Em seguida, na sua estação de roaming, conecte-se ao host local. O cliente ssh encapsulará o tráfego para as portas da sua máquina doméstica. Se você fizer uma conexão tcp com localhost:8888 em uma estação roaming, o cliente ssh aceitará e, em seguida, fará uma conexão com localhost:8888 na máquina doméstica e, em seguida, enviará pacotes proxy para frente e para trás, para que você acabe como se seu serviço doméstico aparecesse em sua estação de roaming.
Você também pode fazer um avanço reverso com a opção -R. Você pode acessar o que não é diretamente acessível de sua estação de roaming se o destino de encaminhamento não for localhost, mas qualquer outra coisa acessível de casa: -L 7777:some.irc.server:6666, e a conexão com localhost:7777 será como se você se conectou a some.irc.server:6666.
Não importa o que você faça, apenas o tráfego SSH entre sua casa e a estação de roaming será visto.