단일 포트를 통해 여러 포트 터널링 [중복]

단일 포트를 통해 여러 포트 터널링 [중복]

SSH 터널을 통해 로컬 컴퓨터에서 원격 컴퓨터로 여러 포트를 전달하고 싶습니다. 그러나 나는 이것이 단일 포트에서 발생하기를 원합니다. 단일 포트와 여러 애플리케이션 간에 재사용할 수 있는 프로토콜이나 도구가 있습니까?

편집: 많은 컴퓨터에서 단일 원격 장치로 전달되는 많은 포트가 있으며 각 컴퓨터의 응용 프로그램 수준에서 다중화하여 해당 원격에서 가능한 적은 포트를 사용하고 싶습니다. 특정 프로토콜을 재사용하는 SSH와 같은 솔루션을 본 적이 있지만 프로토콜 독립적인 방식으로 메시지를 래핑하는 일반적인 솔루션은 모릅니다.

답변1

SSH를 사용하면 명령줄에서 여러 포트를 지정하여 터널을 설정할 수 있습니다(예:여기):

$ ssh -L 10001:one.securedomain.com:3389 -L 10002:two.securedomain.com:3389

단일 로컬 포트만 사용하고 싶다는 말씀이신가요?

SSH는 소스 포트 <-> 대상 포트 매핑만 수행합니다. 1개의 소스 포트 <-> 여러 개의 대상 포트를 원하는 경우 근본적인 문제가 있습니다. 예를 들어 로컬 포트 ​​10001로 트래픽을 보내는 경우 SSH는 물론이고 어떤 대상 포트를 원하는지 어떻게 알 수 있습니까?

일부 프로토콜에는 페이로드의 일부로 전송된 데이터가 페이로드의 대상을 지정하는 기능이 있습니다. HTTP는 Host:헤더를 통해 이를 수행합니다. SSH는 "X는 내 일이고 다른 사람의 일은 아니다"라는 Unix 철학을 채택하기 때문에 전송하는 트래픽을 스니핑하거나 디코딩하거나 이해하지 않습니다. 따라서 도움이 되지 않지만 소스 또는 대상 시스템에서 실행되는 프록시 서버가 도움이 될 수 있습니다. HTTP 이외의 프로토콜의 경우 "멀티플렉싱" 프록시 역할을 하는 서비스를 찾거나 개발해야 합니다.생각하다주의를 기울이면 SMTP 및 FTP용 유틸리티가 있습니다.

한 가지 해결 방법은 SSH 터널을 통해 OpenVPN과 같은 것을 실행하여 트래픽이 반대쪽에 도달하면 라우팅 등을 명시적으로 제어할 수 있도록 하는 것입니다.

관련 정보