https://blog.naver.com/PostView.naver?blogId=alice_k106&logNo=221364560794
2. SSH 포트 포워딩 사용하기
SSH 포트 포워딩에는 크게 2가지 종류가 있다. Local, Remote 모드를 사용할 수 있고, Dynamic이라는 것도 있는 듯 하지만 지금은 다루지 않기로 했다.
2.1 서버 구성
당연하겠지만, SSH를 기반으로 하기 때문에 SSH Client와 SSH Server로 사용할 서버 각각 1대가 필요하다. VM을 사용해 아래와 같이 구성하였다.
테스트를 위해 SSH 서버에서는 Nginx 웹 서버를 80 포트와 바인딩해 컨테이너로 생성해 놓았다. SSH 포트 포워딩을 통해 SSH Client에서 해당 Nginx 웹 서버로 접근할 것이다.
2.2. Local 포트 포워딩
SSH 포트 포워딩은 연결을 수립하는 주체가 누구냐에 따라 Local과 Remote로 구분할 수 있다. Local은 가장 이해하기 쉽고 직관적인 경우로, 늘 하던 것처럼 SSH Client -> SSH Server로 연결을 수립하는 경우이다. 이해를 위해 간단한 예시를 통해 Local 포트 포워딩을 사용해보자.
SSH Client는 SSH Server에 SSH로 접속할 수 있다. 그러나 Nginx 서버는 127.0.0.1:80으로 바인딩되어 있어 외부에서 접근할 수 없는 상황이다. SSH Client 에서 Nginx에 접근할 수 있도록 SSH 터널링 연결을 생성한다.
가장 많이 헷갈리는 것이 SSH 포트 포워딩 시 '무엇을 어떻게 입력할지' 인데, 위 그림으로 이해할 수 있다. SSH Client에서 ssh -L [로컬에서 사용할 포트]:[최종적으로 접근할 곳] [SSH Server 주소] 형식으로 입력한다. SSH 터널이 생성된 뒤에는 [로컬에서 사용할 포트] 를 이용해 [최종적으로 접근할 곳] 에 접근할 수 있다.