يفشل التشغيل الأول مع رسالة عن /dev/net/tun أو جهاز TUN/TAP لا يمكن فتحه. لم تُقرأ الشهادات بعد، لذا لا شيء في الملف الشخصي موضع اتهام. الخادم الخفي يطلب من النواة كائنًا لا يملكه هذا الضيف.

ذلك الكائن هو جهاز حرفي مدعوم بوحدة tun. قدرتك على إنشائه تعتمد على من يملك النواة.

ما يطلبه الخادم الخفي من النواة

OpenVPN يفتح /dev/net/tun ويطلب من المشغّل واجهة. المشغّل هو وحدة tun، وعقدة الجهاز هي المقبض الذي يستخدمه فضاء المستخدم للوصول إليه. إذا لم تكن الوحدة محمّلة، فقد تكون العقدة غائبة أو قد يفشل الفتح. لا يُصلح أي من الحالين بتحرير server.conf.

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

آلة افتراضية أو ضيف بنواة مشتركة

على KVM أو Xen أو آلة افتراضية كاملة أخرى تتحكم أنت بالنواة. يمكنك تحميل الوحدات وإنشاء العقدة. على OpenVZ أو Virtuozzo أو حاوية على نمط LXC يتشارك الضيف نواة المضيف، لذا لا يستطيع root داخلها تحميل وحدة لم يحمّلها المضيف.

لذلك للفشل نفسه مالكَان مختلفان جدًا. في الحالة الأولى يمكنك إصلاحه من داخل المثيل. في الحالة الثانية أنت تطلب من المضيف، أو من المزوّد، كشف شيء ما.

شغّل ls -l /dev/net/tun، ثم lsmod | grep tun، ثم ip -brief link show قبل أن تقرر في أي حالة أنت.

على آلة افتراضية، حمّل الوحدة عند الإقلاع

على آلة افتراضية، يُنشئ modprobe tun عادة عقدة الجهاز. تحقق من ظهورها، ثم اجعل التحميل دائمًا عبر إعداد الوحدات في التوزيعة بدلًا من الاعتماد على أمر كُتب مرة واحدة. العقدة التي تختفي بعد إعادة التشغيل تصبح التذكرة نفسها الشهر القادم.

تحقق أيضًا من أن النواة التي أقلعت عليها تتوفر على الوحدة أصلًا. نواة مزوّد منزوعة المزايا قد تفتقر إليها.

إذا وُجدت العقدة لكن الفتح ما زال يفشل، فالأذونات وأرقام major/minor للجهاز هما المشتبه بهما التاليان. تلك إصلاحات محلية، وليست طلبات إلى المزوّد.

في حاوية، المضيف يملك الجهاز

في حاوية، الجهاز والقدرة متطلبان منفصلان. يجب أن يمرّر وقت التشغيل /dev/net/tun، وتحتاج الحاوية إلى قدرة الشبكة لإنشاء واجهة. وقت تشغيل بلا root لا يمنح أيًا منهما سيظل ينتج خطأ الفتح نفسه مهما كُتب الملف الشخصي. كثير من مضيفي OpenVZ يعرضون مفتاح TUN/TAP في لوحة العميل، وتفعيله مع إعادة تشغيل غالبًا هو الحل كله.

اسأل المزوّد سؤالين دقيقين: هل وحدة tun محمّلة على المضيف، وهل الجهاز متاح داخل هذا المثيل؟ التذكرة الغامضة تحصل على جواب غامض.

لماذا نادرًا ما يساعد إعادة بناء الوحدة

بناء وحدة داخل الضيف نادرًا ما يساعد. الترجمة تحتاج إعداد النواة العاملة بالضبط، كما أن /proc/config.gz اختياري وغالبًا غائب في الصور الأدنى. حتى الوحدة العاملة لا يمكن إدخالها في نواة لا تملكها الحاوية.

بعد ظهور الجهاز، أعد تشغيل الخدمة وأكّد الواجهة قبل اختبار حركة المرور. رؤية tun0 تُظهر أن الخادم الخفي فتح الجهاز. لا تقول شيئًا بعد عن التوجيه أو قواعد جدار الحماية أو المسارات التي يستقبلها العملاء.

تلك أسئلة منفصلة بأدلة منفصلة. الجهاز الغائب هو فشل في المتطلب المسبق؛ والنفق الموجود الذي لا يحمل شيئًا هو فشل سياسي.

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