Home
home
🏡 홈
home

Termius를 통한 Remote Port Forwarding

분류
개발지식
태그
Server
Linux
작성자
작성일
2025/11/02 12:14
외부 서버에서, 본인 로컬서버의 API를 사용하여 테스트하는 경우가 필요하다면? 바로 Remote Port Forwarding을 사용해보는 것은 어떤가요?

개요

Remote Port Forwarding은 본인의 로컬 서버를, 외부 서버에서 접속할 수 있도록 만드는 기술이에요!
저는 이번에 배포된 서버에서, 현재 개발중인 로컬 서버를 바로 바라보도록 해서 테스트 해야 할 필요성이 있었습니다.
왜냐하면, 매번 테스트 할 때 마다, 서버 코드를 git에 push하고, 다시 배포하는 것은 번거로웠기 때문입니다. 또한 서버의 디버깅이 필요한 경우, 로컬 IDE에서 직접 브레이크 포인트를 잡고 변수 값의 확인도 필요했기에, 다양한 내용을 검색한 결과,
Remote Port Forwarding이 이를 해결할 수 있다는 사실을 알게 되었습니다.

Termius가 무엇인가요?

Termius는 터미널 작업을 쉽게 하기 위해서, 사용하는 도구입니다.
원격 서버에 대한 인증정보를 저장하고, 단 한 번의 클릭으로, 원격 서버에 접속할 수 있습니다.
또한 SFTP도 바로 지원하여, 파일을 편하게 옮길 수 있도록 도와주기도 합니다.
마지막으로, 포트포워딩 기능도 제공하고 있습니다. 일반적으로는 원격서버에 ssh로 연결하여, 원격서버에서 오픈하지 않은 포트를 강제로 터널링하여, 로컬에서 사용하는 용도로 많이 사용되지만, (내부망 접속 또는 기타 등등)
반대로, 원격서버에서 로컬서버에 접근하도록 하는 Remote Port Forwarding을 사용하기도 합니다.

Termius 설치하기.

Termius는 Mac을 사용한다면, AppStore에서도 설치가 가능하지만, SandBox정책으로 인해 AppStore에서 설치한 프로그램은 로컬 터미널의 사용에 제한이 있습니다. 따라서, 온라인 상에서 설치하도록 합니다.
위의 웹사이트에서 Termius를 설치할 수 있습니다. Google계정이 있다면, 소셜로그인을 사용하여 쉽게 로그인하고, 바로 사용해볼 수 있습니다.

서버 인증 정보 만들기

상단의 NEW HOST버튼을 클릭하여, 새로운 HOST를 만들 수 있습니다.
Address에는 SSH로 연결할 주소를 넣고,
“SSH on”에는 몇 번 포트로 연결할지 지정합니다.
마지막으로, 인증정보(Credentials)를 넣고 Connect를 눌러, SSH HOST를 생성할 수 있습니다.
인증정보는
아이디 / 비밀번호 입력 방식
본인의 SSH 키를 등록하는 방식
PEM키 파일을 따로 가져와서 사용하는 방식 (AWS와 같은 방식)
모두 지원합니다.
저는 이미 해당서버에, authorized_keys에 저의 공개키를 등록하였으므로, 이미 맥북에 설치된 ssh key를 등록하여 (2번 째 방식), 접속할 수 있었습니다.

등록된 Host를 통해 Remote Port Forwarding 진행하기

좌측에 Port Forwarding 항목이 존재합니다.
“NEW FORWARDING” 버튼을 클릭해 새로운 포트포워딩을 생성합니다.
Local, Remote, Dynamic중 하나를 선택해야 합니다.
이번에는 원격 서버에서 로컬 서버를 바라보도록 하고 싶으므로, Remote를 지정합니다.
host를 지정하라고 합니다. 아까 만들어준 host를 지정합니다.
선택된 host로 어떤 포트로 접속해야 Local로 연결시킬 수 있는지 포트 번호를 지정합니다.
이제 현재 로컬 환경에서 접속 가능한 주소/포트 번호를 입력하면, 여기에 입력된 정보로 포트포워딩이 됩니다.
당연히 저는 개발환경에서 테스트하므로, 127.0.0.1로 서버를 지정할 것이고, 목표 포트도 현재 오픈된 서버 포트로 지정하려고 합니다.
해당 포트포워딩을 더블 클릭하여, 포트포워딩을 실행하도록 합니다.
이제 원격서버에서 특정 포트로 연결을 하면, 로컬에서 오픈한 서버가 응답하게 됩니다.
이는 SSH 터널링으로 수행한 결과이므로, SSH만 연결이 된다면, 방화벽과 상관없이 동작합니다.

마무리

저는 개발을 편하게 작업하고 싶었습니다.
초반에는, 원격 서버에 직접 만든 WAS서버를 배포하고, localhost로 테스트하려고 했었지만,
곰곰히 생각해본 결과, 이러면 개발 속도가 너무 느려지고, 테스트가 필요한 변수마다 매번 Print문을 작성해야한다는 점이 비효율적이라고 느껴지고, 매우 귀찮아 보였습니다.
그러던 와중에 구글링을 하여 저와 같은 문제를 겪고 있는 사람들을 보았고,
그 해결책이 바로 SSH Remote Port Forwarding 이라는 것을 알게 되었습니다.
만약 여러분들도, 원격서버에서 바로 본인의 로컬서버를 바로 테스트해야 하는 경우가 있게 된다면, 위의 방식을 사용해보는 것을 추천해드립니다!
Forwarding을 CLI 로 수행하면 매우 불편하지만, Termius와 같은 도구와 함께 사용한다면, 이를 편하게 다루는 것도 가능하게 됩니다.
또한 이번시간에는 Remote Port Forwarding만 말했지만, 사실 내부망 환경에서 작업하는 경우가 많다면 모든 포트를 다 오픈하지 않은 경우가 많으므로, Local Port Forwarding을 통해서, 원격 서버에 방화벽으로 오픈되지 않은 포트를 가져와 사용하는 용도로 많이 사용되기도 합니다.
각각 필요한 상황에 맞추어서 사용하면 되겠습니다!
글 읽어주셔서 감사합니다!