////
Search

ngrok

목차

설치

사이트에서 파일을 설치해도 되지만, Mac 환경이라면 brew 를 사용하여 설치해도 된다.
설치 환경 : Mac OS 11.2.3 (Apple M1 칩)
brew install --cask ngrok
Bash
복사

사용법

만약 로컬 서버 포트가 5000 번 이라고 가정하였을 때, 아래와 같이 명령어를 실행한다.
Flask 서버 예시
ngrok http 5000
Bash
복사
실행 시, 아래와 같이 외부에서 접속할 수 있는 URL을 확인할 수 있으며 접속 또한 가능하다.
보통은 2개의 URL을 제공해주는 하다.

세션 관련 문제 해결

기본적인 명령어를 사용했을 때, 세션 유지시간은 2시간이다.
이 2시간이 지나면 자동으로 세션이 종료되어 재 시작을 해줘야 하며, 이 경우에는 접속 가능한 URL이 변경된다.
간단한 테스트에는 2시간 정도로 충분하겠지만, 세션이 길게 필요한 특수한 경우 ngrok 사이트에 접속하여 가입한 후 확인할 수 있는 인증 토큰을 사용하여 세션 시간에 제한 받지 않고 사용할 수 있다.
만약 발급받은 인증 세션이 test1234567890 이라면 아래와 같이 명령어를 사용하면 된다.
# ngrok http [LOCAL_SERVER_PORT] --authtoken [Auth_Token] ngrok http 5000 --authtoken test1234567890
Bash
복사
아래와 같이 Session Status 항목이 online 으로 변경되었으며, 세션 만료 시간이 나타나지 않는것을 확인할 수 있다.

Static Domain 설정

NGROK은 로그인하여 사용할 때는 세션을 무제한으로 제공하기도 하지만, 고정 도메인 하나까지는 무료로 제공해준다.
이를 이용하여, WebHook등을 테스트하는 등 사용할 수 있다.

Docker를 사용하여 터미널 없이 NGROK 사용하기

아래 명령어를 사용하면, 자동으로 설정된 Static Domain으로 NGROK을 항상 활성화 할 수 있다.
docker run \ --net=host \ # 호스트 네트워크 모드를 사용합니다. -it \ # 인터랙티브 터미널을 활성화합니다. -d \ # 컨테이너를 백그라운드에서 실행합니다. --restart always \ # 컨테이너를 항상 재시작하도록 설정합니다. --name ngrok_container \ # 컨테이너 이름을 'ngrok_container'로 지정합니다. -e NGROK_AUTHTOKEN=$NGROK_TOKEN \ # NGROK 인증 토큰을 환경 변수로 전달합니다. ngrok/ngrok http 5678 \ # ngrok 이미지를 사용하여 5678 포트를 터널링합니다. --url=$NGROK_DOMAIN # URL을 환경 변수 $NGROK_DOMAIN으로 지정합니다.
Bash
복사
파워쉘 사용 시
docker run --net=host -it -d --restart always --name ngrok_container ` -e NGROK_AUTHTOKEN=$env:NGROK_TOKEN ` ngrok/ngrok http 5678 --url=$env:NGROK_DOMAIN
PowerShell
복사