집에서 운영하는 서버나 사내망에 있는 서비스를 외부에 공개하려면 보통 공유기 포트포워딩을 열어야 합니다. 그런데 포트를 열면 그만큼 공격 표면도 늘어납니다. IP도 노출되고요. Cloudflare Tunnel을 쓰면 포트를 하나도 열지 않고 외부에 서비스를 공개할 수 있습니다.

안녕하세요, 코딩하는 안다형입니다. 이 글에서는 Cloudflare Tunnel(구 Argo Tunnel)이 뭐고 왜 쓰는지, 기본 개념을 정리했습니다.

3줄 요약

  1. Cloudflare Tunnel은 내 서버에서 Cloudflare로 나가는 연결만 만들고, 들어오는 포트는 열지 않습니다.
  2. 원본 서버의 IP가 외부에 노출되지 않습니다.
  3. 무료로 쓸 수 있고, cloudflared라는 프로그램만 설치하면 됩니다.

일반 포트포워딩과 뭐가 다른가

포트포워딩은 "밖에서 내 서버로 들어오는 문"을 여는 방식입니다. 문이 열려 있으니 그 문으로 아무나 두드릴 수 있습니다. 반대로 Cloudflare Tunnel은 "내 서버가 Cloudflare 쪽으로 나가는 문"만 엽니다. 방향이 반대라서 외부에서 내 서버로 직접 들어오는 경로 자체가 없습니다.

동작 원리를 간단히

  • 내 서버에 cloudflared라는 작은 프로그램을 설치합니다.
  • cloudflared가 Cloudflare로 나가는 연결(터널)을 만듭니다.
  • 방문자가 도메인으로 접속하면, Cloudflare가 이 터널을 통해 요청을 내 서버로 전달합니다.
  • 응답도 같은 터널을 통해 방문자에게 돌아갑니다.

즉 내 서버 입장에서는 "나가는 연결"만 있고, 외부에서 직접 들어오는 포트는 하나도 없습니다.

어떤 상황에 유용한가

  • 집 서버/홈랩: 공인 IP가 자주 바뀌거나 공유기 설정이 번거로운 경우
  • 사내 관리 도구: 특정 사람만 접근해야 하는 대시보드를 외부에 노출하지 않고 공개
  • 테스트 서버: 임시로 외부에서 확인해야 하는데 도메인/인증서 설정이 번거로운 경우

시작하는 순서

대시보드 Zero Trust, Networks, Tunnels에서 새 터널을 만들고 이름을 정합니다. 안내에 따라 cloudflared 설치 명령을 서버에서 실행하면 터널이 연결됩니다. 이후 Public Hostname을 설정해서 도메인과 내부 서비스(예: localhost:3000)를 연결하면 끝입니다.

Tunnel과 일반 프록시 방식 비교표

일반 프록시(주황 구름)는 포트를 열어야 하고 원본 IP가 DNS 조회로 유추될 수 있는 반면, Tunnel은 포트를 열 필요가 없고 원본 IP도 노출되지 않습니다. 다만 Tunnel은 cloudflared 프로그램을 서버에 설치하고 계속 실행해 둬야 한다는 차이가 있습니다.

이건 하지 마세요

  • cloudflared를 설치만 하고 서비스로 등록 안 하기: 서버가 재부팅되면 터널이 끊깁니다. 서비스로 등록해 자동 시작되게 하세요.
  • Public Hostname 설정 없이 방치: 터널은 연결됐는데 어떤 주소로 어떤 서비스를 보여줄지 안 정하면 접속이 안 됩니다.
  • 민감한 관리 도구를 별도 인증 없이 공개: Tunnel과 별개로 Zero Trust Access 정책을 함께 걸어 접근 제어를 하세요.

자주 묻는 질문

무료로 계속 쓸 수 있나요?

네, Cloudflare Tunnel 자체는 무료입니다. 다만 함께 쓰는 Zero Trust 기능 중 일부는 사용자 수에 따라 유료 구간이 있을 수 있으니 필요한 기능만 확인하고 쓰세요.

도메인이 꼭 있어야 하나요?

Public Hostname으로 외부에 공개하려면 Cloudflare에 연결된 도메인이 필요합니다. 도메인 없이 내부 테스트 용도로만 쓰는 방법도 있습니다.

속도가 느려지지 않나요?

Cloudflare 엣지를 거쳐가긴 하지만, 체감상 크게 느려지는 경우는 드뭅니다. 다만 원본 서버와 가장 가까운 데이터센터 상황에 따라 차이가 날 수 있습니다.

마무리

포트를 열지 않고 서비스를 공개하고 싶다면 Cloudflare Tunnel이 가장 간단한 방법 중 하나입니다. 홈서버나 소규모 내부 도구를 운영한다면 한 번 시도해볼 만합니다.

함께 보면 좋은 글