원격 지원: SSH 터널을 통해 RDP 라우팅?

원격 지원: SSH 터널을 통해 RDP 라우팅?

TeamViewer를 FOSS 솔루션으로 교체하고 싶습니다. 일부 원격 컴퓨터를 지원해야 합니다. 다음과 같이 중간자 서버를 사용하여 두 컴퓨터 간에 작동하는 SSH 터널을 설정했습니다.

Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop

현재 이 SSH 터널이 실행 중입니다.

다음으로 SSH 터널을 사용하여 "Kubuntu_laptop"에서 "Kubuntu_desktop"의 데스크톱으로 연결하고 싶습니다.

이 다리의 연결에 관하여:

Debian_Server<--nat_fw<--Kubuntu_desktop

다음과 같이 설정됩니다.

autossh -M 5234 -N -f -R 1234:localhost:22 [email protected] -p 22

기존 모니터링 포트(5234)나 원격(-R) 포트 번호(이 경우 1234)를 변경할 수 없습니다. 이 기존 SSH 연결을 통해 vnc 터널을 사용할 수 있습니까?고쳐 쓰다:대답은 다음과 같습니다 no. 여기에 설명된 대로 vnc와 함께 사용할 새 SSH 터널을 설정해야 합니다.

이 다리의 연결에 관하여:

Kubuntu_laptop--->nat_fw--->Debian_Server

원하는 모든 SSH 매개변수를 사용할 수 있습니다.

라우터/방화벽의 포트를 열 수 없습니다.

누군가 x11vnc 서버를 추천해서 그걸로 테스트 중이에요. 데스크탑에서 실행되며 포트 5900에서 수신 대기합니다. 하지만 x11vnc를 시작할 때 명령줄 옵션을 사용하지 않았기 때문에 올바르게 구성되지 않았을 수 있습니다.

vnc가 기존 SSH 연결을 통해 작동합니까? 포트 5900은 정의되지 않았습니다. 위에서 언급한 것처럼 -R 옵션으로는 포트 번호를 변경할 수 없습니다.

이를 작동시키는 방법에 대해 많은 질문이 있지만 그 중 하나는 vnc가 기존 포트(위 예에서는 -R 1234)에서 수신 대기할 수 있는지 여부입니다. 그렇다면 지금처럼 여전히 해당 상자에 SSH를 통해 접속할 수 있나요?

이것이 내가 지금까지 시도한 것입니다:

원격 데스크톱(x11vnc 서버가 설치된 곳)에서:

tester@Kubuntu_desktop:~> autossh -M 5234 -i ~/.ssh/my_id_rsa -fNR 1234:localhost:5901 [email protected]

x11vnc 서버가 포트 5901에서 실행되고 있는지 확인하십시오.

tester@Kubuntu_desktop:~> x11vnc -autoport 5901

내 노트북에서:

sudo ssh -NL 5901:localhost:1234 -i ~/.ssh/admin_id_rsa [email protected]

로컬 vnc 클라이언트를 localhost 포트 5901에 연결

Kubuntu_laptop에서 KRDC를 열고 (vnc)에 연결합니다.

localhost:5901

연결에 실패했습니다. - server not found.

답변1

현재 랩탑과 서버 사이에 기본 SSH 연결이 있는 것 같습니다.

Kubuntu_laptop--->nat_fw--->Debian_Server

작동하도록 SSH 연결의 매개변수를 수정합니다.

-fNL [localIP:]localPort:remoteIP:remotePort

예를 들어:

-fNL 5900:localhost:1234

노트북이 기본 ​​포트 5900에서 VNC를 사용하는 경우 노트북에 vnc를 localhost로 지시한 다음 포트 5900의 VNC 트래픽을 포트 1234의 서버로 보냅니다.

다음으로, 서버 측 포트 1234에 도착하는 트래픽을 캡처하여 데스크탑으로 전달해야 합니다.

Debian_Server<--nat_fw<--Kubuntu_desktop

다음을 포함하여 데스크탑 SSH 연결의 매개변수를 수정합니다.

-fNR [remoteIP:]remotePort:localIP:localPort

예를 들어:

-fNR 1234:localhost:5900

서버 로컬 호스트의 포트 1234로 전송된 모든 트래픽은 이제 데스크탑과 VNC 서버가 수신할 것으로 예상하는 포트 5900으로 이동합니다.

포트 5900을 사용 중인 프로토콜에 적합한 프로토콜로 변경하십시오. 5900이 사용 중일 수 있으므로 RDP의 경우 3389, VNC의 경우 5901일 수 있습니다. 또한 서버에서 사용할 포트 1234를 무작위로 선택했습니다.

*업데이트된 질문에 대한 몇 가지 참고 사항:

  1. SSH의 기본 포트는 22이므로 -p 22기본 포트를 재정의하고 22로 설정하므로 중복됩니다.
  2. localPort:remoteIP:remotePort이러한 설정은 ssh가 터널에 사용하는 포트와 아무 관련이 없는 것으로 보입니다 . 클라이언트에서 -p로 재정의하고 ssh 서버의 포트를 재정의하지 않는 한 여전히 22입니다. 따라서 앞서 언급한 모든 ssh 명령은 포트 22를 사용합니다. 이는 수신되고 설정된 네트워크 연결을 보면 확인할 수 있습니다. 방화벽에서 다른 포트를 열 필요는 없습니다. 이전 명령이 정확합니다.
  3. 업데이트에 추가한 내용에 따라 데스크톱 명령은 다음과 같아야 합니다.autossh -M 5234 -fNR 1234:localhost:5900 [email protected]
  4. 죄송합니다. VNC 클라이언트에 대한 권장사항이 없습니다. 이에 대해서는 별도의 질문을 하셔야 할 것 같은데, 의견의 문제이기 때문에 반대표가 나올 것 같습니다.

답변2

설명된 메커니즘을 확인했으며 나에게 적합합니다. 유일한 차이점은 127.0.0.1::PORT를 VNC 클라이언트 매개변수로 사용한다는 것입니다. 왜냐하면 :N은 X 창 표시 번호 N을 참조하므로 명시적 포트를 사용하려면 이중 콜론을 구분 기호로 사용해야 합니다.

관련 정보