[Node.js] 외부망에서 로컬호스트 접속하기(ngrok)

1. ngrok 란?

외부망(public)에서 localhost에 접근하기 위해서는 포트포워딩 과정이 필요한데 이 과정을 간소화해주는 작업을 ngrok에서 할수 있습니다.

 

이것을 ngrok에서는 Secure tunnels to localhost 라고 설명하고 있습니다.

외부망에서 localhost 접속을 위한 터널을 열어준다 혹은 터널링이라고도 표현합니다.

 

2. ngrok 설치

brew로 설치를 진행합니다.

설치가 안되어있다면 먼저 진행하고 와주세요.

2021.10.13 - [MacOS] - [MacOS] Homebrew 설치 및 사용법

 

[MacOS] Homebrew 설치 및 사용법

1. Homebrew(홈브류)란? 단순하게 패키지 관리자라고 할수도 있고 더 풀어보자면 macOS에서 소프트웨어 설치를 간편하게 가능하게 해주는 소프트웨어입니다. 쉽게 말해 개발 환경설정에 필요한 JDK, N

dvlpr-chan.tistory.com

brew install --cask ngrok

brew 설치가 완료되었다면 ngrok를 설치해줍니다.

 

3. ngrok 실행

ngrok http <PORT_NUMBER>

위 명령어로 원하는 포트를 열어줍니다.

이러면 끝인데.. 저는 제 로컬 8080 포트를 열어주었습니다.

터미널을 보면 Forwarding 항목이 보일텐데 이 주소에 접속하면 됩니다.

URL에 접속하게 되면 실시간 로그도 볼 수 있습니다.

 

3-1. 백그라운드에서 ngrok 실행

ngrok http 8080 > /dev/null &

이렇게 실행하면 터미널을 꺼도, SSH 접속을 종료해도 백그라운드에서 계속 돌아간다

 

curl http://127.0.0.1:4040/api/tunnels

백그라운드 실행 후 위 endpoint를 호출하면 터널링 된 url을 조회할 수 있다

 

LTE 환경에서 접속한 모습

 

4. Session Expires

ngrok의 기본 세션은 8시간입니다.

8시간 이상의 세션이 필요한 경우 ngrok에 가입하여 토큰을 설정하면 됩니다.

 

ngrok http 8080 --authtoken <YOUR_AUTH_TOKEN>