agents

맥(Mac)에서 n8n 로컬 서버를 외부로 연결하는 가장 깔끔한 방법 (Cloudflare Tunnel)

jinmc 2025. 12. 9. 10:03
반응형

n8n은 정말 강력한 워크플로우 자동화 툴입니다. 보통 도커(Docker)나 npm을 통해 맥 로컬(localhost:5678)에 띄워서 사용하곤 하는데요.

하지만 로컬에서만 돌리다 보면 치명적인 단점이 하나 있습니다. 바로 외부 서비스의 Webhook을 받을 수 없다는 점입니다. Slack, Google Sheets, GitHub 등 외부 서비스가 내 로컬 n8n에 신호를 보내려면 **공인된 주소(Public URL)**가 필요하기 때문입니다.

공유기 포트포워딩은 보안상 찝찝하고, ngrok은 무료 버전 제한이 귀찮습니다. 오늘은 Cloudflare Tunnel을 이용해 무료이면서도 보안상 안전하게 외부 접속을 허용하는 방법을 정리해 드립니다.

1분 만에 끝나는 **'간편 방법'**과 도메인을 고정해서 쓰는 '정석 방법' 두 가지가 있으니 상황에 맞춰 골라보세요.


준비물

  • Mac (Homebrew 설치됨)
  • n8n (로컬 5678 포트에서 실행 중)
  • (선택) Cloudflare 계정과 도메인 (정석 방법 사용 시 필요)

공통 단계: Cloudflared 설치

어떤 방법을 쓰든 Cloudflare의 데몬 툴인 cloudflared가 필요합니다. 터미널을 열고 설치해 줍니다.

bash
 
접기
저장 복사
brew install cloudflared

방법 1: 1분 컷! 초간단 연결 (Quick Tunnel)

추천 대상:

  • 지금 당장 외부 접속 테스트만 해보고 싶은 분
  • 도메인이 없는 분

복잡한 설정이나 로그인 필요 없이 명령어 한 줄이면 됩니다.

bash
 
접기
저장 복사
cloudflared tunnel --url http://localhost:5678

명령어를 실행하면 터미널 창에 아래와 같은 로그가 뜹니다.

text
 
접기
저장 복사
Your quick Tunnel has been created! Visit it at:

https://....trycloudflare.com 주소가 바로 여러분의 외부 접속 주소입니다. 브라우저에 입력하면 내 로컬 n8n이 뜹니다!

⚠️ 주의할 점 (치명적 단점)

이 방식은 프로그램을 껐다 켜거나 재부팅하면 URL 주소가 매번 바뀝니다.
n8n Webhook URL을 Slack 같은 곳에 등록해 뒀는데, 재부팅할 때마다 주소가 바뀌면 매번 설정을 바꿔줘야 해서 장기적으로 쓰기엔 매우 불편합니다.


방법 2: 주소 고정하기 (Named Tunnel)

추천 대상:

  • n8n을 계속 켜두고 자동화를 돌릴 분
  • 내 도메인(예: n8n.mydomain.com)을 쓰고 싶은 분

URL이 바뀌지 않도록 내 도메인에 고정하는 방법입니다. Cloudflare에 가입되어 있고 도메인이 등록되어 있어야 합니다.

1. 로그인

cloudflared tunnel login

브라우저가 뜨면 Cloudflare에 로그인하고 사용할 도메인을 선택(Authorize)해 줍니다.

2. 터널 생성

터널의 이름을 지어줍니다. (예: n8n-local)

cloudflared tunnel create n8n-local

이때 생성되는 **Tunnel ID(UUID)**를 잘 봐두세요.

3. 도메인 연결 (DNS 라우팅)

내 도메인(n8n.mydomain.com)으로 들어오면 방금 만든 터널로 연결되도록 설정합니다.

 
 

 

cloudflared tunnel route dns n8n-local n8n.mydomain.com

4. n8n 환경변수 설정 (중요!)

n8n에게 **"나의 공식 주소는 https://n8n.mydomain.com 야"**라고 알려줘야 합니다. 이 설정을 안 하면 n8n UI에서 Webhook URL을 생성할 때 여전히 localhost 주소를 보여줘서 헷갈립니다.

n8n을 실행할 때 아래 환경변수를 추가해 주세요.
(Docker 사용 시 -e 옵션으로 추가)

 

export WEBHOOK_URL=https://n8n.mydomain.com
n8n start

5. 터널 실행

이제 마지막으로 터널을 가동합니다.

cloudflared tunnel run --url http://localhost:5678 n8n-local
 

이제 https://n8n.mydomain.com으로 접속해 보세요. 언제 접속해도 주소가 변하지 않는 나만의 n8n 서버가 완성되었습니다! 🎉


요약: 뭘 써야 하나요?

1. 방법 1 (Quick Tunnel)

  • 장점: 명령어 한 줄로 즉시 실행. 가입 필요 없음.
  • 단점: 재시작하면 주소가 바뀜 (random.trycloudflare.com)
  • 용도: "지금 잠깐 테스트만 할래!"

2. 방법 2 (Named Tunnel)

  • 장점: 주소가 영구 고정됨 (n8n.mydomain.com). 안정적.
  • 단점: Cloudflare 도메인 필요. 초기 설정 필요.
  • 용도: "제대로 자동화 시스템 구축할래!"

처음엔 방법 1로 통신이 잘 되는지 테스트해 보시고, 본격적으로 n8n 워크플로우를 만드실 때는 방법 2로 정착하시는 것을 추천합니다.

반응형