أي برنامج يملك ملف config.json في إعداد OpenVPN لديك؟
قد ينتمي ملف باسم config.json إلى واجهة رسومية أو خدمة خلفية أو صيغة تصدير بدلًا من OpenVPN. ابحث عن المحلّل قبل تعديل المفاتيح أو استبدالها.
تجد ملفًا باسم config.json، يذكر خادم VPN، فيأتي الافتراض فورًا: لا بد أن هذا اتصال OpenVPN. غالبًا لا يكون كذلك. يمكن أن ينتمي ملف JSON بهذا الاسم إلى واجهة سطح مكتب تشغّل العميل، أو إلى خدمة خلفية تحتفظ بإعداداتها، أو إلى صيغة تصدير خاصة بمنتج، ولكل من هذه مخططه الخاص.
اسم الملف هو أقل دليل فائدة. ابدأ من العملية التي تقرأ الملف، ثم تحقق مما إذا كانت الصيغة التي تتوقعها هي JSON أصلًا، وبعد ذلك فقط قرّر ما إذا كان تعديل الملف هو الطريقة المدعومة لتغيير أي شيء.
ابدأ من العملية لا من اسم الملف
انظر إلى ما يعمل فعليًا. ستدلّك وحدة خدمة أو سكربت تشغيل أو تطبيق في شريط النظام على الملف التنفيذي الذي يبدأه، وغالبًا على مسار الإعدادات الذي يمرره. والمجلد الذي يحتوي الملف دليل ثانٍ: مجلدات بيانات التطبيقات ومجلدات إعدادات الخدمات ومجلدات ملفات المستخدمين تشير إلى مالكين مختلفين.
ثم اقرأ وثائق المنتج الذي يملك ذلك المكوّن. إذا كان ملف JSON يخص طبقة تغليف، فمفاتيحه هي مفاتيح طبقة التغليف، وأي كائن يبدو معقولًا مبنيًا على مثال منتج آخر سيُرفض أو يُتجاهل بصمت.
وجود ملفين بالاسم نفسه في مجلدين مختلفين فخ شائع. قد يكون أحدهما حالة مُولّدة تعيد الخدمة كتابتها عند كل تشغيل، والآخر هو القالب الذي يُفترض أن يحرره الإنسان. وتعديل الملف الخاطئ ينتج إصلاحًا يبقى حتى إعادة التشغيل التالية.
ما هو ملف Community OpenVPN فعليًا
تقرأ Community OpenVPN 2.6 صيغة نصية قائمة على الخيارات. الملف الشخصي سلسلة توجيهات: سطر وضع العميل، وسطر الجهاز، ونقطة نهاية بعيدة، إضافة إلى خيارات الهوية والتشفير والمسارات، وقد يضمّن مادة الشهادة والمفتاح داخل كتل مضمنة.
يُحلَّل هذا التنسيق سطرًا بسطر بواسطة العميل نفسه. تسليمه مستند JSON عبر خيار config لا يشغّل محلّل JSON؛ سيُرفض السطر الأول كتوجيه غير معروف. وإعادة تسمية ملف JSON لينتهي بـ .ovpn لا تحوّل محتواه أيضًا، وملف الخيارات الصالح لا يصبح غير صالح لأن امتداده غير مألوف.
لـ OpenVPN Connect وOpenVPN 3 Linux مساراتهما الخاصة للاستيراد وإدارة الملفات الشخصية. يمكن لهذه المنتجات قبول ملف شخصي وتخزينه في قاعدة بياناتها أو حالة خدمتها، وهذا ليس الشيء نفسه كملف JSON يصف خادمًا بالمصادفة.
تعديل حالة يملكها مكوّن آخر
إذا كان ملف JSON مُولّدًا، فتعديله سباق. قد تعيد الخدمة العاملة كتابته عند الإيقاف أو عند إعادة الاتصال أو عند تغيير الإعدادات التالي، ويختفي التعديل اليدوي دون خطأ. فضّل أمر الاستيراد في المنتج أو واجهة الإدارة أو واجهة الإعدادات، لأن تلك المسارات تحدّث الحالة الداخلية التي يمثلها الملف. والملف الذي يعود إلى سابق عهده بعد إعادة التشغيل يخبرك أي مسار كان المسار الدائم.
إذا عدّلت ملفًا مُولّدًا فعلًا، فأوقف الخدمة أولًا، واحتفظ بنسخة احتياطية، واجعل التغيير أصغر ما يمكن. ثم تحقق مما إذا كانت الخدمة تعيد كتابة الملف عند بدئها، لأن ملفًا يعود عند البدء يعني أن مصدر الحقيقة الحقيقي في مكان آخر، وأن التعديل لم يكن ليبقى أبدًا.
كلمات المرور والمفاتيح الخاصة المضمّنة مسألة منفصلة. يمكن لملف JSON أن يحمل مفتاحًا كاملًا بسهولة مثل ملف خيارات، لذا عامل أي تصدير كسرّ، وأبعده عن الأقراص المشتركة، واحجب القيم قبل لصق البنية في سؤال على منتدى.
التحقق من التغيير وحماية الملف
التحقق ليس “JSON يُحلَّل”. فالحلّ يثبت فقط أن الأقواس متطابقة؛ ولا يقول شيئًا عن كون المالك يتعرف على المفاتيح. تحقق من حالة المنتج نفسه: قائمة الملفات الشخصية النشطة، والاتصال المحدد، وإعادة اتصال تستخدم القيم الجديدة فعليًا. والملف الشخصي الذي يظهر في القائمة لكنه لا يصبح المحدد أبدًا يبقى غير المستخدم.
راقب سجل المكوّن الذي عدّلته، لا سجل عميل VPN فقط. طبقة التغليف التي ترفض ملفك تبلّغ عنه عادة في سجلها الخاص، والعميل الذي لم يتلقّ الملف أبدًا يبدو مطابقًا لعميل تلقّى إعدادات سيئة.
احتفظ بنسخة من الملف العامل وسجّل إصدار المنتج الذي اختبرت عليه. تتغير هذه الصيغ بين الإصدارات، وقد يُرفض هيكل عمل السنة الماضية بعد ترقية برسالة لا تذكر المخطط إطلاقًا.
خلاصة المسار: حدّد العملية، واقرأ وثائقها، وتأكد ما إذا كان الملف JSON أصلًا، واستخدم مسار التعديل المدعوم، وتحقق عبر حالة المنتج نفسه. اسم الملف لم يجب قط عن أي من هذه الأسئلة.