NetworkManager مقابل wg-quick: من يملك مسارات WireGuard لديك؟
يمكن لمديرين اثنين أن يدّعيا وصلة WireGuard نفسها، وقد لا يكون الإعداد الذي عدّلته هو الساري. اعرف المالك من المسارات والقواعد وحالة الواجهة.
تغيّر AllowedIPs في ملف WireGuard، ثم تعيد تشغيل النفق، فتجد جدول التوجيه كما كان تمامًا. ردّ الفعل المعتاد هو حذف المسار المزعج والمضي قدمًا، وهذا ينجح إلى أن تعيد الوصلة التالية إعادته. الملف الذي عدّلته ليس بالضرورة الكائن الذي أنتج الحالة التي تنظر إليها. يمكن لمديرين تشغيل البروتوكول نفسه على جهاز واحد، وواحد فقط منهما يملك الواجهة في أي لحظة.
خرافة: يوجد إعداد WireGuard واحد على الجهاز
يقرأ wg-quick ملفًا ضمن /etc/wireguard/ ويبني الواجهة عند رفعه. يخزّن NetworkManager ملف اتصال بتنسيق keyfile خاص به ويُظهره عند التنشيط، و استيراد ملف wg-quick ينسخ القيم إلى ذلك الملف بدلًا من الربط به. تعديل الأصل بعد ذلك لا يغيّر شيئًا، لأن الملف لم يعد يقرأه. لذلك يمكن أن توجد القائمة نفسها من الأقران والمفاتيح مرتين، مع سريان النسخة الثانية.
علامة تستحق التذكّر: التعديلات التي تصمد أمام إعادة التشغيل ولا تصمد أمام إعادة الاستيراد جاءت من مخزن، والتعديلات التي تزول عند إعادة التشغيل جاءت من الآخر.
مثال عملي واحد يجعل الانقسام واضحًا. قارن nmcli connection show بـ systemctl status wg-quick@wg0، ثم تحقّق من الواجهة التي تتعلّق بها المسارات فعلًا. إذا كانت الخدمة متوقفة والواجهة قائمة، فالملف الشخصي هو من يقوم بالعمل، مهما قال الملف.
خرافة: قواعد التوجيه جزء من WireGuard
جهاز WireGuard في النواة يعرف الأقران والمفاتيح، ولا يعرف شيئًا عن التوجيه بالسياسة. أي ip rule مدخلات وجداول إضافية تراها فقد ثبّتها الأداة التي رفعت الواجهة. يمكن لـ wg-quick إضافة fwmark وجدول مخصص وقواعد تشير إليه، بينما يثبّت NetworkManager المسارات عبر إعدادات ipv4 الخاصة به ويترك DNS لواجهة الخادم التي يستخدمها النظام. النفق نفسه، آثار جانبية مختلفة.
اقرأ ip rule و ip route show table all قبل تغيير أي شيء، ولاحظ الجدول الذي يقيم فيه كل مسار. رقم جدول لم تضبطه بنفسك تلميح قوي على الأداة التي أنشأته.
خرافة: حذف المسار إصلاح
المسار المحذوف أثناء التشغيل هو مسار سيعيد المالك تثبيته عند التنشيط التالي، وقد يحدث التنشيط دونك: استئناف حاسوب محمول، أو تقلّب وصلة، أو إعادة تشغيل خدمة، أو اتصال تلقائي من NetworkManager. لهذا يعود المسار نفسه، ولهذا يبدو الحل المؤقت غير موثوق بدلًا من أن يبدو خاطئًا. حدّد المدير أولًا، ثم غيّر المُدخل الذي يقرأه ذلك المدير فعلًا.
إعادة الاتصال وإعادة تشغيل الخدمة المعنية هي الاختبار الذي يفصل الإصلاح الحقيقي عن الإصلاح المرتّب المظهر.
اختر مالكًا واحدًا وأزل الآخر
اختر المدير الذي يدعمه نشرك، ثم عطّل التنشيط المنافس عبر أداته الموثّقة بدلًا من أن تأمل أن يبقى خاملًا. خدمة wg-quick المقنّعة أو ملف NetworkManager المحذوف أمر صريح؛ أما إبقاء الاثنين مفعّلين والسماح لهما بالتسابق فليس كذلك. احفظ الوصول العامل قبل تعطيل أي شيء، لأن الواجهة التي تحمل جلستك البعيدة قد تكون هي التي أنت على وشك إزالتها.
بعد التغيير، تحقّق من الحركة المشمولة والمستثناة، ثم من DNS، ثم أعد التشغيل مرة واحدة. إذا صمدت الحالة بعد إعادة التشغيل مع مدير واحد، فلديك مالك بدلًا من مصادفة.
القاعدة العامة تستحق الاحتفاظ بها خارج WireGuard: عندما يعود إعداد ما مرارًا، توقّف عن حذف النتيجة وابحث عن العملية التي تستمر في إنتاجها.