세 번째 공용 IP 컴퓨터를 통해 두 개의 NAT 뒤에 있는 컴퓨터 간의 SSH 연결

세 번째 공용 IP 컴퓨터를 통해 두 개의 NAT 뒤에 있는 컴퓨터 간의 SSH 연결

집에 컴퓨터가 있어요 (홈 서버) irssi, rtorrent 등을 실행합니다. 내 ISP는 외부로부터의 모든 트래픽을 차단하고 있습니다.

로그인하고 싶습니다.홈 서버누구의 껍질이든원격 컴퓨터(NAT 뒤).

루트 액세스 권한 없이 어딘가에 쉘 계정이 있는데, 그게 유용할 수도 있습니다.

상황을 설명하는 다이어그램은 다음과 같습니다. 여기에 이미지 설명을 입력하세요

내 컴퓨터에서 쉘에 접근할 수 있나요?홈 서버? SSH 터널링에 대해 들었지만 이 사례와 일치하는 튜토리얼을 찾을 수 없었습니다.

답변1

홈 서버(타사에서 홈으로의 터널):
ssh -R 20000:127.0.0.1:22 thirdparty.org

그러면 홈 박스가 타사 셸에 연결되고 타사 셸의 포트 20000에 대한 모든 연결이 홈 박스의 포트 22(SSH 포트)로 전달되기 시작합니다.

원격 컴퓨터(원격에서 타사로 터널링):
ssh -L 20000:127.0.0.1:20000 thirdparty.org

그러면 원격 상자를 타사 셸에 연결한 다음 원격 상자의 포트 20000을 타사 셸의 포트 20000으로 전달하기 시작합니다.

그런 다음 원격 컴퓨터에서(터널을 통해 연결):
ssh 127.0.0.1:20000홈 서버에 대한 자격 증명을 입력합니다.

그러면 원격 상자의 포트 20000으로 SSH를 시도합니다. 타사에 대한 터널을 설정했으므로 #2 명령은 이 연결 시도를 타사 셸의 127.0.0.1:20000으로 효과적으로 전달합니다. 그런 다음 첫 번째 명령은 연결을 홈 박스의 포트 22로 다시 전달하고, 이 시점에서 SSH 서버가 연결을 선택합니다.

답변2

아래에서 허용되는 솔루션을 더 잘 설명하려고 노력했습니다. "머신 A"와 "머신 B"가 모두 NAT 방화벽 뒤에 있다고 가정해 보겠습니다. 둘 다 원격 "머신 R"(예: VPS)에 대한 SSH 액세스 권한을 갖고 있습니다.

R -> A

ssh -R 20000:127.0.0.1:22 user@RemoteHost
  1. 위의 명령은 컴퓨터에서 실행되었습니다..

  2. 다음에서 터널을 만듭니다.아르 자형(R의 포트 20000) 에게(A의 포트 22)(역터널링)

B -> R

ssh -L 8000:127.0.0.1:20000 user@RemoteHost
  1. 위 명령은 다음에서 실행되었습니다..

  2. 다음에서 터널을 만듭니다.(B의 포트 8000) 에게아르 자형(R의 포트 20000)

비 -> 에이

ssh 127.0.0.1 -p 8000

실제 연결은 진행 중이지만아르 자형, 그건(포트 8000)-> 아르 자형(포트 20000)-> 아(포트 22)


PuTTY와 Windows를 사용해도 동일합니다.

R -> A

putty.exe -R 20000:127.0.0.1:22 -ssh RemoteHost -P port -l user -pw password

B -> R

putty.exe -L 8000:127.0.0.1:20000  -ssh RemoteHost -P port -l user -pw password

비 -> 에이

putty.exe -ssh 127.0.0.1 -P 8000 -l user -pw password

답변3

아니면 HE.net으로 일부 IPv6 터널을 설정하고 직접 연결할 수도 있습니다... (많은 VPN 솔루션도 작동합니다.)

답변4

무료이지만 일부 사람들에게 도움이 될 수 있습니다. 위의 내용을 보강하기 위해 사진을 추가합니다.

여기에 이미지 설명을 입력하세요

관련 정보