mesh VPN הוא אחד הכלים שבשקט הופכים הכול לפשוט יותר: הלפטופ, השרת הביתי, הטלפון וה-VPSים שלכם רואים זה את זה על כתובות פרטיות, איפה שלא יהיו. הבעיה עם mesh VPNs מתארחים היא שרת התיאום: חברה מחזיקה את המפה של כל מכשיר שיש לכם. Headscale הוא תחליף בקוד פתוח לשרת הבקרה הזה. הריצו אותו על VPS קטן, המשיכו להשתמש באפליקציות הלקוח הרגילות, והמפה שלכם.
איך החלקים מתחברים
- Headscale (על ה-VPS שלכם) מחלק כתובות, מפיץ מפתחות ציבוריים ואוכף את ה-ACLs שלכם.
- הלקוחות הם אפליקציות Tailscale הסטנדרטיות, מופנות לשרת שלכם.
- התעבורה עוברת ממכשיר למכשיר דרך WireGuard. שרת הבקרה אף פעם לא נושא אותה.
הנקודה האחרונה היא הסיבה שתוכנית זעירה עובדת: ה-VPS רק עונה לבקשות תיאום קטנות.
מה צריך
- Nano-IP ($8/חודש): 2 vCPU ו-1 GB RAM זה הרבה יותר ממה ש-Headscale צורך.
- IPv4 ייעודי ודומיין, למשל
hs.example.com. המכשירים מדברים עם שרת הבקרה ב-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 את שם המשתמש במקום המזהה; headscale preauthkeys create --help יגיד לכם מה הגרסה שלכם מצפה.
על מכשיר Linux:
tailscale up --login-server https://hs.example.com --authkey YOUR_KEY
בטלפונים ובמחשבים, אפליקציית Tailscale מאפשרת להגדיר שרת בקרה מותאם בהגדרות. הריצו headscale nodes list על ה-VPS והמכשיר שלכם אמור להופיע שם.
Relays ומעבר NAT
רוב המכשירים מתחברים ישירות. כששניים מהם לא מצליחים (רשתות סלולר קפדניות, NAT כפול), התעבורה עוברת דרך relay של DERP. כברירת מחדל Headscale משתמש ב-relays הציבוריים של Tailscale, שרואים רק חבילות מוצפנות. אם אתם לא רוצים שום דבר חיצוני במסלול, הפעילו את ה-relay המובנה ב-config.yaml (derp.server.enabled: true) ופתחו UDP 3478. אז התעבורה המועברת נספרת על רוחב הפס של ה-VPS.
מגבלות, בכנות
אין דשבורד web רשמי: משתמשים, מפתחות ונתיבים הם פקודות CLI (בסדר גמור אחרי שעשיתם את זה פעמיים). פיצ'רים חדשים של השירות המתארח מגיעים ל-Headscale מאוחר יותר, אם בכלל. ושרת הבקרה הוא עכשיו באחריותכם: אם הוא נופל, חיבורים קיימים ממשיכים לעבוד, אבל מכשירים חדשים לא יכולים להצטרף ומפתחות לא מתחדשים. גבו אותו: כל המצב נמצא ב-/var/lib/headscale.
למעבדה ביתית, למשפחה או לצוות קטן שרוצה להוציא את מפת המכשירים שלו משרתים של אחרים, זה אחד השימושים הטובים ביותר ב-VPS של $8.
קשור
- אירוח עצמי של WireGuard VPN: WireGuard פשוט, אם צריך רק מנהרה אחת
- VPS ל-VPN
- VPS לגישה מרחוק ל-Home Assistant
תגובות
אין עדיין תגובות. היו הראשונים.