ngrok은 개발 중인 로컬 서버를 인터넷 어디서든 접속할 수 있도록 외부에 터널링해주는 서비스예요. 복잡한 네트워크 설정 없이 간단한 명령어 하나로 내 컴퓨터의 로컬 환경을 외부에서 바로 확인할 수 있죠. 특히 웹훅 테스트, 클라이언트 데모 시연, 모바일 앱 개발 시 API 연동 테스트 등 개발 효율을 극적으로 높이고 싶을 때 정말 유용하게 쓸 수 있어요.

ngrok, 도대체 왜 필요하고 어떤 상황에 쓸 수 있나요?
ngrok이 필요한 이유는 간단해요. 보통 개발 중인 웹 서버는 내 컴퓨터, 즉 로컬 환경에서만 접속할 수 있잖아요. 이걸 다른 사람과 공유하거나, 외부 서비스와 연동하려면 복잡한 방화벽 설정이나 포트 포워딩 같은 네트워크 지식이 필요하죠. 하지만 ngrok은 이런 번거로운 과정 없이 단 몇 초 만에 내 로컬 서버에 퍼블릭 URL을 부여해서 인터넷 어디서든 접근 가능하게 만들어줘요.
주로 다음과 같은 상황에서 ngrok을 유용하게 쓸 수 있어요:
- 웹훅(Webhook) 테스트: 외부 서비스(예: GitHub, Slack, 결제 시스템)에서 내 로컬 개발 서버로 이벤트를 보내야 할 때 ngrok 터널링으로 손쉽게 테스트할 수 있어요.
- 클라이언트 데모 시연: 아직 배포되지 않은 개발 버전을 클라이언트나 팀원에게 보여주고 피드백을 받을 때 아주 효과적이에요.
- 모바일 앱 API 개발: 모바일 앱에서 개발 중인 백엔드 API를 호출해야 할 때 ngrok으로 로컬 API 서버를 외부로 노출시켜 연동 테스트를 진행할 수 있어요.
- IoT 장치 테스트: 외부 네트워크에 있는 IoT 장치에서 내 로컬 서버로 데이터를 보낼 때도 ngrok이 편리해요.

ngrok 설치, 딱 두 단계로 끝내는 초간단 가이드
ngrok 설치는 정말 간단해서 누구나 쉽게 따라 할 수 있어요. 딱 두 단계면 끝나요.
- ngrok 다운로드:
- ngrok 공식 웹사이트(ngrok.com)에 접속해서 운영체제에 맞는 버전을 다운로드해요.
- 다운로드 후 압축을 풀면
ngrok실행 파일 하나만 나오는데, 이걸 시스템 PATH에 추가하면 어느 위치에서든 명령어를 쓸 수 있게 돼요. (macOS/Linux는/usr/local/bin같은 곳으로 옮기면 편해요.)
- 인증 토큰(Auth Token) 연결:
- ngrok 웹사이트에서 회원가입을 하면 대시보드에서 개인 인증 토큰을 확인할 수 있어요.
- 터미널에서
ngrok authtoken <당신의 인증 토큰>명령어를 입력해서 ngrok CLI와 계정을 연동해줘요. 이 과정은 딱 한 번만 해주면 돼요.
ngrok 사용법, 가장 많이 쓰는 터널링 명령어 3가지
설치가 끝났으니 이제 ngrok을 이용해서 로컬 서버를 외부에 노출시켜볼까요? 가장 많이 쓰는 명령어 세 가지를 알려드릴게요.
- HTTP/HTTPS 웹 서버 터널링:
- 가장 일반적인 사용법이에요. 내 로컬 웹 서버가
80번 포트로 실행 중이라면 아래처럼 입력해요. ngrok http 80- 실행하면
Forwarding주소에https://<랜덤문자열>.ngrok-free.app형태의 공용 URL이 나와요. 이 주소로 외부에서 내 로컬 서버에 접속할 수 있게 되죠.
- 가장 일반적인 사용법이에요. 내 로컬 웹 서버가
- 특정 포트 터널링:
- 만약 로컬 웹 서버가
3000번이나8080번 같은 다른 포트로 실행 중이라면, 포트 번호만 바꿔서 입력해요. ngrok http 3000또는ngrok http 8080
- 만약 로컬 웹 서버가
- SSH, 데이터베이스 등 TCP 포트 터널링:
- 웹 서버뿐만 아니라 SSH (
22번 포트), 데이터베이스 등 일반적인 TCP 연결이 필요한 서비스도 ngrok으로 터널링할 수 있어요. ngrok tcp 22- 이 경우에도
Forwarding주소에tcp://<랜덤문자열>.ngrok.io:<포트번호>형태의 주소가 나오는데, 이 주소와 포트 번호를 사용해서 외부에서 접속할 수 있어요.
- 웹 서버뿐만 아니라 SSH (

ngrok 유료 vs 무료, 어떤 차이가 있을까요?
ngrok은 무료 플랜으로도 충분히 많은 기능을 활용할 수 있지만, 전문적인 용도로 사용하려면 유료 플랜을 고려해볼 만해요.
무료 플랜 (Free Tier):
- 랜덤 URL: 터널을 열 때마다 주소가 무작위로 생성돼요.
- 세션 제한: 한 번에 하나의 터널만 활성화할 수 있어요.
- 세션 시간 제한: 터널 연결이 몇 시간 후에 끊길 수 있어요. (대략 8시간)
- 대역폭 제한: 데이터 전송량에 제한이 있어요.
유료 플랜 (Paid Plans):
- 고정 URL/커스텀 도메인: 매번 바뀌는 주소 대신 고정된 URL을 사용하거나, 직접 소유한 도메인을 연결할 수 있어요. (예:
dev.mydomain.com) - 여러 터널 동시 실행: 동시에 여러 개의 로컬 서버를 외부에 노출할 수 있어요.
- 무제한 세션 시간: 터널 연결이 끊기지 않고 계속 유지돼요.
- IP 화이트리스트: 특정 IP 주소에서만 접속을 허용하는 등 보안 기능을 강화할 수 있어요.
- 향상된 성능과 안정성: 더 많은 대역폭과 안정적인 연결을 제공해요.

마무리
ngrok은 복잡한 네트워크 설정 때문에 골머리 앓던 개발자들에게 가뭄의 단비 같은 도구예요. 딱 몇 분 투자해서 익혀두면 웹훅 테스트부터 클라이언트 데모까지, 당신의 개발 라이프가 훨씬 스마트하고 효율적으로 바뀔 거예요. 오늘 바로 ngrok을 경험해보고 개발 생산성을 한 단계 업그레이드해보세요!
이어서 보면 좋은 글
#ngrok #로컬서버 #개발툴 #외부접속 #웹훅테스트 #데모시연 #네트워크설정 #개발자필수템 #생산성향상 #터널링