−25%

Windows 연간 결제, 10월 31일까지. 요금제 보기

EQVPS

Headscale용 VPS: 셀프 호스팅 Tailscale 제어 서버

작은 VPS에서 Headscale을 실행해 메시 VPN의 조정 서버를 직접 관리하세요. 설치, 첫 사용자, 기기 연결, 그리고 한계를 정리했습니다.

메시 VPN은 조용히 모든 것을 편하게 만들어 주는 도구입니다. 노트북, 집 서버, 휴대폰, VPS가 어디에 있든 사설 주소로 서로를 봅니다. 호스팅형 메시 VPN의 문제는 조정 서버입니다. 한 회사가 여러분이 가진 모든 기기의 지도를 쥐고 있습니다. Headscale은 그 제어 서버를 대체하는 오픈소스입니다. 작은 VPS에서 실행하고 평소 쓰던 클라이언트 앱을 그대로 쓰면, 지도는 여러분의 것이 됩니다.

구성 요소가 맞물리는 방식

이 마지막 점 때문에 아주 작은 요금제로 충분합니다. VPS는 작은 조정 요청에만 응답합니다.

필요한 것

설치(Debian 12 / Ubuntu 24.04)

GitHub의 Headscale 릴리스 페이지에서 최신 .deb를 받고, 버전을 최신 것으로 바꾸세요.

HS_VER=0.26.1
wget -O headscale.deb \
  "https://github.com/juanfont/headscale/releases/download/v${HS_VER}/headscale_${HS_VER}_linux_amd64.deb"
apt install -y ./headscale.deb caddy

/etc/headscale/config.yaml을 편집합니다. 중요한 것은 다음 두 줄입니다.

server_url: https://hs.example.com
listen_addr: 127.0.0.1:8080

HTTPS를 위해 앞단에 Caddy를 둡니다.

cat > /etc/caddy/Caddyfile <<'EOF'
hs.example.com {
    reverse_proxy 127.0.0.1:8080
}
EOF
systemctl enable --now headscale
systemctl reload caddy

사용자와 기기 추가하기

headscale users create alice
headscale users list            # note the user's ID
headscale preauthkeys create --user 1 --expiration 24h

오래된 릴리스는 --user에 ID 대신 사용자 이름을 받습니다. headscale preauthkeys create --help로 여러분의 버전이 무엇을 기대하는지 확인하세요.

Linux 기기에서는 다음과 같이 합니다.

tailscale up --login-server https://hs.example.com --authkey YOUR_KEY

휴대폰과 데스크톱에서는 Tailscale 앱 설정에서 사용자 지정 제어 서버를 지정할 수 있습니다. VPS에서 headscale nodes list를 실행하면 기기가 보여야 합니다.

릴레이와 NAT 통과

대부분의 기기는 직접 연결됩니다. 두 기기가 연결하지 못할 때(엄격한 모바일망, 이중 NAT)는 트래픽이 DERP 릴레이를 거칩니다. 기본 상태의 Headscale은 암호화된 패킷만 보는 Tailscale의 공개 릴레이를 씁니다. 경로에 외부의 것을 전혀 두고 싶지 않다면 config.yaml에서 내장 릴레이를 켜고(derp.server.enabled: true) UDP 3478을 여세요. 그러면 중계 트래픽은 VPS 대역폭에서 차감됩니다.

솔직한 한계

공식 웹 대시보드가 없습니다. 사용자, 키, 라우트는 모두 CLI 명령입니다(두 번 해 보면 익숙해집니다). 호스팅형 서비스의 신기능은 Headscale에 늦게 나타나거나 아예 나타나지 않습니다. 그리고 이제 제어 서버는 여러분의 책임입니다. 서버가 멈춰도 기존 연결은 계속 동작하지만, 새 기기는 참여할 수 없고 키도 갱신되지 않습니다. 백업하세요. 전체 상태는 /var/lib/headscale에 있습니다.

홈랩, 가족, 또는 기기 지도를 제3자 서버에서 가져오고 싶은 작은 팀에게, 이것은 $8짜리 VPS의 가장 좋은 쓰임새 중 하나입니다.

관련

배포할 준비가 되셨나요? 암호화폐로 결제, KYC 없음 — 약 1분 만에 온라인.

지금 배포 →

FAQ

Headscale 서버는 실제로 무엇을 보나요?

메타데이터입니다. 어떤 기기가 있는지, 그 공개 키와 주소, 마지막으로 온라인이었던 시각입니다. 트래픽 자체는 WireGuard를 통해 기기 사이를 직접 흐르며(서로 닿지 않으면 릴레이를 경유) 종단 간 암호화됩니다. 셀프 호스팅한다는 것은 그 메타데이터가 다른 사람의 서버가 아니라 여러분의 서버에 있다는 뜻입니다.

특별한 클라이언트가 필요한가요?

아니요. Linux, macOS, Windows, iOS, Android에서 일반 Tailscale 앱을 쓰고 서버 URL만 지정하면 됩니다. Linux에서는 플래그 하나, --login-server면 됩니다.

어떤 요금제면 충분한가요?

Headscale은 아주 가볍습니다. Nano-IP(월 $8)로 가족이나 작은 팀을 넉넉히 감당합니다. 기기가 HTTPS로 제어 서버에 닿아야 하므로 전용 IP가 필요합니다. NAT 요금제는 들어오는 443을 받지 않습니다.

두 기기가 직접 연결되지 않으면 어떻게 되나요?

릴레이(DERP)로 전환됩니다. 기본적으로 Headscale은 암호화된 패킷만 볼 수 있는 Tailscale의 공개 릴레이를 사용합니다. 대신 Headscale 내장 릴레이를 켤 수도 있는데, UDP 3478을 열어야 하고 중계 트래픽에 VPS 대역폭을 씁니다.

호스팅형 Tailscale 서비스에 비해 무엇이 부족한가요?

공식 웹 관리 패널이 없습니다. 사용자와 키는 명령줄로 관리합니다(커뮤니티가 만든 UI는 있습니다). 호스팅형 서비스의 일부 신기능은 Headscale에 늦게 오거나 아예 오지 않습니다. 개인이나 작은 팀의 네트워크라면 핵심 기능(메시, ACL, MagicDNS, exit node)은 잘 동작합니다.

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.