방금 구글링을 통해 SSH 터널링의 기본을 배웠습니다.
나는 다음과 같은 흥미로운 질문을 보았습니다.역방향 SSH 터널링은 어떻게 작동하나요?
하지만 여전히 좀 혼란스럽습니다. 좀 더 구체적으로 말하자면[이메일 보호됨]부분.
따라서 답변 중 하나에 따르면 4가지 사용 사례가 있습니다. 이것이 내가 그들을 이해하는 방법입니다. 내가 틀렸다면 정정해주세요. 단순화를 위해 로컬 컴퓨터에서 ssh 명령을 실행한다고 가정합니다.
ssh -L 123:localhost:456 [email protected]
- 그러면 로컬 컴퓨터의 포트 123에서 example.com의 포트 456으로 모든 트래픽이 전달됩니다. 그러나 example.com은 자체 로컬 호스트의 트래픽을 볼 수 있습니다.
ssh -L 123:google.com:456 [email protected]
- 그러면 로컬 컴퓨터의 포트 123에서 google.com의 포트 456으로 모든 트래픽이 전달됩니다. 그런 다음 example.com에 대한 SSH 세션을 설정합니다. 이건 이해가 안 되는데, 왜 우리에게 필요한가요?[이메일 보호됨]이 경우에는?
ssh -R 123:localhost:456 [email protected]
- 그러면 SSH 세션이 설정됩니다.[이메일 보호됨]example.com의 포트 123에서 내 로컬 컴퓨터의 포트 456으로 모든 트래픽을 전달합니다. 그러면 내 로컬 컴퓨터에서 localhost의 트래픽이 표시됩니다.
ssh -R 123:google.com:456 [email protected]
- 그러면 SSH 세션이 설정됩니다.[이메일 보호됨]example.com의 포트 123에서 google.com의 포트 456으로 모든 트래픽을 전달합니다. #2와 달리 example.com이 원격 호스트로 사용됩니다.
그래서 내 질문은: 왜 우리에게 필요한가요?[이메일 보호됨]# 2에? 나한테 무슨 문제라도 있는 걸까?
고쳐 쓰다
좋아요, 이제 알 것 같아요. 나는 다음에 대해 오해가 있습니다[이메일 보호됨]섹션을 살펴보고 이를 선택사항으로 간주하세요. SSH 세션이 먼저 설정된 다음 port:host:port가 평가되는 것 같습니다.
예: #2의 경우 먼저 example.com에 대한 세션을 설정한 다음 트래픽을 google.com:456으로 전달합니다. #1의 경우 먼저 example.com에 대한 세션을 설정한 다음 트래픽을 localhost:456(동일한 호스트)으로 전달합니다.
답변1
두 번째 경우는 example.com이 [google.com] 호스트에 연결할 수 있지만 상자에서는 연결할 수 없는 경우에 유용합니다. 예를 들어, VPN 연결이 여러 상자로 제한되어 있고 목록에 없는 호스트에 액세스하려고 합니다. ssh -L 123:target.host.com:456[이메일 보호됨].
따라서 기본 사용법은 네트워크 내부로 점프하거나 네트워크 외부로 점프하는 것입니다(일종의 프록시/게이트웨이로 ssh).
마지막으로 대상 서버에는 지정된 호스트의 연결만 허용하는 방화벽 제한이 있을 수 있습니다.