ngrok

채병주·2022년 10월 17일
1

외부 인터넷망에서 간단하게 localhost로 접속하도록 도와주는 ngrok 사용 방법

1. ngrok란?

ngrok 란 외부 인터넷 망에서 로컬 PC로 접속하는 방법을 제공하는 툴이다.
설치 페이지에는 'secure tunnels to localhost'라고 설명되어 있다.
일반적으로 외부 인터넷 망에서 로컬 PC로 접속할 때에는 방화벽 때문에 보안 상의 문제도 있고, 신경써야 할 점들이 존재한다.
하지만 ngrok 를 사용하면 그런 부분을 신경쓰지 않고 평소 로컬 PC에서 작업을 하던 프로세스 그대로 외부 인터넷 망으로 공유할 수 있다는 장점이 있다.

2. ngrok 설치 방법

설치 방법은 매우 간단하다.
공식 사이트에 접속하여 운영체제에 맞는 버전을 다운받아주면 된다.
리눅스나 맥의 경우에는 command line을 이용하여 설치가 가능하다.

# linux : snap으로 설치
sudo snap install ngrok

# mac : brew로 설치
brew install --cask ngrok

이때 brew 사용 시 --cask 옵션을 사용하면 GUI 어플리케이션을 설치한다.

3. ngrok 사용 방법

사용방법 역시 간단하다.
localhost 에서 3000번 포트를 사용하고 있을 때, 아래 명령어를 사용하면 된다.

ngrok http 3000


그러면 위와 같은 창이 뜨는 것을 알 수 있다.
여기서 'Forwarding'에 표시된 주소로 접속하면 외부 인터넷망에서도 접속이 가능하다.


'Web Interface'는 ngrok에서 받은 http request에 대한 내용과 접속 로그를 확인할 수 있다.

request에 대한 inspect 뿐만 아니라 ngrok의 설정 옵션과 접속 속도와 같은 status 정보도 확인이 가능하다.
Web Interface의 경우 default 포트는 4040 이다.

참고로 기본적인 세션 유지시간은 2시간이다.
만약 세션이 더 길게 필요한 경우, ngrok 사이트에 가입하여 인증 토큰을 발급받으면 세션 시간 제한 없이 사용이 가능하다.

사이트 가입은 어렵지 않으며, 사이트 가입이 완료되면 'AuthToken' 탭에서 토큰을 확인할 수 있다.
토큰을 발급 받고 아래 명령어를 이용하면 세션이 만료되지 않는 ngrok 를 사용할 수 있다.

ngrok http 3000 --authtoken [AuthToken]


위의 명령어를 사용했을 때는 Session Expires와 같은 정보 대신에 Account 정보가 뜨는 것을 확인할 수 있다.

4. 마무리

ngrok의 경우 웹 개발 과정에서 디자이너나 기획자에게 진행 상황을 공유할 때 방화벽이나 보안에 대해 신경쓰지 않고 손쉽게 공유해줄 수 있는 툴이다.
실제 서비스에서 사용하는 것은 무리겠지만, 진행 중인 프로젝트를 간단히 팀원들에게 공유하기에 아주 좋은 툴이라고 생각한다.
추가적으로 tmuxpm2 등을 이용하면 터미널 종료로 인한 세션 만료 걱정 없이 사용이 더 편리하다.
(단, pm2 는 예전에 썼었던 것 같은 가물가물한 기억이라 아닐 수도 있음...)

참고자료

profile
개발 외의 일들에 더 흥미를 가지는 개발자. Interested in Web, Generative AI, UI/UX.

0개의 댓글