ngrok을 이용한 로컬 네트워크 터널링

외부에서 localhost 접속하기

Posted on 2019-10-18

ngrok을 이용한 로컬 네트워크 터널링

GitLab의 Webhook을 이용해 Jenkins job 실행을 트리거하는 동작을 테스트하던 중이었다. 로컬에 설치한 Jenkins로 훅킹되는지 확인하려고 했으나 localhost 로의 훅킹을 지원하지 않았다. Jenkins 서버를 구성해야하나 싶었는데 로컬에 훅킹할 수 있는 방법이 없을까 찾아보니 ngrok 이라는 것을 알게 되었다.

ngrok방화벽 넘어 외부에서 로컬에 접속 가능하게 하는 터널 프로그램이다.

ngrok을 다운로드 받아 압축을 푼다. 그리고 HTTP 서버를 외부에 열기 위해 파일 경로에서 아래 명령어를 실행하면 다음과 같이 나타난다.

./ngrok http 4000

ngrok

터미널 창 전체가 ngrok 의 접속 상태를 알 수 있는 대시보드처럼 나온다. http://localhost:4000 에 대한 임시 도메인(http://14076782.ngrok.io, https://14076782.ngrok.io)과 연결해 터널을 열어준 것을 볼 수 있다.
외부에서 해당 도메인으로 접근하면 정상적으로 연결된다.

추가로 해당 도메인에 접근한 요청 로그가 남는다. 터미널 상의 Web Interface 주소(localhost:4040)로 접근하면 아래와 같이 요청 및 상태에 대해 웹에서 확인할 수 있다.

ngrok ui

ngrok 덕분에 로컬 환경에서 Webhook 테스트를 쉽게 할 수 있었다.



Reference