문제의 원인
Cloudflare Tunnel을 위한
cloudflared
는 sudo
권한으로 실행해야 하고, 단순 설치시(프로세스 이름 등을 변경하지 않는 경우) 단일 Worker만 실행을 허용한다.한편, 한 계정에서만 사용시 단일 worker로 여러 도메인을 연결하는 것이 가능해 사용에 문제가 없지만, 만약 여러 Cloudflare 계정의 Tunnel을 한 기기에 설치하려고 할 때 문제가 발생한다.
- 한편,
a.com
이 내 계정에 있지만,b.com
이 타 계정(회사 계정 등..)으로 연결되어있는 상황에서xxx.a.com
과xxx.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
등처럼 띄운 서비스에 접근이 가능함