pp ppajji
· 조회

Headscale + Tailscale — 벤더 없이 자기 Tailnet

Tailscale SaaS 를 걷어내고 Headscale 로 자기 컨트롤 서버를 세운 이야기.

목차

지난 글에서 자가호스팅을 왜 하는지 이야기했다면, 이번 글은 그 첫 벽돌을 쌓은 이야기입니다. 바로 Tailnet 자체를 자기 것으로 만드는 일 입니다.

시작#

Tailscale 은 편했습니다. 하지만 컨트롤 서버가 벤더 소유라는 사실은 마음에 걸렸습니다.

문제 정의#

  • SaaS 컨트롤 서버가 다운되면 새 노드 등록 불가
  • ACL, DNS, 라우팅 모두 벤더에 종속
  • 무료 tier 제한 (100 노드) 이 언젠가 벽이 됨

대안#

Headscale — Tailscale 의 오픈소스 컨트롤 서버 구현. 이 조합으로 완전한 자가호스팅.

셋업#

VPS 하나에 Headscale 만 얹으면 끝났습니다.

도메인 + TLS#

Caddy 가 hs.ppajji.com 앞에 서서 Let’s Encrypt 인증서 자동 관리. Headscale 은 HTTP 만 담당.

첫 노드 등록#

Home PC 에서 Tailscale 클라이언트를 --login-server=https://hs.ppajji.com 로 실행. Pre-auth key 로 한 번에 등록.

DERP relay#

기본은 Tailscale 의 공식 DERP 를 씀. 원한다면 자체 DERP 도 세울 수 있지만, 현재는 필요 없다고 판단.

실제 사용감#

한 달 넘게 운영하며 느낀 것.

안정성#

Tailscale SaaS 시절보다 안정적. 재부팅해도 노드가 다시 붙고, 컨트롤 서버 로그도 내가 다 볼 수 있음.

관리 부담#

낮음. docker compose up -d 로 세운 이후 거의 손대지 않았습니다. 백업만 하면 됨.

스케일#

현재 노드 16 개. 100 개 넘어도 무료. 트래픽은 P2P 라 컨트롤 서버 부하 낮음.

남은 과제#

이 시리즈의 다음 편에서 다룰 것들입니다.

  • ACL 세분화 — 서비스 간 접근 제한
  • stale 노드 자동 정리 — 30일 이상 오프라인 노드 삭제
  • 자체 DERP — 필요 시점 판단

마치며#

벤더 락인을 걷어내는 첫 단계로서, Headscale 은 좋은 선택이었습니다. 다음 편은 이 위에 세운 서비스들 이야기입니다.

공유

비슷한 글