OpenVPN Connect مقابل OpenVPN GUI: أين يحتفظ Windows بملفات التعريف
عميلان على Windows ونموذجان لملفات التعريف: يعرض GUI ملفات .ovpn من مجلد، ويحتفظ Connect بمخزن استيراد. ثم احذف أو استورد بالطريقة الصحيحة.
على Windows، للسؤال "أين ملف OpenVPN الشخصي الخاص بي" إجابتان مختلفتان، واختيار الإجابة الخاطئة يكلّفك بعد ظهر كامل. يعامل OpenVPN GUI من المجتمع المجلد كقائمة ملفات تعريف: كل ملف .ovpn في المجلد المُهيّأ يظهر في قائمة شريط النظام، والملف الذي يُحذف من ذلك المجلد يختفي. يعمل OpenVPN Connect من مخزن استيراد، لذا يحتفظ بملف تعريف حذفته من القرص ويتجاهل ملفًا نسخته إليه. المقارنة أدناه هي التي أستخدمها لتحديد أي مجلد أفتح قبل أن ألمس أي شيء.
قائمة مجلد مقابل مخزن استيراد
يُعدّد GUI من المجتمع الملفات عند بدء التشغيل: يقرأ مجلد تهيئة واحدًا اختير عند التثبيت، وأي ملف .ovpn موجود هناك هو ملف تعريف. أغلق العميل، وانسخ ملفًا إلى ذلك المجلد، ثم شغّله مرة أخرى، فيظهر الإدخال في القائمة.
أما Connect فيبني قائمته من سجلات كتبها أثناء الاستيراد، لذا يكون الملف المنسوخ غير مرئي بينما يبقى ملف التعريف المستورد بعد حذف التنزيل الأصلي. هذا الفرق الوحيد يفسّر معظم التقارير التي تقول إن العميلين يخزنان ملفات التعريف في مكان مختلف، لأنهما يفعلان ذلك فعلًا.
GUI من المجتمع: أي مجلد هو المستخدم فعليًا
هناك مجلدان مهمان. التثبيت لكل مستخدم يقرأ %USERPROFILE%\OpenVPN\config؛ والتثبيت لكل المستخدمين يقرأ C:\Program Files\OpenVPN\config، أو مسار x86 عندما يكون العميل 32-bit. إذا ظهر ملف تعريف لحساب Windows واحد فقط، فهو في مجلد المستخدم الواحد، ولن يراه الحساب الآخر أبدًا.
لا تستنتج المسار من المثبّت. يقبل GUI وسيط --config_dir ويتذكر المجلد الذي بدأ به، لذا يمكن لاختصار أن يشير إلى مكان آخر تمامًا. افحص هدف الاختصار وحقل Start in، أو إعدادات GUI، قبل أن تنشئ أي ملف.
الإزالة هي إزالة ملف. أغلق GUI أولًا كي لا يبقي الإدخال في الذاكرة، واحذف ملف .ovpn مع أي ملفات شهادات أو مفاتيح محفوظة بجانبه، ثم شغّل العميل مرة أخرى.
مجلد كل المستخدمين يحتاج إلى حذف بصلاحيات مرتفعة. الحذف الذي لا يفعل شيئًا هناك بصمت هو UAC، وليس خطأ في العميل.
Connect: مخزن الاستيراد وفخ AppData المزدوج
تحتفظ إصدارات 2.x و3.x الحالية بملفات التعريف تحت %APPDATA%\OpenVPN Connect\profiles. أما الإصدارات حول 2.5 فكانت تستخدم %ProgramFiles(x86)%\OpenVPN Technologies\OpenVPN Client\etc\profile بدلًا من ذلك، ولهذا تبدو إجابات المنتديات الأقدم والأحدث متناقضة. الجهاز الذي جرى ترقيته في مكانه قد يحتفظ بكليهما.
تتشوّه المسارات عند إعادة سردها. %AppData% يُحلّ بالفعل إلى AppData\Roaming، لذا فإن كتابة %AppData%\Roaming\OpenVPN Connect\profiles تتوسّع إلى AppData\Roaming\Roaming وتشير إلى لا شيء. استخدم المتغير أو المسار الحرفي، ولا تخلط بينهما أبدًا.
احذف عبر العميل: افتح Profiles، واستخدم أيقونة القلم، واختر Delete. هذا يزيل السجل والنسخة المخزنة معًا. إزالة المجلد أثناء تشغيل Connect قد تترك سجلًا لا يفتح شيئًا، وهذه هي شكوى "profile still shows up" في صورتها الأخرى.
النسخة المستوردة هي التي يشغّلها العميل. تعديل ملف .ovpn المتروك في Downloads لا يغيّر شيئًا، لأن Connect يقرأ نسخته المخزنة؛ لتغيير خادم بعيد أو تشفير، عدّل ملف التعريف داخل العميل، أو عدّل الملف واستورده مرة أخرى .
لماذا يعود ملف التعريف المحذوف
تثبيتان من عائلة العميل نفسها هو السبب المعتاد. GUI لكل مستخدم وGUI لكل المستخدمين لهما مجلدَا تهيئة منفصلان، لذا فإن الحذف من أحدهما يترك الآخر سليمًا ويظل شريط النظام يعرض الاسم. Programs and Features هو المكان الذي تؤكد فيه ما إذا كان الاثنان مثبتين.
السبب الثاني هو ملف تعريف لم يكن قط في المجلد الذي فحصته. فتح ملف .ovpn مرة واحدة من مشاركة شبكة أو من مجلد Downloads قد ينسخه إلى مجلد التهيئة الخاص بالمستخدم، وملفات تعريف Connect المستوردة موجودة في AppData فقط. قبل تعديل أي شيء، ابحث عن اسم الملف تحت %USERPROFILE% و%APPDATA% معًا. مجلد ملف التعريف يحتوي عادةً المفتاح الخاص بجانب ملف .ovpn، لذا لا تلصق المجلد أبدًا في تذكرة أو محادثة لإثبات أي ملف تعريف حذفت - اذكر اسم الملف والطابع الزمني بدلًا من ذلك.
تحتفظ إصدارات GUI الأقدم أيضًا بتفضيلات العميل في السجل. إذا ظل شريط النظام يعرض اسمًا بعد اختفاء الملف وكان هناك تثبيت واحد فقط، فأعد تشغيل العميل مرة واحدة وأعد فحص مجلد تهيئة الاختصار قبل أن تفكر في لمس مفاتيح السجل.
نفقان في وقت واحد: المحوّلات أولًا، ثم المسار
يستطيع GUI الاحتفاظ بعدة اتصالات، اتصال واحد لكل محوّل افتراضي؛ أضف المحوّلات من إدخال قائمة Start الذي يثبّت TAP-Windows6، ثم أكّد العدد في Network Connections، لأن نفقين متزامنين يحتاجان محوّلين ويجب أن يحصل كلاهما على عنوانه تلقائيًا. التوجيه هو الحد الأصعب. ملفا تعريف يعيدان توجيه كل حركة المرور يتنافسان على المسار الافتراضي، ولا يمكن إلا لواحد أن يملكه، لذا تحصل على أعطال متقطعة بدلًا من نفقين يعملان. أبقِ نفقًا كاملًا واحدًا وأعطِ الثاني ملف تعريف بنفق منقسم يدفع فقط شبكته الفرعية.
لا يمكن إصلاح النطاقات الخاصة المتداخلة بإضافة محوّل. إذا وزّع الخادمان 10.8.0.0/24، فسيصطدم النفق الثاني على مستوى العنوان، ولن يفصلهما أي قدر من تهيئة العميل.
أسماء المحوّلات تخبرك بما تنظر إليه. يسرد Get-NetAdapter في PowerShell محوّلات TAP-Windows ومحوّل Wintun بالاسم، وهذا أسرع من عدّ الأيقونات في Network Connections عندما يظهر نفق على المحوّل الخطأ.
بدء ملف تعريف مسمّى من نص برمجي
يأخذ GUI اسم ملف تعريف نسبيًا إلى مجلد التهيئة، لذا يبدو المشغّل هكذا: "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect "myvpn.ovpn". المسار المطلق، أو عملية بدأت في مجلد عمل مختلف، يفشل بصمت، ولهذا ينكسر تحت Task Scheduler اختصار يعمل بالنقر المزدوج.
اضبط مجلد العمل بدلًا من الأمل. في مشغّل AutoHotkey يكون ذلك SetWorkingDir، C:\Program Files\OpenVPN\config؛ وفي Task Scheduler يكون حقل Start in الخاص بالإجراء. تمرير --config_dir بالمسار نفسه يجعل المشغّل مستقلًا عن كليهما.
قبل أن تنتهي، صدّر ملف التعريف، ودوّن محوّله وشبكته الفرعية والشبكة الفرعية التي يوجّهها، واحفظ شهادات كل عميل في مجلد فرعي خاص به. ثم أكّد أن المجلد يخص العميل الذي تشغّله فعلًا، واحذف عبر العميل عندما يكون لديه مخزن استيراد. بهذا الترتيب تمنع ملف التعريف نفسه من الظهور مجددًا بعد إعادة التشغيل التالية.