📌 배경
최근에 로컬 환경에서 개발한 서버를 외부에 공개해야 하는 상황이 있었다.
보통 이런 경우에는 공유기에서 포트 포워딩을 설정해야 하지만, 아래와 같은 이유로 불가능했다:
- 공유기 관리자 권한이 없음
- 회사 / 기숙사 / 공용 네트워크 환경
- 보안 정책으로 포트 개방 제한
그래서 대안으로 선택한 것이 바로 ngrok이다.
🧠 ngrok이란?
ngrok은 로컬에서 실행 중인 서버를 공개 URL로 터널링해주는 도구다.
즉,
내 PC (localhost:3000)
↓
ngrok 서버
↓
https://xxxx.ngrok.io (외부 접속 가능)이런 구조로 동작한다.
⚙️ 설치 및 설정
1. ngrok 다운로드
brew install ngrok
2. 인증 토큰 등록
https://ngrok.com/ 회원가입 후 발급받은 토큰을 등록한다:
ngrok config add-authtoken <YOUR_AUTH_TOKEN>
🚀 사용 방법
1. 로컬 서버 실행
먼저 본인이 만든 아무서버나 실행을 한다.
→ localhost:3000 에 서버 실행
2. ngrok 실행
실행할 때 포트번호를 맵핑 해준다
ngrok http 3000
3. 결과 확인
터미널에 다음과 같은 URL이 생성된다:
https://abcd-1234.ngrok.io이 URL을 외부에서 접속하면 내 로컬 서버에 접속 가능하다.
⚠️ 주의사항
1. URL이 매번 변경됨 (무료 플랜)
무료는 매번 url이 변경된다라고 하지만 어차피 테스트 하는 상황에서 사용하므로 크게 문제 될껀 없었다.
2. 보안 문제
외부에 공개되는 만큼 주의 필요:
- 인증 없는 API 노출 금지
- 테스트 데이터만 사용
- 필요 시 Basic Auth 설정
예:
ngrok http -auth="user:password" 3000
3. 성능 제한
무료 플랜은 속도 및 연결 수 제한이 있음
👍 장점
- 포트포워딩 없이 외부 공개 가능
- 설정이 매우 간단
- NAT / 방화벽 환경에서도 사용 가능
- 웹훅 테스트에 최적
👎 단점
- URL 변경 (무료)
- 속도 제한
- 장기 운영에는 부적합
🧾 마무리
사실 단순 테스트가 목적이고 회사나 외부환경 같은 공유기를 컨트롤 할 수 없는 상황속에서는 ngrok이 좋은 대안이 될 수 있을 것 같다. 설치, 인증, 실행까지 되게 간단해서 동료간 테스트 할 때 사용하면 유용한 툴이다.