يفشل WireGuard في إنشاء واجهته، فلا يوجد جهاز لتهيئته، ولا مفتاح لتبادله، ولا مصافحة لتنقيحها. يقع الفشل بالكامل على الجهاز المحلي، وتذكر رسالة الخطأ أي جزء من الحزمة المحلية رفض الطلب. قراءة الرسالة بشكل صحيح أسرع من إعادة تثبيت إعدادات القرين. الطبقات قابلة للفصل، والرسالة تسمي الطبقة التي رفضت.

يحدث الخطأ قبل أن يتكلم أي قرين

إنشاء واجهة هو طلب netlink واحد إلى النواة يطلب جهازًا من النوع wireguard. إما أن تكون لدى النواة وحدة تشغيل تفهم ذلك النوع أو لا تكون، والجواب يعود فورًا. لا تغادر أي حزم الجهاز خلال هذه الخطوة، ولهذا لا يمكن أن تكون عناوين النقاط الطرفية ومفاتيح الخادم هي السبب.

هذا الترتيب مهم في التشخيص. إذا لم ينشئ الأمر جهازًا قط، فلا يمكن أن تكون المشكلة مفتاحًا عامًا خاطئًا أو منفذ UDP محجوبًا. أصلح مسار الإنشاء المحلي أولًا، وبعد ذلك فقط انظر إلى الخارج.

أي تنفيذ هو المسؤول عن امتلاك الجهاز

يمكن لتنفيذين أن يجيبا ذلك الطلب. تسجّل الوحدة داخل النواة نوع الجهاز wireguard، ويوفر تنفيذ في مساحة المستخدم مثل wireguard-go الواجهة نفسها عبر آلية مختلفة. إذا كانت الوحدة غائبة، ترفض النواة الطلب بخطأ جهاز غير مدعوم، والحل إما تحميل الوحدة أو توجيه الأدوات إلى تنفيذ مساحة المستخدم.

تحقق مما هو موجود فعليًا قبل الاختيار بينهما. يعرض الأمر الأول ما إذا كانت الوحدة محمّلة، ويسأل الثاني النواة مباشرة:

lsmod | grep wireguard
ip link add wgtest0 type wireguard

الأمر الثاني هو أصغر إعادة إنتاج ممكنة: يطلب جهازًا ولا شيء غير ذلك. إذا فشل برسالة نوع غير مدعوم، فالقطعة الناقصة هي التنفيذ لا ملف إعداداتك.

Error textWhat refusedNext step
Unknown device type or operation not supportedThe kernel has no wireguard driverLoad the module or use the userspace implementation
Operation not permittedMissing privilegeUse the service context or grant the capability
File existsThe name is already in useInspect the owner before touching it
No such device in a containerNo tunnel device or capabilityAdd the device and NET_ADMIN to the container

الصلاحيات وحدود الحاوية

يتطلب إنشاء جهاز شبكة وتهيئته صلاحية، سواء كـ root أو بقدرة إدارة الشبكة. جلسة مستخدم عادية لا تستطيع ذلك، وهذا القيد هو التصميم لا عقبة تُلتف بتحميل مثبّت لم تراجعه.

داخل الحاوية يتضاعف الحد. تحتاج الحاوية إلى الوصول إلى جهاز النفق وإلى القدرة على تهيئته، والأعلام التي تمنح ذلك هي نفسها التي تستخدمها حاوية VPN على Linux. الضيف المقيّد الذي يستطيع تصفح الويب عادة لا يزال غير قادر على إنشاء واجهة، لأن التصفح لا يحتاج إلى هذه القدرة. امنح القدرة للخدمة التي تحتاجها لا لكل جلسة على المضيف.

حل تعارض الاسم ثم أعد المحاولة

الواجهة الموجودة ليست تلقائيًا من بقايا. قد يملك مدير آخر الاسم ويستخدمه الآن، لذا افحصه قبل حذف أي شيء:

ip link show wg0
sudo wg show wg0

إذا كان المالك خدمة نشطة، فاهيئ تلك الخدمة بدل إنشاء جهاز ثانٍ. وإذا كان قديمًا فعلًا، فأزله عبر الأداة التي أنشأته، ثم ارفع الواجهة بالعميل أو الوحدة الموثقة حتى يبقى الإعداد والجهاز متوافقين.

بعد نجاح الإنشاء، ينتمي الفشل التالي إلى مرحلة لاحقة، ووحدة تبلّغ عن فشل بعد وجود الجهاز مشكلة مختلفة عن جهاز لم يُنشأ قط. افصل بينهما قبل تغيير الصلاحيات مرة أخرى.

مقالات ذات صلة