[{"data":1,"prerenderedAt":214},["ShallowReactive",2],{"seo-verification":3,"blog-netbird-شبكة-vpn-مشبكة-wireguard-باستضافة-ذاتية-ma-ar":6,"promo-bar-likely":213},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-netbird-شبكة-vpn-مشبكة-wireguard-باستضافة-ذاتية-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":148,"ctaBody":149,"ctaButton":150,"ctaUrl":151,"relatedPosts":152},291,"netbird-شبكة-vpn-مشبكة-wireguard-باستضافة-ذاتية",{"fr":12,"en":13,"ar":10,"es":14},"deployer-netbird-controle-vpn-mesh-vps","netbird-self-hosted-wireguard-mesh-vpn-on-a-vps","desplegar-netbird-vpn-mesh-wireguard-en-vps","‏Netbird: شبكة VPN مشبكة WireGuard باستضافة ذاتية","اربط خوادم VPS لعملائك دون فتح أي منفذ: انشر طبقة التحكم في Netbird (خادم مدمج، ومُرحِّل، وواجهة ويب) واعزل كل عميل.",18,4,false,"2026-08-21T00:00:00+00:00","2026-11-09T20:55:15+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},3,"النشر","deploiement","bg-success\u002F10 text-success",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-netbird-controle-vpn-mesh-vps-poster.svg","تُدير خوادم موزّعة على حسابات عملاء متعددة وتجد نفسك مضطرًا إلى فتح المنافذ والحفاظ على قواعد UFW منفصلة أو توزيع مفاتيح WireGuard الثابتة يدويًا. يعالج Headscale الحاجة ذاتها لشبكة مسطّحة — وقد خصّصنا له \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fاستضافة-headscale-على-vps-خادم-تحكم-tailscale-خاص-بك\">دليلًا مستقلًا\u003C\u002Fa>. أما Netbird فإجابة أخرى، صُمّمت لإدارة عدة شبكات معزولة: مجموعات أقران، وقواعد وصول لكل شبكة، وواجهة ويب مدمجة. ينشر هذا الدليل طبقة التحكم في Netbird (أكثر من 30 ألف نجمة على GitHub، ورخصة AGPLv3 من جهة الخادم) على خادم VPS مخصّص، ويربط ثلاث عُقد في شبكة مشبكة دون فتح أي منفذ عام، ثم يتناول العزل حسب العميل، ونشر خدمة بالأمر `netbird expose`، واستكشاف الأعطال.",[34,38,41,44,69,72,75,78,112,115,119,122,125,134,137,145],{"type":35,"title":36,"body":37},"h2","WireGuard الثابت وHeadscale وNetbird: ثلاث مقاربات مختلفة","يعتمد WireGuard الثابت (راجع \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fwireguard-على-خادم-vps-شبكة-vpn-سريعة-ومبسطة-وخاصة\">دليلنا عن WireGuard\u003C\u002Fa>) على إعداد جامد: على كل قرين أن يعرف المفتاح العام والعنوان المتاح لنظرائه، وكل قرين جديد يفرض تعديل `\u002Fetc\u002Fwireguard\u002Fwg0.conf` على الآخرين. فعّال لخادمين أو ثلاثة ثابتة، لكنه يصبح غير قابل للإدارة حين تجمع منظومة وكالة بين خوادم VPS وأجهزة متنقّلة ومكاتب خلف CGNAT: إضافة جهاز تعني تعديل كل الأجهزة الأخرى، وسحب صلاحية تقني تعني إلغاء مفتاحه في كل مكان.\n\nيعيد Headscale تنفيذ خادم التنسيق الخاص بـ Tailscale: تحتفظ بعملاء Tailscale الرسميين وتحصل على شبكة مسطّحة دون سقف لعدد المستخدمين. ويمرّ العزل بين العملاء عبر ملف سياسة ACL واحد للشبكة كلها. إنه الخيار المناسب لفريق واحد يريد البقاء ضمن منظومة Tailscale.\n\nيسلك Netbird الطريق المعاكس: يأتي بعميله الخاص وطبقة تحكم خاصة به ومفهوم **المجموعات** المرتبطة بقواعد وصول دقيقة، تُدار من واجهة الويب المضمّنة منذ البداية. ويمكن لنسخة واحدة أن تستضيف عدة منظومات معزولة تمامًا، ما يجعله الأداة الطبيعية لوكالة تدير عملاء منفصلين.",{"type":35,"title":39,"body":40},"بنية Netbird: خادم مدمج واحد","لم يعد سكربت التثبيت الحالي ينشر أربع حاويات منفصلة، بل يولّد حزمة Docker Compose من ثلاث خدمات:\n\n**`netbird-server`** — الخادم المدمج. يجمع في حاوية واحدة **Management** (توزيع مفاتيح WireGuard، وتطبيق قواعد الوصول، وواجهة REST)، و**Signal** (تبادل واصفات اتصال ICE بين الأقران)، و**Relay**، وخادم **STUN** مدمجًا. يُضبط بملف `config.yaml` وحيد يحلّ محلّ الملفّين القديمين `management.json` و`relay.env`. التخزين في SQLite افتراضيًا، وPostgreSQL خيارًا.\n\n**`netbird-dashboard`** — واجهة الويب التي تستهلك واجهة Management البرمجية: المجموعات والأقران وقواعد الوصول ومفاتيح التسجيل، دون سطر أوامر.\n\n**`netbird-traefik`** — الوكيل العكسي الذي ينهي TLS (شهادة Let's Encrypt تلقائية) ويوجّه حركة gRPC وWebSocket والواجهة البرمجية إلى الخادم.\n\nتغييران مهمّان مقارنةً بالأدلة القديمة. لم يعد المُرحِّل هو COTURN: منذ الإصدار v0.29 يستخدم Netbird تنفيذه الخاص، الذي يمرّر الاتصالات المُرحَّلة عبر المنفذ 443 (WebSocket فوق TCP، أو QUIC فوق UDP) بدل حجز نطاق من منافذ UDP. والمصادقة صارت مدمجة: منذ الإصدار v0.62 يدير مزوّد هوية مضمَّن (مبني على Dex) المستخدمين المحليين، دون حاجة إلى نشر Zitadel أو Keycloak. وتُضاف خدمة خامسة، هي **وكيل Netbird**، إذا فعّلته لنشر خدمات على الإنترنت (انظر أدناه).\n\nتمرّ كل التدفقات بين العملاء عبر **WireGuard مشفّر من طرف إلى طرف**: لا يرى الخادم إلا بيانات التسجيل الوصفية، ولا يرى أبدًا حركة التطبيقات. أما الرخص، فالعميل تحت BSD-3-Clause، والمجلدات `management\u002F` و`signal\u002F` و`relay\u002F` و`combined\u002F` في المستودع تحت AGPLv3.",{"type":35,"title":42,"body":43},"المتطلبات المسبقة","**خادم VPS مخصّص لطبقة التحكم.** خصّص خادمًا منفصلًا عن عُقد عملائك. يطلب توثيق Netbird معالجًا افتراضيًا واحدًا على الأقل وذاكرة 2 GB؛ ويكفي VPS Solo للبداية.\n\n**المنافذ التي يجب فتحها على خادم التحكم:**\n\n`80` (TCP) — تحقّق Let's Encrypt وإعادة التوجيه إلى HTTPS.\n`443` (TCP) — Dashboard، وواجهة Management البرمجية وgRPC، وSignal، وRelay عبر WebSocket.\n`3478` (UDP) — خادم STUN المدمج.\n\nلم يعد نطاق UDP `49152-65535` ضروريًا: كان يخدم مُرحِّل COTURN في الإصدارات السابقة لـ v0.29 فقط، ولا يبقى مفتوحًا إلا إذا كان عملاء قدامى ما زالوا يعتمدون عليه. ولا تحتاج عُقد العملاء إلى **فتح أي منفذ وارد**: يُنشئ عميل Netbird اتصالات صادرة نحو طبقة التحكم.\n\n**البرمجيات المطلوبة على خادم التحكم:** Docker مع إضافة Compose، و`jq` و`curl`، واسم نطاق يشير سجلّه A إلى عنوان IP الخادم (`netbird.yourdomain.com`). وإن فعّلت وكيل Netbird، فأضف سجلّ CNAME باسم `*.netbird` يشير إلى الاسم نفسه. وخلف Cloudflare، يضبط توثيق Netbird السجلّين على وضع DNS فقط.\n\n**على كل عقدة عميل:** العميل `netbird` (حزمة Debian\u002FRPM أو ملف تنفيذي ثابت)، مع صلاحيات root أو sudo.",{"type":45,"title":46,"steps":47},"steps","نشر طبقة التحكم وربط ثلاث عُقد",[48,51,54,57,60,63,66],{"title":49,"body":50},"تشغيل سكربت التثبيت","على خادم التحكم، نزّل السكربت الرسمي وشغّله:\n\n```bash\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Fnetbirdio\u002Fnetbird\u002Freleases\u002Flatest\u002Fdownload\u002Fgetting-started.sh | bash\n```\n\nيسألك السكربت عن نطاقك (`netbird.yourdomain.com`)، ثم عن الوكيل العكسي المراد استخدامه: احتفظ بالخيار `[0]` (Traefik المدمج، وTLS تلقائي). ثم يعرض تفعيل وكيل Netbird، ويمكنك إضافته لاحقًا أيضًا. يولّد الملفات `docker-compose.yml` و`config.yaml` و`dashboard.env` (و`proxy.env` إن فُعّل الوكيل)، ثم يشغّل الحزمة. ولتثبيت بلا أسئلة (cloud-init أو CI)، صدّر مسبقًا `NETBIRD_DOMAIN` و`NETBIRD_LETSENCRYPT_EMAIL` و`NETBIRD_NON_INTERACTIVE=true`.",{"title":52,"body":53},"التحقق من استجابة الخدمات","من مجلد التثبيت، تأكّد أن الحاويات تعمل:\n\n```bash\ndocker compose ps\n```\n\nيجب أن ترى `netbird-traefik` و`netbird-dashboard` و`netbird-server` في حالة `running` (والوكيل إن كان مفعّلًا). وعند الشك، تظهر أغلب أخطاء الإعداد في سجلّ الخادم:\n\n```bash\ndocker compose logs -f netbird-server\n```",{"title":55,"body":56},"إنشاء حساب المسؤول ومفتاح Setup Key","افتح `https:\u002F\u002Fnetbird.yourdomain.com` في المتصفح. ينشر السكربت Netbird **دون أي مستخدم**: تُوجَّه إلى الصفحة `\u002Fsetup` حيث تُنشئ حساب المسؤول (البريد الإلكتروني والاسم وكلمة المرور). ولا تتوفّر هذه الصفحة إلا ما دام لا يوجد أي مستخدم.\n\nفي قائمة **Setup Keys** انقر على **Create Setup Key**. امنحه اسمًا (`vps-client-a`)، واختر النوع `Reusable` (لتسجيل عدة أجهزة بالمفتاح نفسه) ومدة صلاحية. انسخ المفتاح، فستحتاج إليه على كل عقدة.",{"title":58,"body":59},"تسجيل العقدة 1","على أول خادم VPS للعميل، ثبّت عميل Netbird:\n\n```bash\ncurl -fsSL https:\u002F\u002Fpkgs.netbird.io\u002Finstall.sh | sh\n```\n\nثم اربطه بطبقة التحكم بتوجيهه إلى نسختك (دون `--management-url` يتّجه العميل إلى خدمة Netbird السحابية):\n\n```bash\nnetbird up \\\n  --management-url https:\u002F\u002Fnetbird.yourdomain.com \\\n  --setup-key \u003CYOUR_SETUP_KEY>\n```\n\nتحقّق من الاتصال:\n\n```bash\nnetbird status\n```\n\nيجب أن تقرأ `Management: Connected` و`Signal: Connected`، إضافةً إلى عنوان IP في الشبكة المشبكة ضمن النطاق `100.64.x.x` يخصّصه خادمك.",{"title":61,"body":62},"تسجيل العقدتين 2 و3","كرّر الإجراء نفسه تمامًا على خادمَي VPS الآخرين للعميل: أمر `curl` نفسه لتثبيت العميل، وأمر `netbird up` نفسه مع `--management-url` نفسه و`--setup-key` نفسه (إن كان من النوع `Reusable`).\n\nبعد تسجيل العقد الثلاث، تحقّق من العقدة 1 أن الأقران ظاهرون:\n\n```bash\nnetbird status --detail\n```\n\nتعرض النتيجة كل قرين بعنوانه في الشبكة المشبكة وحالته وزمن استجابته. ومنذ الإصدار v0.82، يعرض الأمر `netbird status --table` المعلومات نفسها في جدول.",{"title":64,"body":65},"اختبار اتصال الشبكة المشبكة دون منفذ عام مفتوح","قبل الاختبار، تحقّق من حالة جدار الحماية على العقدة 1 — يجب ألا يكون أي منفذ وارد مفتوحًا نحو العقد الأخرى:\n\n```bash\nsudo ufw status numbered\n```\n\nيجب ألا يظهر إلا منفذ SSH (22). أرسل الآن ping إلى العقدة 2 عبر عنوانها في الشبكة المشبكة (يظهر في `netbird status --detail`، مثل `100.64.0.2`):\n\n```bash\nping -c 3 100.64.0.2\n```\n\nيعبر الـping نفق WireGuard القائم بين القرينين. وإن تعذّر الاتصال المباشر، يتولّى المُرحِّل المدمج في الخادم المهمة عبر المنفذ 443: ينجح الـping في الحالتين، دون أي قاعدة UFW إضافية.",{"title":67,"body":68},"التمييز بين الاتصالات المباشرة والمُرحَّلة","لمعرفة ما إذا كان القرين متصلًا مباشرةً أو عبر المُرحِّل:\n\n```bash\nnetbird status --detail\n```\n\nيعرض الحقل `Connection type` القيمة `P2P` للاتصال المباشر، أو `Relayed` حين تمرّ الحركة عبر المُرحِّل. ولعرض الأقران المُرحَّلين فقط:\n\n```bash\nnetbird status -d --filter-by-connection-type Relayed\n```\n\nالحالة `P2P` هي المتوقّعة بين خادمَي VPS لكل منهما عنوان IPv4 عام. أما `Relayed` فيبقى مشفّرًا من طرف إلى طرف لكنه يضيف زمن استجابة: يبيّن قسم استكشاف الأعطال ما يجب فحصه.",{"type":35,"title":70,"body":71},"العزل بين العملاء: المجموعات وقواعد الوصول","تكمن قوة Netbird مقارنةً بـ Headscale في العزل حسب **المجموعة**، المُدار من الواجهة. نقطة يجب معرفتها أولًا: عند إنشاء الحساب يضع Netbird سياسة **Default** تسمح لكل أقران المجموعة الخاصة `All` بالتواصل فيما بينهم. وما دامت قائمة، فلا يصمد أي عزل. ولفصل خوادم العميل A عن خوادم العميل B:\n\n**1. أنشئ مجموعة لكل عميل** في واجهة الويب (`client-a` و`client-b`)، ومجموعة `agency-ops` لأجهزة فريقك.\n\n**2. أسند كل قرين إلى مجموعته.** في صفحة القرين، ضمن قسم المجموعات، أضف المجموعة المناسبة. ويمكن لمفتاح Setup Key أيضًا أن يُسند مجموعة تلقائيًا إلى كل جهاز يُسجَّل به: خصّص مفتاحًا لكل عميل.\n\n**3. حدّد قواعد الوصول** (Access Control → Policies). تسمح سياسة `client-a-internal` بالحركة بين أقران المجموعة `client-a`. وتسمح سياسة `ops-ssh` للمجموعة `agency-ops` وحدها ببلوغ المنفذ 22 في مجموعات العملاء: فلا يستطيع جهاز مخترَق داخل الشبكة المشبكة أن يكون نقطة ارتكاز نحو كل الخوادم. ولا تُنشأ أي قاعدة بين `client-a` و`client-b`.\n\n**4. احذف سياسة Default** بعد أن تصبح السياسات البديلة جاهزة. وبالترتيب المعاكس يتوقّف كل تواصل بين الأقران.\n\nالنتيجة: جهاز مسؤول لدى العميل A يبلغ خادم VPS A عبر عنوانه في الشبكة المشبكة لكنه لا يرى خادم VPS B، وتبقى المجموعة `agency-ops` العضو العابر الوحيد. ويمكنك أيضًا تعريف **Network Routes**: يؤدّي قرين دور الموجّه لشبكة فرعية خاصة (مثل `192.168.10.0\u002F24`) ويتيحها لبقية أقران المجموعة، دون عميل Netbird على كل جهاز في تلك الشبكة.",{"type":35,"title":73,"body":74},"إغلاق SSH العام: الاستماع على واجهة الشبكة المشبكة فقط","بعد تسجيل العقد، لم تعد الإدارة بحاجة إلى منفذ SSH مفتوح على الإنترنت: يمرّ `ssh admin@100.64.0.2` بالكامل داخل النفق المشفّر. ينشئ عميل Netbird واجهة WireGuard باسم `wt0` (الاسم الافتراضي)؛ اسمح بـ SSH على هذه الواجهة، ثم ارفضه في غيرها:\n\n```bash\nsudo ufw allow in on wt0 to any port 22 proto tcp\nsudo ufw deny 22\u002Ftcp\nsudo ufw status numbered\n```\n\nيطبّق UFW أول قاعدة مطابقة: يجب أن تظهر قاعدة `wt0` قبل قاعدة الرفض. أبقِ جلسة SSH الحالية مفتوحة، واختبر اتصالًا جديدًا عبر عنوان الشبكة المشبكة قبل إغلاقها: إن لم يعمل النفق، تبقى لديك وسيلة للخروج. ثم تحدّد سياسة `ops-ssh` المذكورة أعلاه من يستطيع، داخل الشبكة المشبكة، بلوغ هذا المنفذ.",{"type":35,"title":76,"body":77},"`netbird expose`: نشر خدمة محلية دون فتح منفذ","تربط الشبكة المشبكة أجهزتك ببعضها. ولجعل خدمة متاحة **من الإنترنت** دون المساس بجدار حماية الخادم، يوفّر Netbird منذ الإصدار v0.66 (فبراير 2026) الأمر `netbird expose`. يعتمد هذا الأمر على وكيل Netbird: في نسخة مستضافة ذاتيًا يجب أن يكون الوكيل مفعّلًا (عند التثبيت أو لاحقًا)، مع سجلّ DNS شامل (wildcard) يشير إلى الخادم.\n\nعلى المسؤول أولًا أن يسمح بالميزة: **Settings → Clients → Peer Expose**، مع حصر مجموعات الأقران المسموح لها عند الحاجة. ثم، على خادم VPS يعمل عليه مثلًا Grafana على `127.0.0.1:3000`:\n\n```bash\nnetbird expose 3000 --with-name-prefix grafana --with-user-groups supervision-admins\n```\n\nيعرض الأمر عنوان URL عامًا على نطاق الوكيل ويُبقي الجلسة مفتوحة؛ ويزيلها `Ctrl+C`. الخدمة **مؤقتة**: يجدّدها العميل كل 30 ثانية، ويحذفها الخادم بعد نحو 90 إلى 120 ثانية من آخر تجديد إذا اختفى العميل. ويبقى المنفذ 3000 مغلقًا على جدار حماية الخادم.\n\nدون خيار مصادقة، يكون العنوان **عامًا** لكل من يعرفه. وتوجد ثلاث وسائل حماية لـ HTTP: `--with-user-groups` (تسجيل دخول SSO محصور في المجموعات المذكورة)، و`--with-password \u003Cpassword>` (كلمة مرور تختارها أنت)، و`--with-pin \u003C6 أرقام>`. أما `--protocol tcp` فينشر خدمة غير HTTP دون إمكانية مصادقة. ويستطيع كل قرين الاحتفاظ بعشر جلسات متزامنة، ويفشل الأمر إذا كان خيار Block Inbound Connections مفعّلًا على القرين. ولخدمة دائمة، أنشئها من Dashboard بدلًا من ذلك.",{"type":79,"title":80,"headers":81,"rows":86},"comparison","Netbird وHeadscale وWireGuard اليدوي في لمحة",[82,83,84,85],"المعيار","Netbird المستضاف ذاتيًا","Headscale","WireGuard اليدوي",[87,92,97,102,107],[88,89,90,91],"إدارة الأقران","تلقائية، بطبقة تحكم وواجهة ويب","تلقائية، بعملاء Tailscale الرسميين","يدوية، ملف `wg0.conf` على كل عقدة",[93,94,95,96],"NAT وCGNAT","STUN مدمج، ومُرحِّل على المنفذ 443","خوادم DERP (خادم DERP مدمج اختياري)","يتطلب عنوان IP عامًا أو إعادة توجيه منفذ",[98,99,100,101],"العزل","مجموعات وسياسات في الواجهة","ملف سياسة ACL (HuJSON)","لا شيء، سوى `AllowedIPs` لكل قرين",[103,104,105,106],"نشر خدمة","`netbird expose` أو وكيل Netbird","غير مدمج","نفق SSH أو وكيل عكسي تُعدّه بنفسك",[108,109,110,111],"الرخصة","BSD-3 (العميل)، AGPLv3 (الخادم)","BSD-3-Clause","برمجيات حرّة (نواة Linux والأدوات)",{"type":35,"title":113,"body":114},"العمليات اليومية","**تجديد مفتاح Setup Key أو إلغاؤه.** في واجهة الويب: Setup Keys → مفتاحك → Revoke. يحتفظ الأقران المسجّلون مسبقًا باتصالهم، وتُرفض محاولات التسجيل الجديدة بهذا المفتاح. أنشئ مفتاحًا جديدًا للتسجيلات القادمة.\n\n**إلغاء قرين.** Peers → اختر القرين → Delete. تُزال العقدة من الشبكة المشبكة؛ ومن جهة العميل ينقطع الاتصال بـ Management وتُهدم أنفاق WireGuard نحو هذا القرين.\n\n**الوصول إلى الواجهة البرمجية للأتمتة.** يوفّر Netbird واجهة REST موثّقة. أنشئ مستخدم خدمة (Team → Service Users) ورمز الوصول الخاص به، ثم أدِر كل شيء من سكربتات Ansible أو خطوط CI:\n\n```bash\ncurl -s https:\u002F\u002Fnetbird.yourdomain.com\u002Fapi\u002Fpeers \\\n  -H 'Authorization: Token \u003CPAT>'\n```\n\n**المراقبة.** يعرض الخادم المدمج مقاييس Prometheus على `\u002Fmetrics`، على المنفذ `9090` افتراضيًا (المفتاح `server.metricsPort` في `config.yaml`): هدف جمع واحد يغطي Management وSignal وRelay. اربط Grafana به لمتابعة الأقران المتصلين ونشاط المُرحِّل.\n\n**التحديث.** من مجلد التثبيت، اسحب الصور الجديدة ثم أعد إنشاء الحاويات:\n\n```bash\ndocker compose pull netbird-server dashboard\ndocker compose up -d --force-recreate netbird-server dashboard\n```\n\nأضف `proxy` إلى الأمرين إن كان مفعّلًا. وإذا كان `docker-compose.yml` يثبّت إصدارات محدّدة، فعدّل وسوم `image:` أولًا، لأن `docker compose pull` لا يغيّرها. يفقد الأقران طبقة التحكم بضع ثوانٍ أثناء إعادة التشغيل، فخطّط للعملية خارج ساعات الذروة. ويُحدَّث Traefik بمعزل عن Netbird.",{"type":116,"title":117,"body":118},"tip","التحصين: المصادقة متعددة العوامل على Dashboard ونسخ البيانات احتياطيًا","يتولّى مزوّد الهوية المضمَّن المصادقة الثنائية للحسابات المحلية: يفرض **Settings → Authentication → Local MFA** رمز TOTP على كل مستخدم. ويمكنك أيضًا ربط مزوّد OIDC (Keycloak أو Authentik أو Microsoft Entra ID…) وتطبيق سياسة MFA الخاصة بك فيه.\n\nتعيش الحالة الدائمة لشبكتك (قاعدة بيانات Management ومفاتيح التشفير) في وحدة تخزين Docker باسم `netbird_data`، المركّبة على `\u002Fvar\u002Flib\u002Fnetbird`: فقدانها يعني إعادة تسجيل كل أقرانك. أوقف الحزمة للحصول على نسخة متّسقة، وانسخ ملفات الإعداد ووحدة التخزين، ثم أعد التشغيل:\n\n```bash\ndocker compose stop\nmkdir -p backup\ncp docker-compose.yml config.yaml dashboard.env backup\u002F\ndocker compose cp -a netbird-server:\u002Fvar\u002Flib\u002Fnetbird\u002F backup\u002F\ndocker compose start\n```\n\nإن كان الوكيل مفعّلًا، فأضف `proxy.env` و`traefik-dynamic.yaml`. واحتفظ بنسخ سبعة أيام على الأقل، خارج الخادم.",{"type":35,"title":120,"body":121},"استكشاف الأعطال","**أقران عالقون في `Relayed`.**\nالمُرحِّل يعمل، لكن الاتصال المباشر يفشل. تحقّق أولًا من أن منفذ UDP 3478 على خادم التحكم مفتوح (`ufw status`)، ثم من قدرة العقد على إرسال UDP صادر. على خادم VPS بعنوان IP عام ودون NAT، يكفي جدار حماية مضيف يرفض UDP الوارد غير المطلوب لإفشال الاتصال المباشر؛ ويقترح توثيق Netbird عندئذٍ `sudo ufw allow in proto udp to any port 49152:65535` على حساب فتح أوسع، أو قبول المُرحِّل. والقرين الذي يظهر `Connected` ولا يردّ على الـping يدلّ غالبًا على الحجب نفسه، من جهة الواجهة `wt0`.\n\n**UDP محجوب في شبكة شركة.**\nلا شيء يحتاج إلى ضبط: منذ الإصدار v0.36 يجرّب العميل المُرحِّل عبر QUIC (UDP\u002F443) وعبر WebSocket (TCP\u002F443)، ويحتفظ بأول ما يستجيب. وإن لم يمرّ سوى TCP\u002F443 الصادر، يبقى القرين متصلًا في الوضع المُرحَّل.\n\n**قرين عالق في `Connecting`.**\nنجح التسجيل لكن النفق لا يتكوّن. تحقّق من أن `netbird status` يعرض فعلًا `Signal: Connected`، وأن الخادم يعلن عنوانًا عامًا صحيحًا (الحقل `exposedAddress` في `config.yaml`)، وأن المنفذين 443\u002FTCP و3478\u002FUDP متاحان من العقدة.\n\n**قراءة السجلّات.**\nمن جهة الخادم: `docker compose logs -f netbird-server`. ومن جهة العميل يُكتب السجلّ افتراضيًا في `\u002Fvar\u002Flog\u002Fnetbird\u002Fclient.log`. ولتشخيص كامل، يضع الأمر `netbird debug for 5m` العميل في وضع التسجيل المفصّل خمس دقائق ثم ينتج أرشيف تشخيص (وينتجه `netbird debug bundle` فورًا).\n\n**تحليل أسماء DNS بين الأقران.**\nيمنح Netbird كل قرين اسم DNS يظهر في الحقل **Domain Name** في صفحته. فإن فشل الـping بالاسم بينما ينجح `ping 100.64.0.2`، فتحقّق من أن الخدمة تعمل على القرين (`sudo netbird service status`) وأن DNS النظام يمرّ فعلًا عبر Netbird (`resolvectl status`).",{"type":35,"title":123,"body":124},"وكيل Netbird عالق على «Issuing certificate…»","حين يُفعَّل الوكيل، يتكرّر عَرَض بعينه: تبقى الخدمة المنشأة على «Issuing certificate…» (الحالة `certificate_pending` أو `certificate_failed`) ولا يمكن بلوغها أبدًا. ما زالت التذكرة netbird #5517، المفتوحة في 5 مارس 2026، مفتوحةً حتى 7 نوفمبر 2026 بستة وثلاثين تعليقًا ووسم `triage-needed`. والرسالة الأكثر تكرارًا في سجلّ الوكيل، `no viable challenge type found`، لا تقول إلا إن سلطة الشهادات لم تتلقَّ أي ردّ صالح على تحدّياتها: فلا يوجد سبب واحد. ابدأ بقراءة السجلّ (`docker compose logs proxy | grep -i acme`) ودوّن الخطأ بدقّة، ثم استبعد الأسباب واحدًا تلو الآخر.",{"type":126,"title":127,"items":128},"ul","ترتيب تشخيص شهادة لا تصدر",[129,130,131,132,133],"**صلاحيات مجلد الشهادات** — خطأ `permission denied` على `\u002Fcerts` هو الحالة الوحيدة التي حسمها أحد المساهمين في المستودع: لن يصلحه أي تحديث، فالسبب صلاحيات نظام الملفات. تحقّق من المستخدم الذي تعمل به الحاوية قبل تغيير الصلاحيات.","**DNS وCAA والمنافذ** — يجب أن يُحلّ الاسم إلى الوكيل، وألا يستبعد أي سجلّ CAA سلطة Let's Encrypt. ويجب أن يكون المنفذ 443 متاحًا من الإنترنت لتحدّي `tls-alpn-01` (الافتراضي)، والمنفذ 80 لتحدّي `http-01`. تتحقّق Let's Encrypt من عدة مناطق في العالم، فيُفشل الحجب الجغرافي التحقّق.","**شبكة CDN أو وكيل في الأمام** — لا تمرّر Cloudflare وبعض الأجهزة بروتوكول ALPN `acme-tls\u002F1`. في هذه الحالة انتقل إلى `NB_PROXY_ACME_CHALLENGE_TYPE=http-01` في `proxy.env`.","**Traefik في الواجهة** — إذا كان Traefik يمرّر TLS إلى الوكيل دون فكّه، فيجب أن تحمل نقطة الدخول HTTPS الخيار `allowACMEByPass=true`، الذي يضعه سكربت التثبيت على `websecure`. وعلى Traefik قائم، استخدم اسم نقطة الدخول الخاصة بك؛ فقد اضطر مشاركون في التذكرة إلى إضافته على نقطة دخول HTTP أيضًا، بينما كان لدى آخرين دون نتيجة.","**ما لم يثبت بعد** — لا يمثّل أيٌّ من هذه المسارات «السبب» بعينه: اختبرها على تثبيتك قبل أن تستنتج.",{"type":35,"title":135,"body":136},"أصل مغلق: الشهادة عبر DNS-01 باستخدام lego","يتطلب التحدّيان `tls-alpn-01` و`http-01` أن تصل السلطة إلى وكيلك من الإنترنت، وهذا يتعارض مع أصل مغلق إلا أمام نطاقات شبكة CDN أو مع حجب جغرافي. أما التحدّي `dns-01` فيرفع هذا القيد: يثبت التحكّم في النطاق بسجلّ TXT مؤقت يُنشأ عبر واجهة مزوّد DNS البرمجية. لا يدعمه وكيل Netbird أصلًا: فالطلب (التذكرة #5450، المفتوحة في 25 فبراير 2026) ما زال مفتوحًا. لكن توثيق Netbird يصف إعدادًا باسم «private proxy with lego»: يحصل lego على شهادة شاملة (wildcard) ويجدّدها عبر DNS-01، ويضعها خطّاف نشر في وحدة تخزين مشتركة، ثم يعيد الوكيل تحميلها دون إيقاف بعد كل تجديد.",{"type":126,"title":138,"items":139},"نقاط الانتباه في إعداد lego",[140,141,142,143,144],"**متغيّرات الوكيل** — يحدّد `NB_PROXY_WILDCARD_CERT_DIR` مجلد الشهادات الشاملة، ويفعّل `NB_PROXY_PRIVATE=true` الاستماع الخاص على الشبكة المشبكة. ثبّت صورة للوكيل تعرف هذين المتغيّرين.","**الوضع الخاص لا يغلق شيئًا وحده** — لا يعطّل `NB_PROXY_PRIVATE` الاستماع العادي للوكيل. أزِل بنفسك المنافذ المنشورة ومسارات الدخول (وسوم Traefik، وCaddy، وnginx) المؤدية إلى الحاوية.","**نطاق الشهادة الشاملة** — لا تغطي `*.proxy.yourdomain.com` إلا مستوى واحدًا من النطاقات الفرعية. وأي اسم خارج التغطية يعود إلى ACME المدمج، الذي لا يمكن أن ينجح إذا كان الوكيل خاصًا بالكامل.","**انكشاف الشهادة** — تظهر الشهادة الشاملة والنطاق الأساسي في سجلّات Certificate Transparency، لا أسماء الخدمات التي تغطيها؛ لكن اختراق مفتاحها يطال كل تلك الأسماء.","**التشغيل** — استخدم خادم ACME الإنتاجي لدى Let's Encrypt (شهادات الاختبار غير موثوقة)، وانسخ وحدات تخزين lego والشهادات احتياطيًا، وثبّت إصدارات مختبَرة من lego والوكيل.",{"type":35,"title":146,"body":147},"ما تغيّره الشبكة المشبكة في إدارة الخوادم","تحلّ شبكة Netbird المشبكة المستضافة ذاتيًا محلّ ثلاث طبقات تصونها يدويًا: توزيع مفاتيح WireGuard، وقواعد UFW بين الخوادم، وتوثيق صلاحيات الوصول المتقاطعة. يُسجَّل كل خادم VPS جديد للعميل بأمر واحد، وكل إلغاء فوري ومركزي. ويمكن إغلاق SSH العام، وينشر `netbird expose` خدمة عند الطلب دون فتح أي منفذ.\n\nيتيح لك العزل بالمجموعات النمو دون خطر التداخل: لا يمكن لخوادم عميلين مختلفين أن ترى بعضها، حتى إن كانت تعمل على البنية التحتية نفسها. وتبقى طبقة التحكم تحت سيطرتك: لا اعتماد على خدمة SaaS خارجية، ولا حدّ لعدد المقاعد، ولا اشتراك لكل عقدة.\n\nوللمضيّ أبعد، صِف تجهيز العقد في Ansible (راجع \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fأتمتة-إدارة-خوادم-vps-باستخدام-ansible\">دليلنا عن Ansible\u003C\u002Fa>): يصبح تثبيت العميل والأمر `netbird up` وقواعد UFW على `wt0` مهامّ متكرّرة النتيجة (idempotent) ضمن دور قابل لإعادة الاستخدام.","خوادم VPS وحسابات عملائك على حساب واحد","يجمع فضاء العميل في ServOrbit.com نطاقاتك واستضافاتك وخوادم VPS مع مواعيد استحقاقها. وتضيف مساحة Reseller حسابات cPanel الخاصة بعملائك. أضف VPS مخصصًا لخطة التحكم Netbird.","اكتشف عرض الوكالات","\u002Fsolutions\u002Fagences",[153,178,197],{"id":154,"slug":155,"slugs":156,"title":160,"excerpt":161,"readTime":162,"views":163,"isPinned":19,"noindex":19,"publishedAt":164,"updatedAt":165,"category":166,"categories":172,"featuredImage":29,"bgImage":30,"posterImage":174,"relatedSolution":175},164,"استضافة-headscale-على-vps-خادم-تحكم-tailscale-خاص-بك",{"fr":157,"en":158,"ar":155,"es":159},"self-host-headscale-tailscale-vps","self-host-headscale-on-a-vps-your-own-tailscale-control-server","auto-alojar-headscale-en-un-vps-servidor-tailscale","استضافة Headscale على VPS: خادم تحكّم Tailscale خاص بك","استبدل خادم التحكم السحابي لـ Tailscale بـ Headscale على خادم VPS الخاص بك — مستخدمون غير محدودين، وشبكة WireGuard متشابكة كاملة، وmagic DNS وقوائم ACL، دون أي اعتماد على SaaS.",19,2,"2026-07-05T00:00:00+00:00","2026-11-08T01:13:12+00:00",{"id":167,"name":168,"slug":169,"color":170,"icon":171},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[173],{"id":167,"name":168,"slug":169,"color":170,"icon":171},"\u002Fblog\u002Fcovers\u002Fself-host-headscale-tailscale-vps-poster.svg",{"categorySlug":176,"appSlug":177},"الشبكات-وvpn","headscale",{"id":179,"slug":180,"slugs":181,"title":185,"excerpt":186,"readTime":187,"views":163,"isPinned":19,"noindex":19,"publishedAt":188,"updatedAt":189,"category":190,"categories":194,"featuredImage":29,"bgImage":30,"posterImage":196,"relatedSolution":29},236,"أتمتة-إدارة-خوادم-vps-باستخدام-ansible",{"fr":182,"en":183,"ar":180,"es":184},"ansible-automatiser-serveurs-vps","automating-vps-server-management-with-ansible","automatizar-servidores-vps-con-ansible","أتمتة إدارة خوادم VPS باستخدام Ansible","تعرّف على كيفية أتمتة إدارة أسطول خوادم VPS باستخدام ‎Ansible‎: الجرد والـ playbooks والأدوار والـ Vault لبنية تحتية قابلة للتكرار.",10,"2026-08-08T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":163,"name":191,"slug":192,"color":193,"icon":192},"الأتمتة","automatisation","bg-brand-action\u002F10 text-brand-action",[195],{"id":163,"name":191,"slug":192,"color":193,"icon":192},"\u002Fblog\u002Fcovers\u002Fansible-automatiser-serveurs-vps-poster.svg",{"id":198,"slug":199,"slugs":200,"title":204,"excerpt":205,"readTime":167,"views":206,"isPinned":19,"noindex":19,"publishedAt":207,"updatedAt":208,"category":209,"categories":210,"featuredImage":29,"bgImage":30,"posterImage":212,"relatedSolution":29},228,"تصليب-الخادم-linux-الأولي",{"fr":201,"en":202,"ar":199,"es":203},"durcissement-serveur-linux-initial","initial-linux-server-hardening","hardening-inicial-servidor-linux","تصليب الخادم ‎Linux‎ الأولي","أنشئ مستخدم ‎sudo‎، وكوّن ‎SSH‎ بالمفاتيح، وفعّل ‎UFW‎ و‎fail2ban‎ على ‎Ubuntu‎ أو ‎Debian‎ في أقل من ساعة.",1,"2026-08-06T00:00:00+00:00","2026-10-20T23:18:07+00:00",{"id":167,"name":168,"slug":169,"color":170,"icon":171},[211],{"id":167,"name":168,"slug":169,"color":170,"icon":171},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",true,1794270346902]