[Ngrok] - localhost를 외부에서 접속하는 방법

스윗포테이토·2022년 12월 27일
0

오늘은 로컬 서버를 외부에서 접속해야 할 때 좋은 서비스를 하나 소개하려고 한다.

원래 로컬의 서버를 외부에서 접속하려면, 내 public ip를 직접 알려야 하므로 보안적으로 좋은 선택이 아니다. 또한 공유기에서 포트포워딩 설정을 하는 것 또한 번거롭다.

Ngrok은 이런 번거로움 없이 로컬 서버를 안전하게 인터넷에 띄울 수 있게 도와주는 서비스이다.

사용법

  1. install ngrok
    공식 문서에 OS 별 설치 방법이 나와 있다.
  • MacOS
    brew install ngrok/ngrok/ngrok
  • Linux (라즈비언 포함)
    curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | \
          sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && \
          echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | \
          sudo tee /etc/apt/sources.list.d/ngrok.list && \
          sudo apt update && sudo apt install ngrok
  • Windows (chocolatey)
choco install ngrok
  1. add token
    만약 html 파일을 서빙하고 싶으면, ngrok 홈페이지에 가입한 후 토큰을 발급받아야 한다.
    [Getting Started] > [Your Auth Token]에서 Command Line을 터미널에 입력하면 토큰 등록이 끝난다.

  2. local server start
    로컬 서버를 시작한다. node, python, npm 등...

  3. start ngrok

    ngrok http <local-server-port-number>

    로컬 서버의 포트 번호를 입력해서 ngrok을 켜준다.

    연결이 완료 되면 위와 같이 뜨게 되는데, 이제 https://84c5df439d74.ngrok.io로 외부에서 접속을 하면 localhost:<port-number>로 포워딩을 해준다.

원리

ngrok을 시작하게 되면 ngrok client는 ngrok server와 local server를 잇는 secure tunnel을 생성하게 된다. 이 터널은 ngrok server와 localhost를 이어주는 VPN(Virtual Private Network)이 되고, 말하자면 ngrok server가 일종의 공개 리버스 프록시 서버인 셈이다.

profile
나의 삽질이 미래의 누군가를 구할 수 있다면...

0개의 댓글