Cloudflare Tunnels 한 호스트에 여러개 띄우기

Cloudflare Tunnels 한 호스트에 여러개 띄우기

Tags
Dev
Cloud
Published
Published June 7, 2023

문제의 원인

Cloudflare Tunnel을 위한 cloudflaredsudo 권한으로 실행해야 하고, 단순 설치시(프로세스 이름 등을 변경하지 않는 경우) 단일 Worker만 실행을 허용한다.
한편, 한 계정에서만 사용시 단일 worker로 여러 도메인을 연결하는 것이 가능해 사용에 문제가 없지만, 만약 여러 Cloudflare 계정의 Tunnel을 한 기기에 설치하려고 할 때 문제가 발생한다.
 
  • 만약 a.com, b.com 이 내 계정에 있으면 → 단일 cloudflaredxxx.a.com, xxx.b.com 등을 모두 한 Node로 연결 가능
  • 한편, a.com 이 내 계정에 있지만, b.com 이 타 계정(회사 계정 등..)으로 연결되어있는 상황에서 xxx.a.comxxx.b.com을 모두 한 Node로 연결하려고 할때 → 문제가 발생한다.
 

해결법

Cloudflare Tunnel Daemon을 Docker로 띄우자!
 

이유

  • Tunnel 데몬을 Docker로 띄울 경우 기본적으로 localhost등 네트워크는 도커에서 관리하는 네트워크 인터페이스를 따라감 → 즉 Tunnel이 보는 기본 IP 대역은 192.168.x.x 가 아니라 172.17.0.x 대역
  • 한편 도커에서는 로컬 IP 대역(192.168.x.x)에 대해서 접근이 가능, 그리고 localhost 혹은 172.0.0.1 대신 172.17.0.1 ip를 통해서 로컬에 localhost:8000 등처럼 띄운 서비스에 접근이 가능함