SSH 터널을 사용하여 프록시 서버를 통해 두 엔드포인트 연결

SSH 터널을 사용하여 프록시 서버를 통해 두 엔드포인트 연결

저는 간단한 클라이언트와 HTTP 서버(포트 80)를 가지고 있습니다. 어떤 경우에는 클라이언트와 서버가 서로 다른 위치에 존재할 수 있으며 방화벽 뒤에 NAT가 적용됩니다(포트 80에 대한 아웃바운드 연결만 허용됨).

양측에서 사용할 수 있고 인바운드 연결(80/22/기타?)을 허용하는 세 번째 서버로 방화벽을 우회하기 위해 SSH 터널(또는 기타... NGINX?)을 사용하려고 합니다.

SSH 터널을 통해 이를 달성할 수 있습니까? 모든 종류의 역방향 프록시에서 작동하도록 할 수 있습니까(서버 측에서 추가 프록시를 사용해야 할 수도 있습니다..내 HTTP 서버)?

답변1

질문이 명확하지 않지만 어쨌든 해결하려고 노력하겠습니다.

해당 중간 호스트를 통해 항상 HTTP 서버에 액세스할 수 있기를 원하는 경우 HTTP 서버에서 중간 호스트로의 역방향 SSH 터널을 사용하고 중간 서버의 루프백 인터페이스에서 HTTP 서버의 포트를 내보낼 수 있습니다( 노출할 수도 있음) 외부 인터페이스에서 사용할 수 있지만 이는 네트워크의 모든 사람이 HTTP 서버에 액세스할 수 있음을 의미합니다.

이렇게 하려면 HTTP 서버를 사용해야 합니다. 이는 Friendly.domain.tld의 루프백 인터페이스에서 포트 80을 포트 8080으로 노출합니다.ssh -R 8080:127.0.0.1:80 [email protected]

다음으로 로컬 머신에서 다음 명령을 실행하여 로컬 머신으로 포팅해야 합니다. 이 시점부터 루프백 인터페이스의 포트 8080이 HTTP 서버에 연결됩니다 :)ssh -L 8080:127.0.0.1:8080 [email protected]

내가 얼마 전에 쓴 블로그 게시물에서 더 많은 정보를 얻을 수 있습니다.http://dmitry.khlebnikov.net/2010/12/ssh-port-forwarding-intermediate.html

관련 정보