문맥
나는 작업 흐름을 개선하려고 노력하고 있습니다.
현재 저는 데스크탑(기본적으로 GPU가 있음)과 노트북을 가지고 있습니다. 노트북을 원격으로 사용하는 경우에도 데스크탑을 활용하고 싶습니다(둘 다 Linux를 실행함).
우리 대학에서는 포트 80만 외부 연결에 열려 있습니다.
현재 솔루션
내 데스크탑에는 SSH 서버가 있고 wanaddr:80 -> localaddr:22
대학 네트워크의 제한을 피하기 위해 NAT에서 일부 포트 전달을 수행하고 있습니다.
또한 IntelliJ IDE를 사용하여 코드를 배포하고 원격 인터프리터로 실행하고 있는데 정말 매력적입니다.
문제
tensorboard
원격으로 더 많은 서비스(예 : , MLFlow
, ) 를 사용해야 합니다 jupyter
. WAN 측에서는 80번 포트를 사용해야 하므로 다른 포트로 포트포워딩을 할 수가 없어서 어려움이 발생합니다.
시도된 솔루션
내 데스크톱의 도메인 이름이 desktop.dev
.
특정 하위 주소를 올바른 서비스로 리디렉션하려고 합니다. 예:
ssh.desktop.dev:80 -> <?> -> localhost:22
tensorboard.desktop.dev:80 -> <?> -> localhost:8888
jupyter.desktop.dev:80 -> <?> -> localhost:8000
Caddy를 사용하려고 했지만 나중에 HTTP 요청만 지원한다는 것을 알았습니다. Traefik을 조사하고 있지만 쉽게 수행하는 방법을 찾지 못했습니다.
나에게 올바른 방향을 알려줄 수 있나요?
답변1
SSH 포트 전달(-L 옵션)을 사용합니다. 가정용 컴퓨터 중 SSH만 노출하세요. 어느 포트에 연결하게 될지는 중요하지 않습니다. 80이 허용됩니다. 가정용 컴퓨터에서는 루프백 장치에서 서비스를 실행하거나 최소한 루프백에서 사용할 수 있도록 설정하세요.
그런 다음 로밍 스테이션에서 ssh -p home-port home.address -L 8888:localhost:8888 -L 8000:localhost:8000 등으로 연결합니다.
(Windows Putty를 사용하는 경우 이 작업을 수행할 수 있습니다)
그런 다음 로밍 스테이션에서 localhost에 연결합니다. SSH 클라이언트는 홈 머신의 해당 포트로 트래픽을 터널링합니다. 로밍 스테이션에서 localhost:8888에 대한 tcp 연결을 설정하면 ssh 클라이언트가 수락한 다음 홈 컴퓨터에서 localhost:8888에 연결한 다음 패킷을 앞뒤로 프록시하므로 홈 서비스가 나타나는 것처럼 끝납니다. 당신의 로밍 스테이션.
-R 옵션을 사용하면 역방향 정방향을 만들 수도 있습니다. 전달 대상이 localhost가 아니지만 집에서 액세스할 수 있는 다른 모든 항목인 경우 로밍 스테이션에서 직접 액세스할 수 없는 항목에 액세스할 수 있습니다. -L 7777:some.irc.server:6666 및 localhost:7777에 대한 연결은 다음과 같습니다. some.irc.server:6666에 연결한 경우.
무엇을 하든 유선을 통해 집과 로밍 스테이션 사이의 SSH 트래픽만 볼 수 있습니다.