−25%

על Windows בתשלום שנתי, עד 31.10. לחבילות

EQVPS

VPS ל-Headscale: שרת בקרה ל-Tailscale באירוח עצמי

הריצו Headscale על VPS קטן והשאירו את שרת התיאום של ה-mesh VPN בשליטתכם. התקנה, משתמש ראשון, חיבור מכשירים והמגבלות.

‏mesh VPN הוא אחד הכלים שבשקט הופכים הכול לפשוט יותר: הלפטופ, השרת הביתי, הטלפון וה-VPSים שלכם רואים זה את זה על כתובות פרטיות, איפה שלא יהיו. הבעיה עם mesh VPNs מתארחים היא שרת התיאום: חברה מחזיקה את המפה של כל מכשיר שיש לכם. ‏Headscale הוא תחליף בקוד פתוח לשרת הבקרה הזה. הריצו אותו על VPS קטן, המשיכו להשתמש באפליקציות הלקוח הרגילות, והמפה שלכם.

איך החלקים מתחברים

הנקודה האחרונה היא הסיבה שתוכנית זעירה עובדת: ה-VPS רק עונה לבקשות תיאום קטנות.

מה צריך

התקנה (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.

קשור

מוכנים להקים? שלמו בקריפטו, ללא KYC — חי בערך תוך דקה.

הקימו עכשיו →

שאלות נפוצות

מה שרת Headscale רואה בפועל?

מטא-דאטה: אילו מכשירים קיימים, המפתחות הציבוריים שלהם, הכתובות שלהם ומתי היו מחוברים לאחרונה. התעבורה עצמה זורמת ישירות בין המכשירים דרך WireGuard (או דרך relay אם הם לא מגיעים זה לזה) ומוצפנת מקצה לקצה. אירוח עצמי אומר שהמטא-דאטה הזו יושבת על השרת שלכם ולא של מישהו אחר.

צריך לקוחות מיוחדים?

לא. משתמשים באפליקציות Tailscale הרגילות על Linux, ‏macOS, ‏Windows, ‏iOS ו-Android ומפנים אותן לכתובת השרת שלכם. ב-Linux זה דגל אחד: ‎--login-server.

איזו תוכנית מספיקה?

‏Headscale זעיר: ‏Nano-IP ‏($8/חודש) מטפלת בקלות במשפחה או בצוות קטן. צריך IP ייעודי כי המכשירים חייבים להגיע לשרת הבקרה ב-HTTPS; תוכנית NAT לא מקבלת 443 נכנס.

מה אם שני מכשירים לא מצליחים להתחבר ישירות?

הם חוזרים ל-relay ‏(DERP). כברירת מחדל Headscale משתמש ב-relays הציבוריים של Tailscale, שרואים רק חבילות מוצפנות. אפשר במקום זה להפעיל את ה-relay המובנה של Headscale; הוא צריך UDP 3478 פתוח ומשתמש ברוחב הפס של ה-VPS לתעבורה המועברת.

מה חסר לעומת שירות Tailscale המתארח?

אין פאנל ניהול web רשמי: מנהלים משתמשים ומפתחות משורת הפקודה (קיימים ממשקים של הקהילה). חלק מהפיצ'רים החדשים של השירות המתארח מגיעים ל-Headscale מאוחר יותר או בכלל לא. לרשת אישית או לצוות קטן, הליבה עובדת טוב: ‏mesh, ‏ACLs, ‏MagicDNS ו-exit nodes.

תגובות

אין עדיין תגובות. היו הראשונים.

השאירו תגובה

התגובות עוברות מודרציה לפני שהן מופיעות.