Headscale - Tailscale 컨트롤 서버의 셀프 호스팅 구현 오픈소스

20 hours ago 1

  • Headscale은 Tailscale의 컨트롤 서버 기능을 자체 호스팅할 수 있도록 만든 오픈 소스 대안 프로젝트
  • Tailscale은 WireGuard 기반의 현대적 VPN 솔루션으로, NAT 환경에서도 작동하는 오버레이 네트워크 구성 가능
  • 원래의 Tailscale Control 서버는 비공개 소프트웨어이나, Headscale은 이를 대체할 수 있는 자유롭게 설치 가능한 서버 소프트웨어로 개발됨
  • Windows, macOS, iOS 클라이언트는 여전히 Tailscale의 GUI를 필요로 함

Headscale의 목적과 특징

  • Headscale은 개인 및 소규모 오픈소스 조직이 사용할 수 있도록 한 개의 tailnet(가상 사설망)만 지원
  • 자체 서버를 운영하고 싶은 사용자자유 소프트웨어 애호가에게 적합한 솔루션
  • 설계 범위를 좁게 설정하여 유지 보수와 관리가 간편함

주요 기능

  • 클라이언트 노드 간의 WireGuard 공개 키 교환
  • 각 노드의 IP 주소 할당 및 경계 설정
  • 사용자 간의 머신 공유 기능
  • 노드의 라우트 광고 관리
  • 공식 기능 목록은 여기에서 확인 가능

지원 클라이언트 운영 체제

  • Headscale과 호환 가능한 운영 체제 및 클라이언트 목록은 공식 문서에서 확인 가능

설치 및 실행 관련 안내

  • **역방향 프록시(reverse proxy)**나 컨테이너 기반 실행은 공식적으로 권장하지 않음
  • 실행 방법 및 설정은 공식 문서 참고

커뮤니티 및 기여

개발 환경 및 코드 스타일

  • 개발에 필요한 주요 도구:
    • 최신 버전의 Go
    • Buf (Protobuf 생성기)
    • Nix를 이용한 개발 환경 구성 가능 (nix develop 명령어)
  • 코드 스타일:
    • Go 코드: golangci-lint, golines, gofumpt 사용
    • Proto 코드: buf, clang-format 사용
    • 기타 파일: prettier로 정렬
  • 커밋 전에는 make lint, make fmt로 코드 정리 필수

빌드 및 테스트

  • Protobuf 코드 변경 시, Go 코드 재생성 필요: make generate
  • 테스트 실행: make test
  • 빌드:
    • nix build
    • 또는 make build 명령어 사용

기타 정보

  • 2023년 FOSDEM에서 Headscale 관련 발표 진행: 영상 보기
  • 프로젝트는 Tailscale Inc.와 직접적인 연관은 없으나, Tailscale 소속의 기여자가 참여 중이며 독립적으로 코드 리뷰 및 방향성 설정

Read Entire Article