شبكة mesh VPN من الأدوات التي تسهّل كل شيء بهدوء: حاسوبك المحمول وخادمك المنزلي وهاتفك وخوادم VPS كلها ترى بعضها على عناوين خاصة، أينما كانت. المشكلة في شبكات mesh المستضافة هي خادم التنسيق: شركة تحتفظ بخريطة كل جهاز تملكه. Headscale بديل مفتوح المصدر لخادم التحكم ذاك. شغّله على VPS صغير، واستمر في استخدام تطبيقات العميل العادية، وتصبح الخريطة ملكك.
كيف تتكامل الأجزاء
- Headscale (على الـ VPS) يوزّع العناوين والمفاتيح العامة ويطبّق قواعد ACL الخاصة بك.
- العملاء هم تطبيقات 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 ويجب أن يظهر جهازك هناك.
المرحِّلات وعبور NAT
معظم الأجهزة تتصل مباشرة. حين يتعذّر ذلك على جهازين (شبكات جوال صارمة، NAT مزدوج)، تمر الحركة عبر مُرحِّل DERP. افتراضيًا يستخدم Headscale المرحِّلات العامة لـ Tailscale، وهي لا ترى إلا حزمًا مشفّرة. إن أردت ألّا يكون في المسار أي شيء خارجي، فعّل المرحِّل المدمج في config.yaml (derp.server.enabled: true) وافتح UDP 3478. عندها تُحتسب الحركة المُرحَّلة من عرض نطاق الـ VPS.
حدود بصراحة
لا توجد لوحة ويب رسمية: المستخدمون والمفاتيح والمسارات أوامر في سطر الأوامر (أمر سهل بعد أن تفعلها مرتين). الميزات الأحدث في الخدمة المستضافة تظهر في Headscale لاحقًا، إن ظهرت. وخادم التحكم أصبح الآن مسؤوليتك: إن توقف، تستمر الاتصالات القائمة في العمل، لكن الأجهزة الجديدة لا تستطيع الانضمام ولا تتجدد المفاتيح. احتفظ بنسخة احتياطية: الحالة كلها في /var/lib/headscale.
لمختبر منزلي، أو عائلة، أو فريق صغير يريد إبعاد خريطة أجهزته عن خوادم الآخرين، هذا من أفضل استخدامات VPS بـ 8$.
ذو صلة
- استضف WireGuard VPN ذاتيًا: WireGuard مجرّد، إن كنت تحتاج نفقًا واحدًا فقط
- VPS لشبكة VPN
- VPS للوصول عن بُعد إلى Home Assistant
التعليقات
لا تعليقات بعد. كن الأول.