윈도우에 ngrok 설치하고 사용하기
윈도우에 ngrok 설치하고 사용하기
윈도우에 ngrok 설치하고 사용하기
Ngrok은 로컬 개발 환경에서 외부 인터넷으로 서비스를 노출해야 할 때 매우 유용한 도구입니다. 윈도우 환경에서 웹훅 테스트, 클라이언트 데모 공유, 또는 임시 서버 접근 등 다양한 상황에서 ngrok은 개발 워크플로우를 크게 향상시킬 수 있습니다. 이 글에서는 윈도우 운영체제에 ngrok을 설치하고 기본적인 사용법부터 몇 가지 팁까지 자세히 알아보겠습니다.
ngrok이란 무엇인가요?
Ngrok은 로컬 컴퓨터에서 실행 중인 웹 서버나 기타 네트워크 서비스를 안전하게 퍼블릭 인터넷으로 노출시켜주는 터널링 서비스입니다. 이는 방화벽 뒤에 있거나 NAT(Network Address Translation) 환경에 있는 로컬 서버에 외부에서 접근할 수 있도록 임시적인 퍼블릭 URL을 제공함으로써 가능해집니다. 마치 복잡한 네트워크 설정 없이도, 여러분의 로컬 PC에 외부 인터넷에서 접근할 수 있는 전용 터널을 만들어주는 것과 같습니다.
ngrok의 주요 기능과 장점
Ngrok을 사용하면 개발 중인 웹 애플리케이션을 외부 서비스와 연동하여 테스트하거나, 팀원 또는 클라이언트에게 실시간으로 진행 상황을 공유하는 것이 매우 간편해집니다. 특히, 웹훅(Webhook)을 테스트할 때 콜백 URL을 퍼블릭하게 노출해야 하는 경우 ngrok은 필수적인 도구로 활용됩니다. 또한, 일시적으로 로컬 서버에 외부 접근이 필요할 때 복잡한 라우터 설정이나 포트 포워딩 없이 몇 번의 명령으로 해결할 수 있어 시간과 노력을 절약해 줍니다.
ngrok 설치 전 준비물
윈도우에 ngrok을 설치하고 사용하기 전에 몇 가지 간단한 준비물이 필요합니다. 가장 먼저, ngrok 서비스를 다운로드하고 실행하기 위한 윈도우 운영체제 기반의 컴퓨터가 필요합니다. 또한, ngrok이 외부와 통신할 수 있도록 안정적인 인터넷 연결이 필수적입니다.
ngrok 계정 생성 및 로컬 서버 준비
Ngrok은 기본적인 기능은 계정 없이도 사용할 수 있지만, authtoken
을 사용하여 계정을 연동하면 더 안정적이고 다양한 기능을 활용할 수 있습니다. Ngrok 공식 웹사이트에서 무료 계정을 생성하는 것을 권장하며, 이는 나중에 여러분의 ngrok 클라이언트를 계정에 연결하는 데 사용됩니다. 마지막으로, ngrok을 통해 외부로 노출할 로컬 서버가 필요합니다. 예를 들어, 로컬에서 실행 중인 웹 서버나 API 서버 등이 될 수 있습니다.
윈도우에 ngrok 설치하기
이제 윈도우 시스템에 ngrok을 설치하는 구체적인 단계를 살펴보겠습니다. 이 과정은 매우 간단하며, 몇 분 안에 완료할 수 있습니다.
1단계: ngrok 다운로드
먼저, ngrok 공식 웹사이트(https://ngrok.com/download)에 접속하여 윈도우용 ngrok 실행 파일을 다운로드해야 합니다. 페이지에 접속하면 운영체제별 다운로드 옵션이 있는데, 여기서는 “Windows”를 선택하여 ZIP 파일을 다운로드합니다. 이 파일은 압축된 형태이므로 다운로드 후 압축을 풀어야 합니다.
2단계: ngrok 압축 해제 및 경로 설정
다운로드한 ngrok.zip
파일의 압축을 해제합니다. 압축을 풀면 ngrok.exe
실행 파일이 나타납니다. 이 실행 파일을 여러분이 편리하게 관리하고 접근할 수 있는 위치로 이동시키는 것이 좋습니다. 예를 들어, C:\ngrok
과 같은 전용 폴더를 만들거나, 이미 시스템 PATH에 추가된 폴더(예: C:\Windows\System32
)에 넣을 수 있습니다. PATH에 추가하면 어느 디렉토리에서든 ngrok
명령어를 바로 실행할 수 있어 편리합니다.
3단계: ngrok 계정 연결 (Authtoken 설정)
Ngrok을 효율적으로 사용하기 위해서는 여러분의 ngrok 클라이언트를 계정에 연결하는 과정이 필요합니다. 이는 authtoken
을 사용하여 이루어지며, ngrok 대시보드(https://dashboard.ngrok.com/get-started/your-authtoken)에서 찾을 수 있습니다. 터미널(명령 프롬프트 또는 PowerShell)을 열고, 다운로드한 ngrok.exe
파일이 있는 디렉토리로 이동한 후 다음 명령어를 실행합니다.
ngrok authtoken <YOUR_AUTHTOKEN>
위 명령어에서 <YOUR_AUTHTOKEN>
부분은 여러분의 ngrok 대시보드에서 확인한 실제 authtoken
값으로 대체해야 합니다. 이 명령어를 실행하면 authtoken
이 여러분의 컴퓨터에 안전하게 저장되어, 이후 ngrok을 사용할 때 자동으로 계정에 연결됩니다.
ngrok 기본 사용법
ngrok 설치 및 계정 연결이 완료되었다면, 이제 로컬 서버를 외부로 노출하는 방법을 알아보겠습니다. ngrok의 가장 일반적인 사용 사례는 HTTP/HTTPS 트래픽을 터널링하는 것입니다.
로컬 웹 서버 노출하기
여러분의 로컬 컴퓨터에서 웹 서버가 특정 포트(예: 80, 3000, 8080 등)에서 실행 중이라고 가정해 봅시다. 예를 들어, 로컬 웹 서버가 포트 80에서 실행 중이라면, 다음 명령어를 사용하여 ngrok 터널을 시작할 수 있습니다.
ngrok http 80
명령어를 실행하면 ngrok은 여러분의 로컬 포트 80에 대한 퍼블릭 URL을 생성하고 터미널에 표시해 줍니다. 출력되는 정보에는 Forwarding
으로 시작하는 두 개의 URL이 포함됩니다. 하나는 HTTP 버전이고, 다른 하나는 HTTPS 버전입니다.
Session Status online
Account YourName (Plan: Free)
Version 3.x.x
Region United States (us)
Latency -
Web Interface http://127.0.0.1:4040
Forwarding http://xxxx-xxxx-xxxx-xxxx.ngrok-free.app -> http://localhost:80
Forwarding https://xxxx-xxxx-xxxx-xxxx.ngrok-free.app -> http://localhost:80
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
위 예시에서 https://xxxx-xxxx-xxxx-xxxx.ngrok-free.app
과 같은 URL이 여러분의 로컬 웹 서버에 외부에서 접근할 수 있는 퍼블릭 주소입니다. 이 URL을 웹 브라우저에 입력하거나 다른 사람과 공유하면, 그들은 여러분의 로컬 서버에 직접 접근할 수 있습니다. 터널을 중지하려면 터미널에서 Ctrl+C
를 누르면 됩니다.
웹 인터페이스 확인
ngrok이 실행 중일 때, 터미널에 표시되는 Web Interface
URL(보통 http://127.0.0.1:4040
)에 접속하면 ngrok 대시보드를 볼 수 있습니다. 이 대시보드에서는 현재 활성화된 터널의 상태, 들어오는 요청, 그리고 발생한 오류 등을 실시간으로 확인할 수 있어 디버깅에 매우 유용합니다.
ngrok 고급 사용법 및 팁
ngrok은 단순히 HTTP 트래픽을 노출하는 것 외에도 다양한 고급 기능을 제공합니다. 이러한 기능들을 활용하면 개발 및 테스트 환경을 더욱 효율적으로 관리할 수 있습니다.
다른 프로토콜 터널링
ngrok은 HTTP뿐만 아니라 TCP, TLS 등 다른 프로토콜도 터널링할 수 있습니다. 예를 들어, 로컬 SSH 서버(기본 포트 22)를 외부로 노출하고 싶다면 다음과 같이 명령어를 사용할 수 있습니다.
ngrok tcp 22
이는 로컬에서 실행 중인 SSH 서버에 외부에서 접속해야 할 때 유용하며, 원격 개발 환경을 구축할 때 활용될 수 있습니다. 마찬가지로 특정 포트의 TLS 트래픽을 터널링하려면 ngrok tls <포트>
명령어를 사용합니다.
서브도메인 및 사용자 지정 도메인
무료 ngrok 계정은 무작위로 생성되는 서브도메인(xxxx-xxxx-xxxx-xxxx.ngrok-free.app
)을 제공합니다. 그러나 유료 플랜을 사용하면 your-app.ngrok.io
와 같이 사용자 지정 서브도메인을 설정하거나, 여러분이 소유한 도메인(yourdomain.com
)을 ngrok 터널에 연결할 수 있습니다. 이는 데모나 장기적인 테스트 환경에서 보다 전문적인 인상을 줄 수 있습니다.
웹훅 테스트에 ngrok 활용하기
Ngrok은 웹훅 테스트에 최적화된 도구입니다. Stripe, Slack, GitHub 등 외부 서비스가 여러분의 로컬 서버로 이벤트를 전송해야 할 때, ngrok이 제공하는 퍼블릭 URL을 웹훅 콜백 URL로 등록할 수 있습니다. 이렇게 하면 복잡한 배포 과정 없이 로컬 개발 환경에서 바로 웹훅 이벤트를 수신하고 디버깅할 수 있습니다.
정적 파일 서버 활용
ngrok은 간단한 정적 파일을 제공하는 데도 사용될 수 있습니다. 특정 디렉토리의 파일을 HTTP 서버처럼 노출하고 싶다면 해당 디렉토리에서 다음 명령어를 실행할 수 있습니다.
ngrok http file:///path/to/your/files
이는 간단한 웹 페이지나 이미지 파일을 빠르게 공유해야 할 때 유용합니다.
ngrok 사용 시 주의사항
ngrok은 강력하고 편리한 도구이지만, 몇 가지 주의할 점을 염두에 두어야 합니다. 특히 보안과 사용량 제한에 대한 이해가 중요합니다.
보안 고려사항
ngrok을 통해 로컬 서버를 인터넷에 노출하는 것은 외부에서 해당 서버에 접근할 수 있게 만드는 것을 의미합니다. 따라서 민감한 정보나 중요 시스템을 ngrok을 통해 장시간 노출하는 것은 보안 위험을 초래할 수 있습니다. 필요한 경우에만 터널을 활성화하고, 사용하지 않을 때는 즉시 중지하는 것이 좋습니다. 또한, 접근 제어와 인증 메커니즘을 로컬 서버에 추가하여 무단 접근을 방지해야 합니다.
무료 계정의 제한 사항
ngrok의 무료 계정은 몇 가지 사용량 제한이 있습니다. 주로 터널 세션당 연결 시간 제한, 한 번에 활성화할 수 있는 터널 수 제한, 그리고 터널이 다시 시작될 때마다 URL이 변경되는 점 등이 있습니다. 이러한 제한은 일시적인 테스트나 데모에는 충분하지만, 지속적인 서비스나 고정된 URL이 필요한 경우에는 유료 플랜을 고려해야 합니다.
네트워크 환경과 성능
ngrok은 여러분의 로컬 컴퓨터와 ngrok 서버 간에 데이터를 전송하므로, 인터넷 연결 속도와 안정성이 서비스 성능에 영향을 미칩니다. 대용량 트래픽이나 낮은 지연 시간이 요구되는 서비스에는 적합하지 않을 수 있으며, 이는 ngrok이 로컬 개발 및 테스트를 위한 도구라는 점을 다시금 상기시켜 줍니다.
윈도우 환경에서 ngrok을 설치하고 사용하는 과정은 매우 직관적이며, 복잡한 네트워크 지식 없이도 로컬 개발 환경을 외부와 연결할 수 있게 해줍니다. 웹훅 테스트부터 클라이언트 데모 공유, 임시 원격 접근까지 ngrok은 개발자의 워크플로우를 효율적으로 지원합니다. 항상 보안을 염두에 두고 필요한 경우에만 서비스를 노출하는 현명한 사용을 권장합니다. ngrok은 분명 여러분의 개발 생산성을 한 단계 끌어올릴 강력한 도구가 될 것입니다.
글 이해도 확인 문제:
- ngrok을 윈도우에 설치한 후, 로컬 웹 서버(예: 포트 3000)를 외부로 노출하려면 어떤 명령어를 사용해야 하나요?
- ngrok 무료 계정을 사용할 때, 가장 큰 제한 사항 중 하나는 무엇이며, 이는 어떤 상황에서 불편함을 초래할 수 있나요?
Date | Title | Author |
---|---|---|
Jan 1, 3000 | 전체 카테고리 | |
Jun 5, 2025 | FastAPI에서 문서 접속을 환경설정으로 제한하는 방법 | |
May 5, 2025 | 포트를 점유하고 있는 서비스 제거하기 | |
Mar 20, 2025 | 우분투(Ubuntu)에서 ngrok 설치 및 사용 방법 | |
Feb 4, 2025 | Windows 11에서 WSL 설치 및 Docker 연결하기 | |
Oct 7, 2024 | Docker Compose로 Jenkins 설치 및 사용하기 | |
Aug 23, 2024 | 우분투(Ubuntu)에서 특정 폴더를 아파치 서버로 설정하기 | |
Jul 24, 2024 | GitHub Actions 시작하기 | |
Dec 31, 2023 | 우분투와 윈도우 파일 공유하기 (samba) | |
Dec 5, 2023 | crontab을 이용해서 Let’s Encrypt SSL 인증서 자동갱신 | |
Nov 27, 2023 | 우분투 docker, docker-compse 설치 | |
Nov 26, 2023 | AWS 호스팅 EC2 와 Lightsail의 차이 | |
Nov 20, 2023 | wsl 이미지 저장 위치 변경 및 백업 | |
Nov 20, 2023 | airflow postgresoperator 사용하기 | |
Nov 18, 2023 | docker-compose로 airflow 설치하기 | |
Nov 15, 2023 | wsl2에 docker 설치하기 | |
Nov 15, 2023 | mkfifo를 이용한 IPC | |
Oct 9, 2023 | Github Pull Request 템플릿 적용하기 |