ملف OpenVPN في Windows يفشل على Ubuntu: ثلاث طبقات
السطر المدفوع الخاص بنظام Windows ليس سوى تحذير. الملف نفسه يفشل من الطرفية أولاً بسبب الصلاحيات، ثم بسبب مساعد محلل أسماء مفقود.
ابدأ الملف نفسه من الطرفية، وستجد أن الرسالة التي ينسخها معظم الناس تحذير لا سبب توقف العميل. تفشل هنا ثلاث طبقات مستقلة: توجيه مدفوع لا تنفذه نسخة لينكس، والصلاحيات اللازمة لإنشاء جهاز tun، ومساعد محلل الأسماء الذي يحوّل الاتصال إلى DNS عامل. عالجها بالترتيب، لأن كل طبقة قد تخفي التي تليها.
احتفظ بالتنزيل كما وصل وعدّل نسخة منه، حتى لا يتراجع تنزيل جديد عن تغييراتك بصمت.
اقرأ التحذير قبل أن تلومه
block-outside-dns يقفل DNS على Windows عبر منصة تصفية Windows، ولا يملك عميل لينكس ما يربطه به. عندما يدفعه الخادم، يطبع العميل سطر خيار غير معروف لذلك الإدخال المدفوع ويواصل، لأن الخيار المدفوع لا يُعد قاتلاً. أما السطر المطابق في ملفك الخاص فمسألة أخرى: هناك يتوقف المحلل. حدّد أي الاثنين لديك قبل أن تلمس شيئاً، لأن واحداً فقط منهما ينهي التشغيل.
لإزالة الضجيج، رشّحه قبل التحليل: إدخال pull-filter ignore لذلك الاسم، أو --ignore-unknown-option عندما يكون السطر في الملف المحلي. كلاهما يُسكت سطراً قرأته بالفعل؛ ولا واحد منهما يصلح عطلاً لم تشخّصه.
الصلاحيات تفشل قبل أي شيء آخر
جهاز tun والمسارات المرافقة له كائنات ذات صلاحيات، ولا يستطيع حساب عادي إنشاءها. يفسّر خيار --user هذا الانفصال: لا يتخلى الخفي عن صلاحياته إلا بعد إنجاز العمل المميز. شغّله بصفة root، أو عبر وحدة تبدأه بهذه الصفة، ثم ابحث عن خطأ إذن قبل أن تنظر في الشهادات. تخفيف أذونات الملف على الملف الشخصي لا يمنح العملية الحقوق التي تنقصها.
خطأ TLS يعني أن العميل تجاوز هذه الطبقة. أما الشكوى من جهاز أو مسار فتعني أنه لم يصل إلى الطبقة الأعلى أبداً.
ما تفعله الواجهة الرسومية ولا تفعله الطرفية
الاتصال بنجاح بينما يفشل كل استعلام هو الطبقة الثالثة. يقوم NetworkManager بعمل محلل الأسماء بنفسه، ولهذا قد يوزّع استيراد سطح المكتب DNS حتى عندما لا يكون سكربت up الخاص بالملف قد نجح قط. الأمر openvpn --config ينفّذ ما يسميه --up، وإذا غاب ذلك المساعد تظهر الواجهة بينما تظل الاستعلامات تذهب إلى الخوادم السابقة. قارن سكربتات المسارين قبل تثبيت أي شيء.
استخدم المساعد المعبأ لتوزيعك؛ فالسكربت المنسوخ من تدوينة يستهدف عادة محلل أسماء آخر. التكامل المشحون من أجل systemd-resolved ليس السكربت العام بأسلوب vpnc، وكل منهما يتوقع وسائطه ومتغيراته الخاصة من العميل. كما تتطلب سكربتات up المعرّفة من المستخدم script-security 2 قبل أن ينفذها العميل أصلاً.
افصل الطبقات في التشغيل التالي
شغّله مرة واحدة مع --verb 4 واقرأ السجل بالترتيب الذي حدث به: إنشاء الجهاز، ثم المسارات، ثم مصافحة TLS، ثم خرج سكربت up. أول فشل في ذلك التسلسل هو الذي يستحق الإصلاح؛ وكل ما بعده غالباً نتيجة. النفق الذي يقوم بينما لا يقوم محلل الأسماء يضعك في الطبقة الثالثة، حيث الشهادة لا أهمية لها. اترك الملف المنزّل دون مساس أثناء المقارنة.
بمجرد أن ينتج كل تعديل من المشغّل سطراً مرفوضاً آخر، يكون الملف موجهاً إلى منصة أخرى. اطلب تصديراً للينكس بدلاً من بناء قائمة تصفية دائمة.
سجّل أي طبقة فشلت وما غيّرها، وإلا فإن الشخص التالي الذي يُسلّم الملف نفسه سيتوقف عند التحذير أيضاً.