ssh 터널링은 ssh서버에 있는 22번 포트를 통해 해당 서버의 다른 포트와의 연결을 가능하게 해준다.
ssh 터널링을 보던중에 옵션과 원포트, 타겟포트/호스트 설정이 가끔 헷갈렸다.
일단은 쉽게 외우는 방법을 강구해봤다.
-L 로컬의 포트를 통해 ssh 서버의 ssh서비스를 통해 특정 포트로 접속한다. (외부서버에는 ssh서버있어야함)
-R 원격지의 정보를 로컬로 가져옴(또는 지정한 서버, 원격지서버에는 ssh서버있어야함)
예를 들어, 원격지 서버의 특정포트(예를 들어 Slime의 4005)를 접속하고는 싶다면?
이쪽에서의 열어줄 포트를 14005라고 하고 걸어보면..
ssh -L 14005:localhost:4005 [remote-host]
라고 하면된다. 이제 로컬의 14005포트에 TCP접속을 하면 ssh를 통해서 자연스럽게 원격지 4005 포트로 데이터가 전송된다. 물론 원격지 서버에는 ssh 서버가 있어야겠지만 말이다.
이 데이터는 달리 말하자면
ssh -R 4005:localhost:14005 [remote-host]
와 동일한 내용이다.(대상서버의 4005번 포트와 현재 서버의 14005 포트를 터널링)
-L과 -R은 서로 반대되는 내용을 기술하는 방편이라고 생각하는 것이 편하다.
다만 ssh -L의 경우는 상대편 서비스를 사용하겠다는 것이지만 ssh -R의 경우는 이쪽편의 서비스를 사용해야하는 경우가 된다. 따라서 포트를 매핑할 때, -L은 대상서버의 해당 서비스를 체크하지만 -R은 이쪽 서버의 서비스를 체크할 수 있다는 점에 유의할 것.
댓글 없음:
댓글 쓰기