공부/it 개발

ngrok으로 외부에서 로컬 서버 접속하기

묵묵님 2025. 2. 17. 08:10
반응형

개발을 하다보면 웹훅이나 다른 작업들을 할 때 로컬에 실행중인 서버를 외부에서 접근하여 테스트나 개발을 하고 싶을 때가 있습니다. 

이런 경우 크게 두 가지 방법을 소개해 드리려고 합니다. 

 

1. webhook.site를 이용하여 임시 url을 할당 받아 해당 사이트에서 작업 진행

- 이 경우 해당 사이트에 접속하여 임시로 url, email 등을 부여받아 작업할 수 있습니다.

 

2. ngrok을 사용하여 외부에서 로컬 서버 접속

ngrok은 로컬 서버를 외부 인터넷에 안전하게 노출시켜주는 터널링 도구로, 이를 통해 개발 중인 애플리케이션이나 테스트 서버를 공용 URL로 접근할 수 있게 해줍니다. 주요 내용은 다음과 같습니다 :)

  1. 기본 기능
    • 로컬에서 실행 중인 웹 서버(예: Django, Flask, Node.js 등)를 외부에서 접근 가능한 URL로 매핑해줍니다.
    • 터널링 방식으로 로컬 포트를 공용 URL에 연결하여, 외부 서비스(예: Zapier, Slack, 모바일 테스트 등)와 연동할 수 있습니다.
  2. 사용 예
    • 로컬 개발 환경에서 작성 중인 API를 외부 클라이언트나 협력자에게 테스트용으로 제공할 때 사용
    • 웹훅(Webhook) 테스트 시, 외부 서비스가 로컬 서버에 직접 요청을 보낼 수 있도록 해줌
    • 모바일 기기에서 로컬 개발 서버에 접근하여 테스트할 때 유용
  3. 사용 방법
    • ngrok 공식 웹사이트에서 다운로드 후, 설치
    • 계정을 생성하고 인증 토큰을 설정
    • 터미널에서 ngrok http [포트번호] 명령어를 실행하면, 공용 URL(예: https://abcd1234.ngrok.io)이 생성
    • 생성된 URL을 통해 외부에서 로컬 서버에 접근
  4. 보안 및 관리
    • ngrok은 HTTPS를 지원하여 안전한 연결을 제공합니다.
    • 무료 플랜과 유료 플랜이 있으며, 유료 플랜에서는 커스텀 서브도메인, 지속적인 URL 유지, 더 많은 연결 옵션 등을 제공합니다.
    • 웹 인터페이스(기본적으로 http://127.0.0.1:4040)를 통해 터널 상태와 요청 로그를 모니터링할 수 있습니다.

 

실제 저는 아래와 같이 작업했습니다.

# ngrok 설치
brew install ngrok

#ngrok 인증
ngrok config add-authtoken token

#ngrok 실행
ngrok http http://localhost:8000

 

ngrok 실행 명령어를 입력하면 아래와 같이 나오는데요, forwarding 쪽의 https://a04f-112-221-554-112.ngrok-free.app 주소를 사용하면 외부에서 로컬 서버로 접속할 수 있습니다

Session Status                online
Account                       계정정보
Version                       3.19.1
Region                        Japan (jp)
Latency                       39ms
Web Interface                 http://127.0.0.1:4040
Forwarding                    https://a04f-112-221-554-112.ngrok-free.app -> http://localhost:8000

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

 

 

요약!!
ngrok은 로컬 개발 환경을 외부와 쉽게 연동할 수 있도록 도와주는 유용한 도구로, 특히 웹훅 테스트나 외부 서비스 연동, 모바일 테스트 환경 구축에 매우 유용