−25%

na Windows przy płatności rocznej, do 31.10. Do planów

EQVPS

VPS dla Headscale: własny serwer sterujący Tailscale

Uruchom Headscale na małym VPS-ie i trzymaj serwer koordynujący swojej sieci mesh VPN pod własną kontrolą. Instalacja, pierwszy użytkownik, urządzenia i ograniczenia.

Mesh VPN to jedno z tych narzędzi, które po cichu ułatwiają wszystko: laptop, domowy serwer, telefon i VPS-y widzą się nawzajem pod prywatnymi adresami, gdziekolwiek są. Problem z hostowanymi sieciami mesh to serwer koordynujący: jakaś firma trzyma mapę wszystkich twoich urządzeń. Headscale to open-source'owy zamiennik tego serwera sterującego. Uruchom go na małym VPS-ie, dalej używaj zwykłych aplikacji klienckich, a mapa jest twoja.

Jak to się składa

Ten ostatni punkt tłumaczy, dlaczego wystarczy malutki plan: VPS odpowiada tylko na drobne żądania koordynacyjne.

Czego potrzebujesz

Instalacja (Debian 12 / Ubuntu 24.04)

Pobierz aktualny .deb ze strony wydań Headscale na GitHubie, podmieniając wersję na najnowszą:

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

Edytuj /etc/headscale/config.yaml; dwie linie, które mają znaczenie:

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

Postaw Caddy z przodu dla HTTPS:

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

Dodaj użytkownika i urządzenie

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

Starsze wydania oczekują w --user nazwy użytkownika zamiast ID; headscale preauthkeys create --help powie ci, czego oczekuje twoja wersja.

Na urządzeniu z Linuksem:

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

Na telefonach i komputerach aplikacja Tailscale pozwala ustawić własny serwer sterujący w ustawieniach. Uruchom headscale nodes list na VPS-ie, a twoje urządzenie powinno się tam pojawić.

Przekaźniki i przechodzenie przez NAT

Większość urządzeń łączy się bezpośrednio. Gdy dwóm się to nie udaje (restrykcyjne sieci komórkowe, podwójny NAT), ruch idzie przez przekaźnik DERP. Domyślnie Headscale używa publicznych przekaźników Tailscale, które widzą tylko zaszyfrowane pakiety. Jeśli nie chcesz niczego zewnętrznego na ścieżce, włącz wbudowany przekaźnik w config.yaml (derp.server.enabled: true) i otwórz UDP 3478. Przekazywany ruch liczy się wtedy do transferu twojego VPS-a.

Uczciwe ograniczenia

Nie ma oficjalnego panelu WWW: użytkownicy, klucze i trasy to polecenia CLI (nic strasznego, gdy zrobisz to dwa razy). Nowsze funkcje hostowanej usługi pojawiają się w Headscale później, o ile w ogóle. A serwer sterujący jest teraz twoją odpowiedzialnością: gdy nie działa, istniejące połączenia dalej działają, ale nowe urządzenia nie mogą dołączyć, a klucze się nie odświeżają. Rób kopie: cały stan to /var/lib/headscale.

Dla domowego labu, rodziny albo małego zespołu, który chce zabrać mapę swoich urządzeń z cudzych serwerów, to jedno z najlepszych zastosowań VPS-a za $8.

Powiązane

Gotowy na wdrożenie? Płać kryptowalutą, bez KYC — online w około minutę.

Wdróż teraz →

FAQ

Co właściwie widzi serwer Headscale?

Metadane: jakie urządzenia istnieją, ich klucze publiczne, adresy i kiedy ostatnio były online. Sam ruch płynie bezpośrednio między urządzeniami przez WireGuard (albo przez przekaźnik, jeśli nie mogą się połączyć) i jest szyfrowany end-to-end. Samodzielny hosting oznacza, że te metadane leżą na twoim serwerze, a nie na cudzym.

Czy potrzebuję specjalnych klientów?

Nie. Używasz zwykłych aplikacji Tailscale na Linuksie, macOS, Windowsie, iOS i Androidzie i kierujesz je na adres swojego serwera. Na Linuksie to jedna flaga: --login-server.

Jaki plan wystarczy?

Headscale jest malutki: Nano-IP ($8/mies.) spokojnie obsłuży rodzinę albo mały zespół. Potrzebujesz dedykowanego IP, bo urządzenia muszą łączyć się z serwerem sterującym przez HTTPS; plan NAT nie przyjmuje przychodzącego ruchu na 443.

A jeśli dwa urządzenia nie mogą połączyć się bezpośrednio?

Przechodzą na przekaźnik (DERP). Domyślnie Headscale używa publicznych przekaźników Tailscale, które widzą tylko zaszyfrowane pakiety. Możesz zamiast tego włączyć wbudowany przekaźnik Headscale; wymaga otwartego UDP 3478 i zużywa transfer twojego VPS-a na przekazywany ruch.

Czego brakuje w porównaniu z hostowaną usługą Tailscale?

Nie ma oficjalnego panelu WWW: użytkownikami i kluczami zarządzasz z wiersza poleceń (istnieją interfejsy od społeczności). Niektóre nowsze funkcje hostowanej usługi trafiają do Headscale później albo wcale. Dla sieci prywatnej lub małego zespołu rdzeń (mesh, ACL, MagicDNS, exit node) działa dobrze.

Komentarze

Brak komentarzy. Bądź pierwszy.

Zostaw komentarz

Komentarze są moderowane przed pojawieniem się.