아래 설명은 모두 리눅스 환경을 기준으로 함.
로컬 SSH 터널링
로컬 포트로 패킷이 들어가면 SSH 터널을 통해 SSH 서버로 전송되고 SSH 서버는 패킷을 목적지 호스트의 목적지 호스트 포트로 전달한다.
$ ssh -L L_PORT:D_HOST:D_PORT SSHSRV_HOST
|
L_PORT: 로컬 포트
D_HOST: 목적지 호스트 이름
D_PORT: 목적지 호스트 포트
SSHSRV_HOST: SSH로 접속할 서버 호스트 이름 (클라이언트는 직접 사용하는 시스템)
리모트 SSH 터널링
로컬 SSH 터널링과 정 반대로 리모트 포트로 패킷이 들어가면 SSH 터널을 통해 SSH 서버로부터 SSH 클라이언트로 전송되고 SSH 클라이언트는 패킷을 목적지 호스트의 목적지 호스트 포트로 전달한다.
$ ssh -R R_PORT:D_HOST:D_PORT SSHSRV_HOST
|
R_PORT: 로컬 포트
D_HOST: 목적지 호스트 이름
D_PORT: 목적지 호스트 포트
SSHSRV_HOST: SSH로 접속할 서버 호스트 이름 (클라이언트는 직접 사용하는 시스템)
다이나믹 SSH 터널링
SOCKS 프로토콜을 사용한다. 지정한 로컬 포트를 통해 SSH 서버측에서 네트워크를 사용하는 것과 같이 모든 네트워크를 중계시킨다.
$ ssh -D L_PORT SSHSRV_HOST
|
L_PORT: 로컬 SOCKS 포트 SSHSRV_HOST: SSH로 접속할 서버 호스트 이름 (클라이언트는 직접 사용하는 시스템)
댓글 없음:
댓글 쓰기