Ένα mesh VPN είναι από τα εργαλεία που αθόρυβα κάνουν τα πάντα πιο εύκολα: το laptop, ο οικιακός server, το κινητό και τα VPS σας βλέπουν το ένα το άλλο σε ιδιωτικές διευθύνσεις, όπου κι αν βρίσκονται. Το πρόβλημα με τα φιλοξενούμενα mesh VPN είναι ο server συντονισμού: μια εταιρεία κρατά τον χάρτη κάθε συσκευής που έχετε. Το Headscale είναι ανοιχτού κώδικα αντικαταστάτης αυτού του server ελέγχου. Τρέξτε το σε ένα μικρό VPS, συνεχίστε να χρησιμοποιείτε τις κανονικές εφαρμογές client, και ο χάρτης είναι δικός σας.
Πώς δένουν τα κομμάτια
- Το Headscale (στο VPS σας) μοιράζει διευθύνσεις, διανέμει δημόσια κλειδιά και επιβάλλει τα ACLs σας.
- Οι clients είναι οι τυπικές εφαρμογές Tailscale, στραμμένες στον server σας.
- Η κίνηση πηγαίνει από συσκευή σε συσκευή μέσω WireGuard. Ο server ελέγχου δεν τη μεταφέρει ποτέ.
Αυτό το τελευταίο είναι ο λόγος που ένα μικροσκοπικό πακέτο δουλεύει: το VPS απαντά μόνο σε μικρά αιτήματα συντονισμού.
Τι χρειάζεστε
- Nano-IP ($8/μήνα): 2 vCPU και 1 GB RAM είναι πολύ περισσότερα από όσα χρησιμοποιεί το Headscale.
- Αποκλειστική IPv4 και domain, π.χ.
hs.example.com. Οι συσκευές μιλούν με τον server ελέγχου μέσω HTTPS, οπότε το VPS πρέπει να δέχεται εισερχόμενη 443· τα πακέτα NAT δεν τη δέχονται (λεπτομέρειες).
Εγκατάσταση (Debian 12 / Ubuntu 24.04)
Πάρτε το τρέχον .deb από τη σελίδα εκδόσεων του Headscale στο GitHub· αντικαταστήστε την έκδοση με την πιο πρόσφατη:
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
Βάλτε το Caddy μπροστά για HTTPS:
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 σάς επιτρέπει να ορίσετε προσαρμοσμένο server ελέγχου στις ρυθμίσεις της. Τρέξτε headscale nodes list στο VPS και η συσκευή σας πρέπει να είναι εκεί.
Relays και διάσχιση NAT
Οι περισσότερες συσκευές συνδέονται απευθείας. Όταν δύο δεν μπορούν (αυστηρά δίκτυα κινητής, διπλό NAT), η κίνηση περνά από ένα relay DERP. Εξ ορισμού το Headscale χρησιμοποιεί τα δημόσια relays του Tailscale, που βλέπουν μόνο κρυπτογραφημένα πακέτα. Αν δεν θέλετε τίποτα εξωτερικό στη διαδρομή, ενεργοποιήστε το ενσωματωμένο relay στο config.yaml (derp.server.enabled: true) και ανοίξτε τη UDP 3478. Τότε η αναμεταδιδόμενη κίνηση χρεώνεται στο bandwidth του VPS σας.
Όρια, ειλικρινά
Δεν υπάρχει επίσημο web dashboard: χρήστες, κλειδιά και routes είναι εντολές CLI (εντάξει αφού το κάνετε δύο φορές). Νεότερες λειτουργίες της φιλοξενούμενης υπηρεσίας εμφανίζονται στο Headscale αργότερα, αν εμφανιστούν. Και ο server ελέγχου είναι πλέον δική σας ευθύνη: αν πέσει, οι υπάρχουσες συνδέσεις συνεχίζουν, αλλά νέες συσκευές δεν μπορούν να μπουν και τα κλειδιά δεν ανανεώνονται. Κρατήστε αντίγραφο: όλη η κατάσταση είναι στο /var/lib/headscale.
Για ένα home lab, μια οικογένεια ή μια μικρή ομάδα που θέλει τον χάρτη των συσκευών της εκτός servers τρίτων, είναι μία από τις καλύτερες χρήσεις ενός VPS των $8.
Σχετικά
- Self-host ενός WireGuard VPN: σκέτο WireGuard, αν χρειάζεστε μόνο ένα τούνελ
- VPS για VPN
- VPS για απομακρυσμένη πρόσβαση στο Home Assistant
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.