배포를 하기엔 클라우드 비용이 부담스러워서 내 컴퓨터 외에서도 잘 실행되는지 궁금할 때가 있다. 또는 잠깐의 시간동안 공유를 하는 경우 배포보다 유용한 도구가 있어 사용해봤다.

ngrok은 로컬 서버를 인터넷을 통해 외부에서 접근 가능하도록 만들어주는 도구이다. 개발 및 테스트 환경에서 사용된다.

클라우드 서버 없이도 인터넷만 가능한 환경이라면 로컬 서버에 접속을 가능하게 해준다.

 

1. 회원가입

- 먼저 ngrok 공식 웹사이트에서 회원가입을 해야 한다.

https://dashboard.ngrok.com/signup

 

2. 다운로드

- 다운로드는 각자 운영체제에 맞는 것으로 다운 받으면 된다.

- 윈도우 기준으로 압축파일을 다운 받아 압축을 풀어주면 ngrok.exe 파일 하나가 들어 있고 용량은 45.9MB라 크게 부담이 없다.

https://download.ngrok.com/windows?tab=download

 

Download ngrok

Download ngrok

download.ngrok.com

 

3. ngrok.exe 실행

- ngrok.exe 파일만 더불 클릭하면 설치하는 것도 없이 바로 이렇게 ngrok 터미널이 실행된다.

 

4. 인증 토큰 등록하기

- 실행 후 ngrok 인증 토큰 등록이 필요하다. 인증토큰 후 회원가입 후 ngrok 사이트 대시보드에서 확인 가능하다.

- 토큰은 한번 등록하면 일반적으론 같은 컴퓨터에선 다시 등록하지 않아도 된다.

- 컴퓨터를 새로 변경하거나 ngrok를 새로 설치했거나 인증토큰이 만료 또는 변경된 경우에는 재등록이 필요하다.

- 아래 명령어가 인증토큰과 함께 대시보드에 나와있어서 바로 붙여넣기 하면 등록이 완료된다.

ngrok config add-authtoken 인증토큰

- 인증 토큰 등록이 완료되면, 이렇게 아래 경로로 ngrok.yml 파일이 생성이 되는데 경로는 사용자마다 다를 수 있다.

- 이 ngrok.yml 파일에 인증토큰이 저장되므로 이후 ngrok 실행 시 자동으로 인증된다.

 

5. 로컬에서 웹 서버 실행

- flask로 간단한 웹을 만들고 있었어서 flask를 vscode에서 실행했다.

- ngrok를 사용하려면 반드시 로컬에서 웹 서버가 실행 중이어야 한다.

 

6. ngrok를 통해 로컬에서 실행중인 특정 포트를 외부에서 접근 가능하게 터널링

- 위에서 flask를 사용했고 따로 포트 설정을 안 했다면 flask는 기본적으로 5000번 포트를 사용하기 때문에 5000을 넣어줬다.

- ngrok 명령어를 통해 이 포트를 외부에 노출하면, 로컬 Flask 애플리케이션을 외부에서 테스트하거나 공유할 수 있다.

- Forwarding 옆에 있는 부분이 외부에서 접근 가능한 url이다.

ngrok http 5000

 

7. 실행

- 화살표 앞에 .app까지가 실행 주소이다.

- url을 붙여넣으면 visit site라는 버튼이 표시되고 클릭하면 내가 개발하던 화면이 나타난다.

- 무료 플랜이었기 때문에 연결 시간이 길지는 않으며, 한번 종료하면 다시 실행할 때마다 url이 바뀐다.

- 유료 플랜의 경우 고정된 서브도메인 사용도 가능하며 연결 시간이 더 긴 혜택 등이 있다.

 

8. ngrok 종료

- 터미널에서 ctrl + c로 종료

 

 

 

* 여러 도메인 할당

- 무료 플랜에서는 제한은 있기는 하나 ngrok에 여러 도메인 할당도 가능하다.

- 실행해야 하는 로컬 서버가 두 개 이상인 경우 다중 터널 생성이 가능하다.

- 이런 식으로 두 개의 터널을 각각 생성하면 두 개의 외부 도메인이 생성되고, 서로 다른 두 개의 url이 각각 생성된다.

ngrok http 5000
ngrok http 8000

- 여러 터널을 한 번에 실행하려면 ngrok.yml 설정 파일을 수정하면 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts