📌 1. 왜 이 비교가 필요한가

서버를 외부에 공개할 때 가장 큰 고민은 **"인바운드 포트를 열지 않고 어떻게 서비스를 노출할 것인가"**다.

전통적인 포트포워딩 방식은 공유기에서 직접 포트를 열어야 하고, 서버 IP가 그대로 노출된다. 포트스캔 한 번이면 어떤 서비스가 돌아가는지 다 보인다.

이 문제를 해결하는 두 가지 접근이 있다:

  • Cloudflare Tunnel — Cloudflare 네트워크를 경유하는 관리형 터널
  • Pangolin — WireGuard 기반의 셀프 호스팅 터널 + 리버스 프록시 + 인증 통합 플랫폼

둘 다 "아웃바운드 전용 터널"이라는 동일한 원리를 사용하지만, 철학과 트레이드오프가 완전히 다르다.


📌 2. 공통점: 아웃바운드 전용 터널의 원리

두 솔루션 모두 같은 핵심 원리를 공유한다.

[서버] ---(아웃바운드 연결)---> [중계 서버] <--- [사용자 접속]

홈서버가 먼저 중계 서버에 연결을 맺는다. 인바운드 포트를 열 필요가 없다. 공유기 NAT 뒤에 있어도, CGNAT 환경이어도 동작한다.

보안 효과:

  • 서버의 공인 IP가 노출되지 않는다
  • 포트스캔에 아무것도 잡히지 않는다
  • 공격 표면(attack surface)이 중계 서버 한 곳으로 수렴한다

차이점은 **"그 중계 서버를 누가 운영하느냐"**다.


📌 3. Cloudflare Tunnel — 관리형 터널의 왕

✔ 구조

[사용자] → Cloudflare Edge(전 세계 300+개 PoP)
                ↓ (암호화된 터널)
         cloudflared (서버 데몬)
                ↓
         로컬 서비스 (localhost:3000 등)

서버에 cloudflared를 설치하면, Cloudflare Edge까지 아웃바운드 터널을 자동으로 맺는다. 사용자 트래픽은 Cloudflare → 터널 → 홈서버 순서로 흐른다.

✔ 강점

1) 인바운드 포트 제로

공유기에서 포트포워딩 설정이 아예 필요 없다. cloudflared가 아웃바운드로만 동작하기 때문에, 홈서버를 포트스캔해도 아무것도 나오지 않는다.

2) DDoS 방어 기본 포함

Cloudflare는 2025년 한 해 동안 4,710만 건의 DDoS 공격을 처리했다. 31.4Tbps 규모의 세계 최대 DDoS 공격도 자동 방어한 이력이 있다. 이 방어력이 무료 플랜에도 적용된다.

3) WAF (웹 방화벽) 기본 제공

SQL Injection, XSS, RCE 등 주요 웹 공격에 대한 관리형 룰셋이 무료로 포함된다. 2025년 12월 React Server Components의 CVSS 10.0 취약점(CVE-2025-55182)이 발견됐을 때도 공식 발표 전에 WAF 룰을 선배포했다.

4) Zero Trust Access

관리자 페이지 같은 민감한 경로에 이메일 인증, OTP, 소셜 로그인 기반 접근 제어를 걸 수 있다. VPN 없이도 특정 사용자만 접근 가능하게 만든다.

5) 무료

개인 사용 수준에서는 비용이 0원이다.

✔ 약점

1) TLS 종단(Termination) 구조

Cloudflare Tunnel은 end-to-end 암호화가 아니다. 트래픽이 Cloudflare 네트워크 내부를 지날 때 TLS를 벗기고, 캐싱/WAF 처리 후 다시 암호화한다. 즉, Cloudflare 내부에서는 평문 트래픽을 볼 수 있다.  홈서버 수준에서는 현실적 위험이 거의 없지만, 원리적으로 Cloudflare를 "신뢰"해야 하는 구조다.

2) 100MB 파일 크기 제한

Tunnel을 통해 전송하는 단일 파일에 100MB 제한이 있다. Immich 같은 사진 관리 앱에서 대용량 파일을 다룰 때 문제가 된다.

3) 영상 스트리밍 ToS 제한

Jellyfin, Plex 같은 미디어 서버의 영상 스트리밍은 Cloudflare ToS 위반 소지가 있다. 실제로 계정이 정지된 사례가 보고되어 있다.

4) 벤더 종속(Vendor Lock-in)

DNS, WAF, Access, Tunnel이 모두 Cloudflare 생태계 안에 묶인다. Cloudflare가 정책을 변경하거나 무료 플랜 기능을 축소하면 대응이 어렵다.


📌 4. Pangolin — 셀프 호스팅 터널의 신흥 강자

✔ 구조

[사용자] → Pangolin Server (내 VPS, 공인 IP)
                ↓ (WireGuard 터널)
         Newt 클라이언트 (서버 데몬)
                ↓
         로컬 서비스

VPS에 Pangolin 서버를 설치하고, 서버에는 Newt라는 경량 WireGuard 클라이언트를 돌린다. Cloudflare Tunnel과 동일한 "아웃바운드 전용" 패턴이지만, 중계 서버가 Cloudflare 대신 내 VPS다.

Pangolin은 Fossorial이라는 YC 2025 배치 회사가 개발했으며, GitHub 스타가 약 19,000개에 달하는 활발한 오픈소스 프로젝트다(AGPL-3.0 라이선스).

✔ 핵심 구성 요소

구성                요소                                       역할
Pangolin Server VPS에서 동작. 대시보드 UI, 인증/접근제어, 리소스 관리
Newt 홈서버에서 동작. 경량 WireGuard 클라이언트, 루트 불필요
Gerbil WireGuard 인터페이스 관리 서버 (Go로 작성)
Traefik 내장 리버스 프록시. 라우팅, SSL 인증서, 로드밸런싱

✔ 강점

1) 진짜 End-to-End 암호화

WireGuard 터널 위에서 트래픽이 흐르기 때문에 중간에 누구도 평문을 볼 수 없다. Cloudflare의 TLS 종단 이슈가 없다.

2) 파일 크기/스트리밍 제한 없음

100MB 제한도 없고, 영상 스트리밍 ToS 제한도 없다. Jellyfin, Immich 등을 자유롭게 운영할 수 있다.

3) 올인원 플랫폼

리버스 프록시(Traefik) + 터널(WireGuard) + 인증(SSO/OIDC) + 대시보드 UI가 하나의 패키지에 들어있다. Cloudflare Tunnel + Cloudflare Access를 합친 것과 동등한 기능을 셀프 호스팅으로 제공한다.

4) Zero Trust 접근 제어

리소스별로 세분화된 접근 정책을 설정할 수 있다. 전체 네트워크가 아닌 특정 앱에만 접근을 허용하는 구조다.

5) 완전한 인프라 통제

트래픽이 내 VPS만 경유한다. 제3자에게 트래픽을 맡기지 않는다. 정책 변경이나 서비스 종료 리스크가 없다.

✔ 약점

1) VPS 비용 발생

최소 월 $4~5의 VPS가 필요하다. RAM 1GB 이상, 포트 80/443/51820 개방이 필수다.

2) 공격 표면이 VPS로 이동

Cloudflare Tunnel은 Cloudflare의 수천 명 보안 엔지니어가 Edge를 방어한다. Pangolin은 내가 VPS 보안을 직접 책임져야 한다. DDoS 방어도 VPS 호스팅 업체 수준에 의존한다.

3) 운영 부담

Pangolin 서버 업데이트, Traefik 설정, WireGuard 관리, SSL 인증서 갱신 등을 직접 해야 한다. "설치하고 잊어버리는" 수준은 아니다.

4) DDoS 방어 없음

Cloudflare 같은 글로벌 엣지 네트워크가 없으므로, VPS에 직접 DDoS가 들어오면 호스팅 업체의 기본 방어에 의존해야 한다.


📌 5. 직접 비교표

항목                                             Cloudflare Tunnel                                                Pangolin
비용 무료 VPS 월 $4~5+
인바운드 포트 불필요 (0개) 서버: 불필요 / VPS: 80, 443, 51820
암호화 TLS 종단 (Cloudflare 내부 평문 가능) WireGuard E2E 암호화
DDoS 방어 엔터프라이즈급 자동 방어 없음 (VPS 호스팅 의존)
WAF 관리형 룰셋 포함 (무료) 없음 (직접 구성 필요)
파일 크기 제한 100MB 없음
영상 스트리밍 ToS 위반 소지 제한 없음
인증/접근제어 Cloudflare Access 내장 SSO/OIDC
관리 UI Cloudflare 대시보드 Pangolin 대시보드
벤더 종속 Cloudflare 생태계 종속 없음 (완전 셀프 호스팅)
운영 부담 거의 없음 중간 (VPS + 서버 관리)
트래픽 가시성 Cloudflare가 볼 수 있음 나만 볼 수 있음

📌 6. 어떤 상황에서 무엇을 선택할 것인가

✔ Cloudflare Tunnel이 맞는 경우

  • 웹 서비스(API, 웹앱) 위주 운영
  • DDoS 방어가 중요한 경우
  • 운영 부담을 최소화하고 싶은 경우
  • 비용 0원을 원하는 경우
  • 1인 운영자 (VPS 관리할 여력이 부족)

✔ Pangolin이 맞는 경우

  • Jellyfin, Plex 등 미디어 스트리밍 운영
  • 100MB 이상 파일 전송이 필요한 경우
  • Cloudflare에 트래픽을 맡기고 싶지 않은 경우
  • E2E 암호화가 필수인 경우
  • 인프라 전체를 직접 통제하고 싶은 경우

✔ 둘 다 쓰는 하이브리드 구성

실전에서는 둘을 병행할 수도 있다:

  • 웹 서비스 → Cloudflare Tunnel (DDoS 방어 + WAF 혜택)
  • 미디어 서버 → Pangolin (파일 크기 제한/ToS 회피)

📌 7. 보안 관점 정리

Cloudflare Tunnel의 공격 표면

공격자 → Cloudflare Edge → (여기서 방어) → 터널 → 홈서버

공격 표면이 Cloudflare Edge 한 곳이고, 그 방어를 Cloudflare가 담당한다. 2025년 10월 ACME 경로 우회 제로데이가 발견된 적이 있지만, 버그바운티를 통해 18일 만에 패치됐다. 완벽하지는 않지만, 개인이 직접 방어하는 것보다 압도적으로 강력하다.

단, Cloudflare를 "정상적으로 통과한" 트래픽은 그대로 서비스에 도달한다. 앱 레벨 취약점(SQL Injection, RCE 등)은 별도로 방어해야 한다. WAF가 기본적인 것은 잡아주지만, 우회 기법은 계속 나온다.

Pangolin의 공격 표면

공격자 → VPS (포트 80, 443, 51820) → WireGuard 터널 → 홈서버

공격 표면이 VPS의 열린 포트들이고, 그 방어를 내가 직접 담당한다. CrowdSec, fail2ban 등을 붙일 수 있지만, Cloudflare 수준의 DDoS 방어는 불가능하다.

대신 WireGuard E2E 암호화로 인해 터널 내부 트래픽은 누구도 볼 수 없다.


📌 8. 결론: 현실적 선택 기준

질문                                                                                                    Cloudflare Tunnel               Pangolin
미디어 스트리밍 하나요?
대용량 파일 다루나요?
DDoS 방어가 필요한가요?
VPS 관리할 여력이 있나요? 불필요 필수
비용에 민감한가요? ✔ (무료) ✗ (월 $4~5)
E2E 암호화가 필수인가요?

대부분의 1인 홈서버 운영자에게 Cloudflare Tunnel이 현실적 최선이다. 무료이고, DDoS 방어가 포함되고, 운영 부담이 거의 없다. "Cloudflare를 신뢰할 수 있느냐"가 유일한 질문인데, 전 세계 웹 트래픽의 20%를 처리하는 회사가 개인 홈서버 트래픽을 악용할 현실적 가능성은 없다.

Pangolin은 Cloudflare의 구조적 한계에 부딪힌 사람을 위한 선택지다. 미디어 스트리밍, 대용량 파일, 완전한 프라이버시가 필요하다면 Pangolin이 답이다. 단, VPS 보안을 직접 책임져야 한다는 트레이드오프를 받아들여야 한다.


한 줄 요약 👉 Cloudflare Tunnel = "맡기는 보안" (강력하지만 신뢰 기반) 👉 Pangolin = "내가 하는 보안" (자유롭지만 책임도 내 것)

LIST

+ Recent posts