كيفية إعداد WireGuard على أوبونتو 24.04 LTS وLinux Mint: دليل خطوة بخطوة
دليل شامل خطوة بخطوة لإعداد WireGuard على أوبونتو 24.04 LTS وLinux Mint باستخدام NetworkManager (واجهة المستخدم الرسومية) وCLI. خلال 60–90 دقيقة، ستحصل على خادم VPN مستقر مع بدء تلقائي، إعداد صحيح لـ DNS والتوجيه، بالإضافة إلى نصائح لاستكشاف الأخطاء وإصلاحها والتكوينات المتقدمة.
محتوى المقال
- مقدمة
- التحضيرات الأولية
- مفاهيم أساسية
- الخطوة 1: تثبيت والتحقق من بيئتك
- الخطوة 2: التحضير للتكوين والمفاتيح
- الخطوة 3: التكوين عبر networkmanager على أوبونتو 24.04 (gnome)
- الخطوة 4: التكوين عبر networkmanager على linux mint (cinnamon)
- الخطوة 5: الإعداد عبر cli (nmcli): الاستيراد أو الإنشاء اليدوي
- الخطوة 6: dns والتوجيه والاختيار بين النفق الكامل والمجزأ
- الخطوة 7: بدء تلقائي، killswitch، والثبات
- الخطوة 8: بدء سريع عن طريق استيراد تكوين جاهز وخيار عملي
- التحقق من النتيجة
- الأخطاء الشائعة وحلولها
- ميزات إضافية
- الأسئلة الشائعة
- الخاتمة
مقدمة
في هذا الدليل التفصيلي خطوة بخطوة، ستتعلم كيفية إعداد WireGuard على أوبونتو 24.04 LTS وLinux Mint من الصفر، باستخدام طريقتين: واجهة NetworkManager الرسومية وسطر الأوامر (CLI). سنرشدك إلى كيفية استيراد ملف تكوين جاهز بسرعة، إنشاء ملف تعريفي يدويًا، تفعيل البدء التلقائي، تكوين DNS والتوجيه (نفق كامل أو نفق مجزأ)، بالإضافة إلى تشخيص وحل المشكلات الشائعة. في النهاية، سيكون لديك اتصال VPN موثوق وسهل التحكم فيه بنقرة واحدة ويبدأ تلقائيًا مع تشغيل النظام.
هذا الدليل مثالي للمبتدئين في لينكس الذين يبحثون عن إرشادات بسيطة وواضحة دون تعقيد نظري، مع شروحات واضحة. طوال الدليل ستجد أيضًا نصائح متقدمة مثل إعداد مفتاح إيقاف تلقائي (killswitch)، ضبط إعدادات MTU، التعامل مع عدة أقران، وكتابة سكربتات باستخدام nmcli.
ماذا تحتاج أن تعرف مسبقًا؟ لا شيء معقد: مهارات أساسية في النظام، كيفية إدخال الأوامر في الطرفية، ومعرفة مكان إعدادات الشبكة. سنشرح كل شيء خطوة بخطوة. خصص بين 60 إلى 90 دقيقة لإنهاء الإعداد كاملًا، متضمنًا الاختبار وحل أي أخطاء صغيرة.
النتيجة: اتصال WireGuard يعمل ومنظم عبر NetworkManager (زر تشغيل/إيقاف في علبة النظام أو الإعدادات)، توجيه متوقع، DNS محمي من التسرب، بدء تلقائي مع تشغيل النظام، وخطة واضحة للتعامل مع أي مشكلة.
التحضيرات الأولية
قبل البدء، تأكد من توفر كل ما تحتاجه. لقد قمنا بسرد المتطلبات الدنيا وشرح سبب ضرورتها.
الأدوات والصلاحيات المطلوبة
- الوصول إلى نظام يعمل بأوبونتو 24.04 LTS (سطح مكتب) أو Linux Mint (أحدث نسخة مبنية على أوبونتو 24.04). يمكن أن يكون جهازًا فعليًا أو آلة افتراضية.
- صلاحيات المسؤول (sudo). ستحتاجها لتثبيت الحزم وتغيير إعدادات الشبكة.
- تفاصيل الاتصال بخادم WireGuard: إما ملف تكوين .conf جاهز أو مجموعة من المعطيات تشمل المفتاح العام للخادم، عنوان الخادم والمنفذ، المفتاح الخاص بك، الشبكات المسموح بها (AllowedIPs)، عنوان الواجهة (Address)، وخيارياً DNS.
متطلبات النظام
- نواة لينكس 5.6 فما فوق (مضمنة بالفعل في أوبونتو 24.04 ونسخ لينكس منت الحديثة).
- NetworkManager نسخة 1.40 فما فوق مع دعم WireGuard المدمج (مضمّن بشكل افتراضي في أوبونتو 24.04 وMint المبنية عليه).
- حزم wireguard-tools (لتوليد المفاتيح والتشخيص) و nmcli (جزء من NetworkManager) لاستخدام سطر الأوامر.
ما يجب تثبيته قبل البدء
- افتح الطرفية.
- حدّث قوائم الحزم: sudo apt update
- ثبت الأدوات اللازمة: sudo apt install -y network-manager wireguard wireguard-tools
- تحقق من نسخة NetworkManager: nmcli -v. يجب أن تكون 1.40 أو أحدث. إذا كانت أقدم، قم بالتحديث: sudo apt upgrade -y ثم أعد التشغيل: sudo reboot.
- تأكد من أن NetworkManager نشط: systemctl status NetworkManager. يجب أن يظهر الحالة نشطة (running).
إنشاء نسخ احتياطية
إذا كنت تنوي استبدال ملفات تعريف VPN موجودة أو تعديل إعدادات الشبكة، أنشئ نسخًا احتياطية أولاً:
- تصدير ملفات تعريف NetworkManager: nmcli connection export "connection-name" ~/backup-connection-name.nmconnection
- حفظ ملفات إعدادات WireGuard الحالية: إذا كانت موجودة في /etc/wireguard أو ~/.config/wireguard، انسخها إلى مكان آمن: cp -a /etc/wireguard ~/wg-backup
⚠️ تحذير: توقف أو أغلق المهام الشبكية الحساسة أثناء الإعداد (مثل الجلسات البعيدة أو التنزيلات النشطة) لتجنب حدوث انقطاع عند تغيّر المسارات بشكل مفاجئ.
مفاهيم أساسية
قبل الخوض في الإعداد، دعنا نشرح بعض المصطلحات الرئيسية ببساطة لتفهم وظيفة كل معلمة وما الذي تتحقق منه أثناء استكشاف الأخطاء.
- واجهة WireGuard – هي واجهة شبكة افتراضية ضمن النظام (عادةً wg0، لكن يمكنك تسميتها كما تريد). تمر عبرها كل حركة المرور المشفرة.
- المفاتيح – يستخدم WireGuard مفتاحًا خاصًا على جانب العميل ومفتاحًا عامًا على الخادم (وبالعكس). يتعرف الأقران على بعضهم بالمفاتيح العامة، والمفتاح الخاص يبقى سريًا.
- القرين (Peer) – هو الطرف البعيد للنفق. على العميل، القرين عادةً هو الخادم.
- AllowedIPs – الشبكات التي يجب توجيهها عبر النفق. ضبط 0.0.0.0/0 و::/0 يوجه كل الحركة عبر خادم VPN (نفق كامل). تحديد شبكات محددة فقط ينشئ نفقًا مجزأ.
- نقطة النهاية (Endpoint) – عنوان ومنفذ خادم WireGuard البعيد.
- DNS – خوادم أسماء النطاقات التي يستخدمها النظام داخل VPN. في إعدادات النفق الكامل، عادةً تستخدم DNS الخاص بمزود VPN لمنع التسرب.
- MTU – الحد الأقصى لحجم الحزمة. أحيانًا تقليل MTU (مثلاً إلى 1420 أو 1280) يساعد على تجنب التجزئة وعدم الاستقرار.
- PersistentKeepalive – زمن إرسال حزم "فارغة" للحفاظ على اتصال مستمر خلف NAT، عادة يتم ضبطه على 25 ثانية.
نصيحة: إذا لم تكن متأكدًا من القيم، ابدأ باستيراد ملف تكوين جاهز يمكنك اختباره فورًا ثم تفهم أي الحقول تتحكم بماذا لتعدّل يدويًا.
الخطوة 1: تثبيت والتحقق من بيئتك
الهدف
بعد هذه الخطوة، ستتأكد من تثبيت كل الحزم اللازمة، دعم NetworkManager لـ WireGuard، وتشغيل الخدمات الشبكية الأساسية بشكل صحيح.
تعليمات خطوة بخطوة
- افتح الطرفية بالضغط على Ctrl+Alt+T.
- حدّث قائمة الحزم: sudo apt update
- ثبت الحزم: sudo apt install -y network-manager wireguard wireguard-tools
- تحقق من نسخة NetworkManager: nmcli -v. يجب أن يظهر nmcli tool، النسخة 1.44.x أو أحدث.
- تأكد من أن الخدمة نشطة: systemctl is-active NetworkManager. يجب أن يكون الجواب active.
- تحقق من وجود أداة wg: wg --version. يجب أن تظهر نسخة wireguard-tools.
- اعرف اسم اتصال الإنترنت النشط: nmcli connection show --active. لاحظ اسم الواجهة (مثل "Wired connection 1" أو "Home Wi-Fi").
⚠️ تحذير: إذا كنت تستخدم مديري شبكات آخرين في نفس الوقت، قم بإيقافهم. تشغيل عدة مديري شبكات قد يسبب تعارضات في التوجيه.
نصيحة: إذا قمت بترقية NetworkManager أو النواة، أعد التشغيل: sudo reboot. هذا يمنع تعليق الخدمات.
النتيجة المتوقعة
تم تثبيت الحزم، أوامر nmcli و wg متاحة، و NetworkManager نشط. أنت جاهز لتكوين ملف WireGuard الخاص بك.
✅ التحقق: نفذ nmcli general status — يجب أن تُظهر STATE و CONNECTIVITY أنك متصل بالإنترنت. أمر wg يجب أن يعمل بدون أخطاء.
مشكلات وحلول شائعة
- مشكلة: أمر nmcli غير موجود. السبب: NetworkManager غير مثبت. الحل: sudo apt install -y network-manager.
- مشكلة: أمر wg غير موجود. السبب: عدم وجود wireguard-tools. الحل: sudo apt install -y wireguard-tools.
- مشكلة: فشل تشغيل NetworkManager. السبب: تعارض مع خدمة شبكة أخرى. الحل: تعطيل أو إزالة مديري الشبكات البدلاء واستخدام إعدادات سطح المكتب الافتراضية.
الخطوة 2: التحضير للتكوين والمفاتيح
الهدف
احصل على ملف .conf جاهز للاستيراد أو قم بإنشاء مفاتيحك وملف التكوين يدويًا. في النهاية، ستكون لديك كل البيانات التي تدخلها في الواجهة الرسومية أو سطر الأوامر.
الخيار أ: استخدام تكوين جاهز
- انسخ ملف تكوين WireGuard الخاص بك (مثلاً wg0.conf) إلى مجلد المنزل. لمزيد من التنظيم، استخدم ~/.config/wireguard.
- تأكد من صلاحيات الملف: chmod 600 ~/.config/wireguard/wg0.conf. يحتمل احتواء الملف على مفاتيح خاصة—احرص على حمايته.
- افتح الملف للمراجعة: cat ~/.config/wireguard/wg0.conf. تأكد من وجود أقسام [Interface] و[Peer].
الخيار ب: إنشاء المفاتيح والتكوين يدويًا
- أنشئ مجلد العمل: mkdir -p ~/.config/wireguard && cd ~/.config/wireguard
- اضبط قناع الأذونات: umask 077 لتقييد صلاحيات الملفات.
- أنشئ المفتاح الخاص والعام: wg genkey | tee client_private.key | wg pubkey > client_public.key
- احفظ المفاتيح بأمان. لا تشارك مفتاحك الخاص. أرسل المفتاح العام لمسؤول الخادم لإضافة عميلك.
- حضّر القيم: عنوان الواجهة المحلية (مثلاً 10.14.0.2/32)، عنوان الخادم والمنفذ (مثل 203.0.113.10:51820)، المفتاح العام للخادم، AllowedIPs (0.0.0.0/0, ::/0 للنفق الكامل أو الشبكات المختارة للنفق المجزأ)، DNS (مثلاً 10.14.0.1).
- أنشئ ملف التكوين: nano wg0.conf وأدخل الهيكل التالي:
[Interface]
Address = 10.14.0.2/32, fd42:42:42::2/128
PrivateKey = INSERT_PRIVATE_KEY
DNS = 10.14.0.1
[Peer]
PublicKey = INSERT_SERVER_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 203.0.113.10:51820
PersistentKeepalive = 25 - احفظ واخرج من المحرر. اضبط صلاحيات الملف: chmod 600 wg0.conf.
نصيحة: إذا كنت تتحكم بالخادم، أضف المفتاح العام للعميل في ملف تكوين الخادم وخصص له IP مجاني من الشبكة الفرعية. بدون هذه الخطوة، لن يتعرف الخادم على العميل ولن يتم الاتصال.
النتيجة المتوقعة
لديك ملف wg0.conf جاهز للاستيراد أو مجموعة المفاتيح والبيانات لإدخالها يدويًا عبر NetworkManager أو nmcli.
✅ التحقق: افتح wg0.conf وتأكد من وجود الأقسام الصحيحة؛ المفتاح الخاص يجب أن يكون سلسلة base64 طويلة. أمر ls -l يظهر أذونات -rw------- على الملف.
مشكلات وحلول شائعة
- مشكلة: غياب المفتاح العام للخادم. السبب: عدم توفر البيانات من المسؤول. الحل: اطلب PublicKey و Endpoint.
- مشكلة: لا تعرف عنوان واجهتك. السبب: عدم وجود خطة عناوين. الحل: استخدم عنوان من ملف التكوين الجاهز أو اطلبه من المسؤول.
- مشكلة: الشبكات الفرعية للعميل والخادم لا تتطابق. السبب: تعارض في العناوين. الحل: تحقّق من إعدادات Address والشبكة الفرعية على الطرفين.
الخطوة 3: التكوين عبر NetworkManager على أوبونتو 24.04 (GNOME)
الهدف
إنشاء وتفعيل اتصال خادم VPN WireGuard باستخدام الواجهة الرسومية لأوبونتو 24.04، مما يسهل التحكم بلمسة واحدة.
خطوات الاستيراد من ملف جاهز
- افتح «الإعدادات» (رمز الترس في شريط المهام أو عبر قائمة النظام).
- اذهب إلى قسم «الشبكة».
- ضمن «VPN»، اضغط على «+» (إضافة VPN).
- اختر «استيراد من ملف…».
- تصفح إلى ملف wg0.conf الخاص بك واضغط «فتح».
- يظهر لك نافذة تعديل الملف الشخصي. تحقق من الاسم (مثل «WireGuard wg0»)، العناوين، المفاتيح، AllowedIPs، و Endpoint؛ عدل إذا لزم الأمر.
- اضغط «حفظ».
- يظهر الملف في القائمة. فعّله بنقلة المفتاح بجانبه.
خطوات التكوين اليدوي بدون ملف
- افتح «الإعدادات» → «الشبكة» → «VPN» → «+».
- اختر «WireGuard» (إنشاء يدوي، بدون استيراد).
- في «اسم الاتصال»، اكتب اسمًا واضحًا مثل «WG Home».
- في «اسم الواجهة»، عيّن wg0 أو اتركه افتراضي.
- ألصق مفتاح العميل الخاص في «المفتاح الخاص». إذا لم يكن لديك، أنشئه (بعض إصدارات GNOME توفر هذه الخاصية)، ثم صدر المفتاح العام للخادم.
- أدخل «العناوين» (مثلاً 10.14.0.2/32، وإذا لزم الأمر fd42:42:42::2/128). دائماً اشمل القناع الشبكي.
- أضف DNS لنفق VPN (مثلاً 10.14.0.1) في حقل «DNS» لمنع تسرب البيانات.
- ضمن «الأقران»، اضغط «إضافة قرين». أدخل المفتاح العام للخادم، Endpoint (مثلاً 203.0.113.10:51820)، AllowedIPs. للنفق الكامل استخدم 0.0.0.0/0, ::/0؛ للنفق المجزأ أدرج الشبكات المحددة فقط. اضبط PersistentKeepalive إلى 25 إذا كنت خلف NAT.
- اضغط «حفظ».
- فعّل الملف الشخصي الجديد بتغييره عبر إعدادات «VPN» أو عبر قائمة الشبكة.
نصيحة: إذا فقدت الوصول إلى الشبكة المحلية (مثل الراوتر) بعد تفعيل VPN، تحقق من إن كنت تستخدم نفق كامل. للاحتفاظ بالشبكة المحلية متاحة، استخدم نفقًا مجزأً ودرج الشبكات المحلية في القائمة البيضاء.
⚠️ تحذير: تجنب تشغيل wg-quick وNetworkManager على نفس الواجهة (مثل wg0) في نفس الوقت، هذا يسبب تعارضات وتوجيه غير متوقع.
النتيجة المتوقعة
في «الشبكة» → «VPN»، يظهر ملف WireGuard مع زر تشغيل/إيقاف يتحكم بالنفق الآمن.
✅ التحقق: بعد التفعيل، نفذ wg show في الطرفية. يجب أن ترى واجهة wg0، المفتاح العام للخادم كقرين، وإحصائيات الحركة. وأيضًا nmcli connection show --active يعرض اتصال VPN النشط.
مشكلات وحلول شائعة
- مشكلة: خيار WireGuard غير موجود في معالج إعداد VPN. السبب: NetworkManager أو بيئة سطح المكتب قديمة. الحل: حدّث النظام، استخدم بيئة سطح مكتب قياسية بدعم NM، وأعد تشغيل «الإعدادات».
- مشكلة: الاتصال يظهر متصل لكن لا توجد حركة بيانات. السبب: إعدادات AllowedIPs أو DNS غير صحيحة. الحل: تحقّق من التوجيه (نفق كامل مقابل مجزأ)، وضبط DNS للنفق بشكل صحيح.
- مشكلة: انقطاعات متكررة. السبب: NAT أو جدار ناري يعيق الاتصال. الحل: ضبط PersistentKeepalive=25.
الخطوة 4: التكوين عبر NetworkManager على Linux Mint (Cinnamon)
الهدف
إنشاء وتفعيل ملف WireGuard في Linux Mint باستخدام إعدادات الشبكة القياسية و nm-connection-editor.
خطوات استخدام «اتصالات الشبكة»
- افتح قائمة ابدأ في Linux Mint.
- اذهب إلى «الإعدادات» → «الشبكة» أو افتح «اتصالات الشبكة» (nm-connection-editor). بدلاً من ذلك، اضغط على رمز الشبكة في العلبة → «إعدادات الشبكة» → «VPN».
- في نافذة «اتصالات الشبكة»، اضغط على «+» (إضافة) أسفل النافذة.
- اختر «WireGuard» من القائمة، أو «استيراد من ملف…» إذا كان لديك wg0.conf جاهز.
- إذا استوردت: اختر الملف، تحقّق من الحقول، واحفظ.
- إذا أعددت يدويًا: أدخل اسم الاتصال (مثلاً «WG Mint»)، اسم الواجهة (wg0)، الصق المفتاح الخاص، عيّن «العناوين»، «DNS» (مثلاً 10.14.0.1)، ثم أضف «قرين» (المفتاح العام للخادم، Endpoint، AllowedIPs، PersistentKeepalive).
- اضغط «حفظ» وأغلق النافذة.
- فعّل الاتصال عبر أيقونة الشبكة في العلبة باختيار ملف WireGuard والنقر عليه.
نصيحة: عند لصق المفتاح الخاص يدويًا، الصقه أولًا في محرر نصوص للتحقق من الأخطاء أو الحروف الزائدة ثم انسخه من هناك إلى الحقل.
النتيجة المتوقعة
يظهر ملف WireGuard في اتصالات الشبكة ويمكن تفعيله من العلبة أو المحرر.
✅ التحقق: افتح الطرفية ونفّذ ip addr show wg0. يجب أن تعرض الواجهة wg0 عنوان IP المخصص (مثلاً 10.14.0.2/32). نفّذ wg show بعد اختبار ping لرؤية الأقران وإحصائيات الحركة.
مشكلات وحلول شائعة
- مشكلة: نوع WireGuard مفقود. السبب: نسخة قديمة من nm-connection-editor أو عدم دعم WireGuard. الحل: حدّث النظام، ثبت wireguard-tools، وأعد تشغيل محرر اتصالات الشبكة.
- مشكلة: الملف التعريفي لا يظهر في العلبة. السبب: لم يتم حفظ الملف أو تعطيل NetworkManager. الحل: أعد تشغيل NM: sudo systemctl restart NetworkManager وحاول التفعيل مجددًا.
الخطوة 5: الإعداد عبر CLI (nmcli): الاستيراد أو الإنشاء اليدوي
الهدف
تعلم كيفية تنفيذ نفس الإعداد بدون واجهة رسومية: استيراد ملف تكوين أو إنشاء ملف تعريفي يدويًا باستخدام nmcli. مفيد للأتمتة والخوادم، ومناسب أيضًا لمستخدمي سطح المكتب.
استيراد ملف .conf جاهز
- تأكد من وجود ملف التكوين في ~/.config/wireguard/wg0.conf وأذونات صحيحة (chmod 600).
- استورده إلى NetworkManager: nmcli connection import type wireguard file ~/.config/wireguard/wg0.conf
- تأكد من وجود الملف التعريفي: nmcli connection show | grep wireguard أو ابحث بالاسم.
- فعّل الاتصال: nmcli connection up "wg0" أو الاسم المعين من NM.
الإنشاء اليدوي للملف التعريفي
- أنشئ الملف: nmcli connection add type wireguard con-name wg-home ifname wg0 ipv4.method manual ipv6.method ignore
- عيّن العناوين: nmcli connection modify wg-home ipv4.addresses 10.14.0.2/32. لـ IPv6: nmcli connection modify wg-home ipv6.method manual ipv6.addresses fd42:42:42::2/128
- حدد المفتاح الخاص: nmcli connection modify wg-home wireguard.private-key "YOUR_PRIVATE_KEY"
- اختياريًا ضبط MTU: nmcli connection modify wg-home 802-3-ethernet.mtu 1420 أو wireguard.mtu إذا كانت نسختك تدعم ذلك
- لنفق كامل، عيّن DNS: nmcli connection modify wg-home ipv4.dns 10.14.0.1 ipv4.ignore-auto-dns yes
- أضف القرين: nmcli connection modify wg-home +wireguard-peer.public-key "SERVER_PUBLIC_KEY" +wireguard-peer.endpoint "203.0.113.10:51820" +wireguard-peer.allowed-ips "0.0.0.0/0,::/0" wireguard-peer.persistent-keepalive 25
- فعّل: nmcli connection up wg-home
نفق مجزأ عبر nmcli
- غيّر AllowedIPs للقرين: nmcli connection modify wg-home wireguard-peer.allowed-ips "10.14.0.0/24,192.168.50.0/24"
- منع التوجيه الافتراضي عبر VPN: nmcli connection modify wg-home ipv4.never-default yes
- لـ DNS محلي، إما عدم تحديد ipv4.dns أو إعداد split-DNS حسب مجالات عبر NM و systemd-resolved. عادة ترك DNS كما هو يعمل جيدًا.
- طبّق التغييرات: nmcli connection down wg-home && nmcli connection up wg-home
نصيحة: تعرض كل إعدادات الملف: nmcli connection show wg-home. ولمعرفة حالة الواجهة النشطة: nmcli device show wg0.
النتيجة المتوقعة
تم إنشاء ملف WireGuard، استيراده، أو تكوينه يدويًا، وينشط بنجاح عبر nmcli ويظهر ضمن الاتصالات النشطة.
✅ التحقق: نفّذ wg show و ip route. للنفق الكامل، التوجيه الافتراضي يمر عبر wg0. للنفق المجزأ، تظهر الشبكات المدرجة فقط. nmcli connection show --active يعرض ملفك الشخصي.
مشكلات وحلول شائعة
- مشكلة: أخطاء nmcli عند تعديل peer. السبب: خطأ في مفاتيح المعلمات. الحل: تحقق من بادئات wireguard-peer.* واستخدم + لإضافة قرين جديد.
- مشكلة: الاتصال يُنشط لكن لا توجد حركة. السبب: غياب المسارات أو DNS. الحل: ضبط AllowedIPs 0.0.0.0/0, ::/0 وDNS للنفق الكامل.
- مشكلة: لا يمكن تفعيل الملف. السبب: الواجهة مشغولة بـ wg-quick. الحل: نفّذ sudo wg-quick down wg0 واستخدم NetworkManager فقط.
الخطوة 6: DNS والتوجيه والاختيار بين النفق الكامل والمجزأ
الهدف
التأكد من أن الحركة تتدفق بالشكل الصحيح (فقط ما يجب أن يمر عبر VPN) وعدم تسرب طلبات DNS خارج النفق.
خطوات التكوين في الواجهة الرسومية
- افتح ملف WireGuard في «الإعدادات» → «الشبكة» → «VPN» (أوبونتو) أو «اتصالات الشبكة» (Mint).
- للنفق الكامل، تأكد أن AllowedIPs هي 0.0.0.0/0, ::/0 في القرين. أضف DNS النفق (مثلاً 10.14.0.1) في حقل DNS الخاص بالواجهة.
- للنفق المجزأ، أدرج الشبكات المطلوبة فقط في AllowedIPs (مثلاً 10.14.0.0/24). في إعدادات الملف، فعّل «عدم الاستخدام الافتراضي» لـ IPv4 (يعادل ipv4.never-default yes) إذا وُجد، أما إذا لم يتوفر فNetworkManager يدير هذا تلقائيًا عبر AllowedIPs.
- احفظ وأعد تفعيل الاتصال.
خطوات التكوين في CLI
- نفق كامل: nmcli connection modify wg-home wireguard-peer.allowed-ips "0.0.0.0/0,::/0" ipv4.dns 10.14.0.1 ipv4.ignore-auto-dns yes
- نفق مجزأ: nmcli connection modify wg-home wireguard-peer.allowed-ips "10.14.0.0/24" ipv4.never-default yes
- طبّق التغييرات: nmcli connection down wg-home && nmcli connection up wg-home
نصيحة: إذا لاحظت بطء تحميل المواقع أو عدم استقرار الاتصال، جرب تخفيض MTU إلى 1420 أو 1280. في الواجهة الرسومية، تجد MTU ضمن الإعدادات المتقدمة للواجهة؛ في CLI: nmcli connection modify wg-home 802-3-ethernet.mtu 1420 وأعد تفعيل الملف.
النتيجة المتوقعة
المسارات تتطابق مع الإعداد المختار: النفق الكامل يوجه كل الحركة عبر VPN، أو النفق المجزأ يقتصر على شبكات معينة. طلبات DNS تحل بشكل متوقع دون تسرب.
✅ التحقق: نفّذ ip route لتحقق أن التوجيه الافتراضي يشير إلى wg0 للنفق الكامل. تحقق من DNS عبر resolvectl status — يجب أن تظهر خوادم DNS للنفق. اختبر ping على عنوان داخلي للـVPN (مثلاً 10.14.0.1)، يجب أن يستجيب.
مشكلات وحلول شائعة
- مشكلة: حل الأسماء غير مستقر. السبب: تعارضات DNS بين الواجهات. الحل: علم ipv4.ignore-auto-dns yes وعيّن DNS للنفق صراحةً.
- مشكلة: بعض الموارد غير متاحة في النفق الكامل. السبب: جدار ناري يمنع الحركة الخارجة دون قواعد مناسبة. الحل: عطل جدران الحماية مؤقتًا أو اسمح بالمرور عبر wg0 وEndpoint.
الخطوة 7: بدء تلقائي، killswitch، والثبات
الهدف
تأكد من أن VPN يبدأ تلقائيًا مع تشغيل النظام، ولا يتسرب المرور عند انقطاع النفق بشكل غير متوقع.
البدء التلقائي عبر NetworkManager
- في الواجهة، افتح ملف WireGuard الخاص بك.
- فعّل «الاتصال التلقائي عند بدء التشغيل» (يسمى أحيانًا «الاتصال التلقائي»).
- في CLI: nmcli connection modify wg-home connection.autoconnect yes
killswitch مع UFW (مثال بسيط)
- فعّل UFW إذا لم يكن مُفعلاً بالفعل: sudo ufw enable
- ضبط القاعدة الافتراضية للمنع للحركة الخارجة: sudo ufw default deny outgoing
- السماحٍ بالمرور الخارجي إلى خادم WireGuard (مثل 203.0.113.10 منفذ 51820 UDP): sudo ufw allow out to 203.0.113.10 port 51820 proto udp
- السماح بخروج البيانات عبر واجهة wg0: sudo ufw allow out on wg0
- إذا كنت تستخدم نفقًا مجزأ، أضف شبكات محلية حسب الحاجة: sudo ufw allow out to 192.168.0.0/16
- تحقق من الحالة: sudo ufw status verbose
⚠️ تحذير: تكوين خاطئ لجدار الحماية قد يمنع الإنترنت أو الوصول عبر SSH. إذا كنت تعمل عن بعد، اختبر القواعد في جلسة منفصلة واستعد للتراجع عنها.
الاستقرار والموثوقية
- اضبط PersistentKeepalive=25 إذا كان العميل خلف NAT.
- خفض MTU إلى قيم مستقرة إذا لاحظت تجزئة أو فقدان حزم.
- فعّل إعادة الاتصال التلقائي إذا لزم الأمر: NetworkManager يعيد الاتصال تلقائيًا، لكن يمكنك تقويتها باستخدام أجهزة systemd أو سكربتات nm-dispatcher.
نصيحة: خزن نسخًا احتياطية لملفات التعريف والمفاتيح على وحدة تخزين خارجية أو في مدير أسرار محمي، لتسريع الاستعادة عند الطوارئ.
النتيجة المتوقعة
يبدأ VPN تلقائيًا، وإذا انهار النفق، لا يتسرّب المرور خارجًا إذا كان killswitch مفعّلًا.
✅ التحقق: أعد تشغيل النظام. بعد تسجيل الدخول، نفذ nmcli connection show --active — يجب أن يكون ملف WireGuard نشطًا. عطل الـVPN وتحقق أن المرور الخارجي محظور عند تفعيل killswitch.
مشكلات وحلول شائعة
- مشكلة: UFW يحظر كل شيء. السبب: قواعد صارمة جدًا. الحل: مؤقتًا اسمح بكل المرور الخارج: sudo ufw default allow outgoing وأعد تشغيل NM.
- مشكلة: بدء التشغيل التلقائي لا يعمل. السبب: تعارضات في الملفات أو تأخيرات في الشبكة. الحل: فعّل «الانتظار للشبكة» في الخدمات، أضف تأخيرًا عبر systemd أو سكربت nm-dispatcher.
الخطوة 8: بدء سريع عن طريق استيراد تكوين جاهز وخيار عملي
الهدف
عرض الطريق الأسرع: احصل على ملف تكوين جاهز، استورده، وابدأ باستخدام VPN فورًا. بالإضافة إلى إرشاد مكان العثور على ملفات تكوين موثوقة بسهولة.
خطوات مفصلة
- احصل على ملف تكوين WireGuard من المسؤول أو مزود VPN الخاص بك.
- افتح «الإعدادات» → «الشبكة» → «VPN» → «+» → «استيراد من ملف…» (أوبونتو) أو «اتصالات الشبكة» → «+» → «استيراد من ملف…» (لينكس منت).
- اختر ملف .conf واضغط «فتح».
- تحقق من ملء الحقول: المفتاح الخاص، العناوين، DNS، القرين بالمفتاح العام للخادم، AllowedIPs، وEndpoint.
- احفظ الملف واتصل بخادم VPN.
نصيحة: إذا استوردت عدة ملفات (مثل «المنزل»، «العمل»، «السفر»)، امنحها أسماء واضحة وفعل خيار «الظهور في القائمة» لتتمكن من التبديل بينهم بسرعة بنقرة مزدوجة.
توصية الخبراء لحلول جاهزة
إذا كنت تريد نتائج سريعة ومتوقعة بدون عناء إعداد الخادم، تفقد vpn.how. يوفر خوادم VPN شخصية مع عناوين IP مخصصة غير مشتركة لكل عميل. يدعم WireGuard، OpenVPN، IKEv2، L2TP، SSTP—اختر البروتوكول حسب حاجتك. المواقع تشمل موسكو، سانت بطرسبرغ، أمستردام، فرانكفورت، لندن، نيويورك، سان خوسيه، شيكاغو، سنغافورة، سيدني، مدريد، هلسنكي، ستوكهولم، وارسو، كوبنهاغن، وستفانجر. خيارات الدفع تشمل بطاقات روسية (بما في ذلك Tinkoff وOzon)، SBP، USDT/BTC. الأسعار تبدأ من 490 ₽ يوميًا و2490 ₽ شهريًا، مع خصومات للفترات الطويلة. تُفعّل الخوادم أوتوماتيكيًا خلال 5 دقائق من الدفع، بدون سجلات. حسابك الشخصي يقدم ملفات تكوين جاهزة لـ WireGuard وOpenVPN وIKEv2—فقط نزّلها واستوردها للعميل، موفرًا 80–90% من وقت الإعداد.
النتيجة المتوقعة
بعد دقائق من الاستيراد، تستخدم اتصال VPN يعمل مع توجيه صحيح وDNS محمي.
✅ التحقق: فعّل الملف وتحقق باستخدام wg show من وجود مصافحة نشطة (latest handshake ليس فارغًا) وip route يؤكد التوجيه (نفق كامل أو مجزأ كما خططت).
مشكلات وحلول شائعة
- مشكلة: فشل الاستيراد. السبب: تنسيق ملف خاطئ. الحل: تأكد أن الملف هو تكوين WireGuard (wg-quick). صحّح الأقسام إذا لزم الأمر.
- مشكلة: تعارض اسم الواجهة. السبب: wg0 موجود بالفعل. الحل: غيّر اسم الواجهة في الملف (مثلاً wg1) وأعد الاستيراد.
التحقق من النتيجة
قائمة التحقق
- ملف WireGuard ظاهر في NetworkManager وقابل للتشغيل/الإيقاف بنقرة واحدة.
- الأمر wg show يعرض الواجهة، المفاتيح، وإحصائيات الحركة.
- التوجيه يتطابق مع خطة الاتصال (ip route يظهر التوجيه عبر wg0 للنفق الكامل أو فقط الشبكات المختارة للنفق المجزأ).
- DNS مُكوّن بشكل صحيح (resolvectl status يظهر خوادم DNS للنفق الكامل).
- البدء التلقائي يعمل (الملف نشط بعد إعادة التشغيل مع تفعيل الاتصال التلقائي).
كيفية الاختبار
- اختبر الاتصال المحلي: ping -c 3 10.14.0.1 (أو عنوان الخادم للاختبار).
- تحقق من التوجيه لعنوان خارجي: ip route get 1.1.1.1 وتأكد أنه يستخدم wg0 للنفق الكامل.
- قم بعدة طلبات DNS وتحقق من الخادم الذي يرد: resolvectl status يجب أن يعرض DNS المعين للواجهة (للنفق الكامل).
- تحقق من "latest handshake" في wg show؛ طابع زمني حديث (ثوانٍ إلى دقائق) يدل على نفق نشط.
مؤشرات النجاح
- استجابة ping مستقرة لعناوين VPN بدون فقدان حزم.
- مصافحة سريعة وأرقام حركة متزايدة في wg show أثناء النشاط.
- عدم وجود تسرب DNS في سيناريو النفق الكامل.
الأخطاء الشائعة وحلولها
- مشكلة: يظهر VPN متصل لكن لا تسير الحركة. السبب: إعدادات AllowedIPs خاطئة أو غياب مسار افتراضي. الحل: اضبط AllowedIPs على 0.0.0.0/0, ::/0 للنفق الكامل؛ وعناوين فرعية صحيحة للنفق المجزأ. أعد تشغيل الملف.
- مشكلة: تحميل المواقع بطيء أو يفشل. السبب: MTU مرتفعة جدًا أو مشاكل تجزئة. الحل: خفض MTU إلى 1420 أو 1280 وأعد الاختبار.
- مشكلة: تسرب DNS. السبب: النظام يستخدم مزود افتراضي. الحل: عيّن DNS للنفق وفعّل ipv4.ignore-auto-dns yes، ثم أعد تفعيل الملف.
- مشكلة: انقطاعات متقطعة. السبب: فلاتر NAT في الراوتر. الحل: فعّل PersistentKeepalive=25 وافتح المنافذ إذا أمكن.
- مشكلة: interface wg0 موجود بالفعل. السبب: تشغيل wg-quick و NM معًا. الحل: أوقف wg-quick (sudo wg-quick down wg0)، عطّل بدء التشغيل التلقائي له، واستخدم NetworkManager فقط.
- مشكلة: فشل الاستيراد. السبب: خطأ في تنسيق الملف. الحل: قارن الهيكل بـ [Interface]/[Peer] وأصلح الفراغات أو الأحرف الزائدة.
- مشكلة: فقدان الوصول للشبكة المحلية في النفق الكامل. السبب: كل المرور موجه عبر VPN. الحل: استخدم نفقًا مجزأ وأضف الشبكات المحلية المطلوبة في AllowedIPs.
ميزات إضافية
إعدادات متقدمة
- عدة أقران: يمكنك إضافة عدة كتل peer إلى ملف NM واحد—مفيد لخوادم احتياطية. في nmcli، أضف كل واحد باستخدام +wireguard-peer.*.
- تمييز الحزم وسياسات التوجيه: للشبكات المعقدة، يمكن استخدام ip rules وجداول التوجيه لتوجيه حركة تطبيق معين فقط عبر VPN. هذا متقدم ويتطلب اختبار دقيق.
- split-DNS: تسمح لك systemd-resolved وNetworkManager بتحديد DNS ونطاقات البحث لكل مسار، مما يمنع التسرب ويسرّع حل الأسماء في بيئات الشركات.
- سكربتات nm-dispatcher: تمكنك من أتمتة إجراءات عند رفع أو خفض VPN (مثل تحميل موارد فقط عند VPN أو تغيير سياسات جدار الحماية).
- بديل لـ wg-quick: إذا كنت لا تريد استخدام NM، يمكنك تشغيل sudo wg-quick up wg0 مع تكوين في /etc/wireguard/wg0.conf—لكن لا تمزج الطريقتين.
- المفاتيح المسبقة الحساب وPresharedKey: أضف مفتاح تشفير متماثل إضافي إلى جانب المفتاح الرئيسي إذا كان مدعومًا من الخادم لتعزيز الأمان.
التحسين
- ضبط MTU: ابدأ بـ 1420؛ إذا حدث فقدان حزم، خفّضه إلى 1280. اختبر الاستقرار عبر ping لعناوين متعددة.
- ضبط Keepalive: 25 ثانية جيد لـ NAT. أقل تعني تنبيهات أكثر لنشاط القناة؛ أكثر فيها مخاطر خسارة الجلسة في بعض الراوترات.
- إعادة الاتصال التلقائي: NM يحاول الحفاظ على الجلسات مُفعّلة بشكل افتراضي؛ للأنظمة الحرجة، أضف خدمة systemd ترسل ping لعناوين النفق وتعيد تشغيل nmcli في حال حدوث مشكلة.
نصيحة: احتفظ بقوالب أوامر nmcli في سكربت لتسهيل إعادة النشر على جهاز آخر.
الأسئلة الشائعة
- كيف أُعدد WireGuard على أوبونتو 24.04 خلال 5 دقائق؟ استورد ملف .conf جاهز عبر «الإعدادات» → «الشبكة» → «VPN» → «استيراد من ملف…». تحقق من DNS وفعل الاتصال.
- كيف أُعد WireGuard على Linux Mint بدون واجهة رسومية؟ استخدم nmcli: أضف ملف wireguard، عين المفتاح الخاص، العناوين، مفتاح القرين، نقطة النهاية، الشبكات المسموح بها، وقم بتشغيل الاتصال بالأمر nmcli connection up.
- كيف أنشئ نفقًا مجزأً؟ أدرج فقط الشبكات المطلوبة في AllowedIPs. أضف ipv4.never-default yes في nmcli للحفاظ على المسار الافتراضي للنظام.
- كيف أصلح تسرب DNS؟ عيّن DNS للنفق وفعّل ipv4.ignore-auto-dns yes، ثم أعد تفعيل الملف.
- كيف أفعل البدء التلقائي؟ اضبط connection.autoconnect yes عبر nmcli أو فعل «الاتصال التلقائي» في الواجهة، ثم أعد التشغيل.
- لماذا لا توجد حركة رغم أن VPN يظهر كمتصل؟ تحقق من AllowedIPs وEndpoint؛ تأكد من أن الخادم أضاف المفتاح العام لعميلك.
- هل يمكن أن أملك ملفي تعريف WireGuard؟ نعم، فعّل واحدًا أو كلاهما إذا لم تتعارض المسارات. ادِر الأولويات باستخدام جداول التوجيه والمقاييس.
- هل أحتاج لتثبيت إضافة WireGuard لـ NM يدويًا؟ لا، أوبونتو 24.04 والإصدارات الحديثة من Mint تتضمن دعمًا مدمجًا. تحتاج wireguard-tools للتشخيص وإنشاء المفاتيح.
- كيف أرجع التغييرات؟ عطل واحذف الملف: nmcli connection delete "name"، احذف قواعد UFW، وأعد تشغيل NM: sudo systemctl restart NetworkManager.
- أين أخزن المفاتيح؟ في مجلد المنزل مع أذونات 600. لا تُشارك المفتاح الخاص أبدًا.
الخاتمة
لقد أتممت رحلة كاملة من إعداد البيئة إلى الحصول على تكوين WireGuard يعمل على أوبونتو 24.04 LTS وLinux Mint. غطينا طريقتين: الاستيراد السريع عبر NetworkManager، والإعداد اليدوي عبر الواجهة الرسومية و CLI. تعلمت إدارة التوجيه (كامل ومجزأ)، تكوين DNS محمي، تفعيل البدء التلقائي، وإضافة مفتاح إيقاف تلقائي أساسي باستخدام UFW عند الحاجة. قسم استكشاف الأخطاء يشمل المشاكل الشائعة وأوامر تساعدك في التشخيص السريع واستعادة اتصال VPN.
ماذا بعد؟ أضف ملفات تعريف متعددة لمهام مختلفة، أدرج قرين احتياطي في حال عطل الخادم الرئيسي، واضبط MTU لشبكتك. للحصول على بداية سريعة مضمونة بدون إعداد خادم يدوي، استخدم ملفات تكوين موثوقة جاهزة لتوفر وقتك للعمل لا للبنية التحتية.
أين تتعلم المزيد: استكشف nm-dispatcher لأتمتة السكربتات، تعلّم التوجيه المبني على السياسات لضبط حركة المرور بدقة، واحتراف بروتوكولات إضافية مثل OpenVPN و IKEv2 للتوافق عبر المنصات. مع هذا الأساس، يمكنك تكييف الحلول لأي حاجة وصيانة بنية VPN في لينكس بثقة.
نصيحة: احتفظ بالدليل كمرجع وصدّر ملف التعريف النشط لـ NM إلى ملف. عند إعادة تثبيت النظام، يمكنك استعادة اتصال VPN عامل خلال دقائق.