IT 개인학습/Memo

💡 Node.js와 PM2로 ngrok을 상시 실행하는 방법

그때 그때 끄적 2025. 5. 9. 16:57
반응형

ngrok은 로컬 서버를 외부에 노출시킬 수 있도록 해주는 매우 유용한 도구입니다. 하지만 일반적으로 터미널에서 실행하면 창을 닫거나 컴퓨터를 재시작할 경우 ngrok도 꺼지게 됩니다. 이 문제를 해결하기 위해 Node.js의 프로세스 관리자 PM2를 사용하면 ngrok을 백그라운드에서 상시 가동되도록 유지할 수 있습니다.

 

1. PC가 켜져있는 한 ngrok이 상시 가동되도록 설정

ngrok.exepm2로 관리하면 터미널 종료와 상관없이 계속 실행할 수 있습니다.

📦 준비물

npm install -g pm2

 

2. PM2에 ngrok 등록 시 발생하는 문제와 해결

❗ 오류: [PM2][ERROR] Script not found

pm2 start ngrok --name ngrok -- http 5678 --domain=<Ngrok URL>

위 명령 실행 시 아래와 같은 에러가 발생할 수 있습니다:

[PM2][ERROR] Script not found: ngrok

🔍 원인 및 해결 방법

  • ngrok이 환경 변수(PATH)에 등록되어 있지 않거나, 현재 디렉토리에서 인식이 안 되는 경우

✅ 해결법 1: ngrok 실행 파일이 있는 폴더로 이동 후 실행

cd C:\Users\...\<설치된 폴더>
pm2 start ngrok.exe --name ngrok -- http 5678 --domain=<Ngrok URL>

✅ 해결법 2: ngrok.exe의 절대 경로로 등록 (공백 포함 시 쌍따옴표 필요)

pm2 start "C:\Users\...\ngrok.exe" --name ngrok -- http 5678 --domain=<Ngrok URL>

3. PM2에 등록한 ngrok 프로세스가 errored 상태로 바뀌는 경우

💥 문제 상황

  • pm2 status 실행 시 ngrok 프로세스가 errored 상태로 바뀜
│ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0  │ ngrok              │ fork     │ 15   │ errored   │ 0%       │ 0b

🛠 해결 절차

1️⃣ 에러 로그 확인

pm2 logs ngrok

2️⃣ 에러 메시지 예시:

0|ngrok    | ERROR:  ERR_NGROK_108
0|ngrok    | ERROR:  authentication failed: Your account is limited to 1 simultaneous ngrok agent sessions.

🔍 원인: ngrok 무료 계정은 동시 1개 세션만 허용

✅ 해결 방법:

  • 중복 실행 중인 ngrok  종료
## ngrok 확인
tasklist | findstr ngrok.exe
## 개별적으로 삭제시
taskkill /F /PID 2812
taskkill /F /PID 11572


## 한꺼번에
taskkill /F /IM ngrok.exe
  • 이후 PM2에서 재시작
pm2 restart ngrok

pm2 status

💡 참고: ERR_NGROK_108 상세 문서

 

🎯 결론

PM2를 활용하면 ngrok을 시스템 백그라운드에서 안정적으로 실행할 수 있으며, 절대경로 등록, 중복 세션 관리, pm2 logs를 통해 안정적으로 관리가 가능합니다. 이후 재부팅하고나서 자동 실행되도록 설정하려면 작업 스케줄러를 활용하는 것도 고려해볼 수 있습니다. 해당 설정건은 다음 시간에 다뤄보겠습니다.

https://cord-ai.tistory.com/196

 

💻 컴퓨터 재부팅 시 자동으로 ngrok 실행하기 (PM2 + 작업 스케줄러 활용)

로컬에서 실행 중인 n8n을 외부에서 접근하려면 ngrok을 통해 터널링을 해야 합니다.하지만 매번 재부팅 후 ngrok을 다시 실행해야 하는 번거로움을 겪고 있다면,작업 스케줄러 + PM2를 활용해 자동

cord-ai.tistory.com

 

 

 

 

반응형