أي نسخة OpenVPN هي التي تستخدم ملف تعريف PiVPN الخاص بك فعلاً؟
يكتب مساعد PiVPN الملفات ثم يخرج. تتبَّع وحدة systemd وسلسلة الإعداد المحمّلة والسجل الصحيح قبل أن تعيد بناء النفق.
يكتب PiVPN إعدادًا للخادم وملف تعريف للعميل، ثم يخرج؛ فهو لا يصبح أبدًا العملية التي تنقل حركة المرور. لذلك لا يمكن تفسير فشل المصافحة، أو عميل يتصل بنقطة نهاية خاطئة، أو خدمة تعود معطوبة بعد إعادة التشغيل، من قوائم المثبّت. هذه الأعراض تخصّ أي خادم OpenVPN يعمل الآن، والإعداد الذي حمّله ذلك الخادم فعلاً، والسجل الذي وُجّه إليه. أربعة أوامر للقراءة فقط تحسم الأمر عادة، ولا يغيّر أي منها شهاداتك أو مفاتيحك.
المساعد والخادم كيانان مختلفان
الالتباس سهل التفسير: مجلد واحد يحتوي الملف الذي أنشأه المساعد، والملف الذي يقرأه الخادم، وأحيانًا نسخة قديمة من كليهما. المساعد برنامج نصي للتمهيد. يثبّت الحزم، ويكتب ملفات الوحدات، ويطبع ملف تعريف للعميل، ثم تنتهي مهمته. ما يبقى هو مدخل في مدير الخدمات وسطر أوامر.
على مضيف systemd، ابدأ من الوحدة النشطة بدلًا من قائمة المجلد. يعتمد الاسم على طريقة التغليف: صور Debian وRaspberry Pi OS تعرض عادة نسخة قالب مثل openvpn-server@server، بينما تستخدم التثبيتات الأقدم openvpn@server . اسأل المدير أيّهما يعمل بدلًا من التخمين من اسم ملف.
systemctl list-units --type=service --all | grep -i openvpn
systemctl cat openvpn-server@server
اقرأ ExecStart= في ذلك المخرجات. يذكر الملف التنفيذي والخيارات التي يشغّلها المدير فعلاً، بما في ذلك أي --config مسار؛ ملف إعداد موجود قريبًا لا يشير إليه أي أمر ليس جزءًا من النفق العامل.
اتبع سلسلة الإعداد التي حلّها الخادم
OpenVPN لا يمسح مجلدًا بحثًا عن الإعدادات. يقرأ الملف الذي يُمرَّر مع --config، ويتبع أي config توجيهات بداخله، ثم يطبّق خيارات سطر الأوامر. دليل 2.6 يصف هذا الترتيب، وهو مهم عندما يختلف ملفان حول المنفذ أو الجهاز أو التشفير.
اطبع الاستدعاء الفعّال أولًا، ثم انظر إلى التوجيهات التي تحدد الهوية وإمكانية الوصول. كلا الأمرين للقراءة فقط وآمن على خادم حي، وإن كان الثاني يطبع مسارات قد لا تريدها في تذكرة عامة.
systemctl show -p ExecStart --value openvpn-server@server
grep -E '^(config|dev|proto|port|local|log|log-append|status|ca|cert|key|tls-auth|tls-crypt)' /etc/openvpn/server/server.conf
ملف .ovpn في الدليل المنزلي هو أثر للعميل. لا يقرأه خادم الخدمة أبدًا، لذا تعديل ذلك الملف لإصلاح فشل مصافحة على جانب الخادم لا يحقق شيئًا.
التضمينات هي الفخ الآخر. سطر config يجلب ملفًا ثانيًا تُعالج خياراته عند تلك النقطة، لذا يمكن لتوجيه لاحق بقيمة واحدة أن يتجاوز ما يبدو أن الملف الرئيسي يقوله. إذا بدا الملف الظاهر صحيحًا وما زال الخادم يتصرف بشكل مختلف، فاقرأ الملف المضمّن قبل تغيير أي شيء.
طابق السجل مع العملية، لا مع الخطأ الذي تتذكره
وجهتان للتسجيل شائعتان، وواحدة فقط منهما هي السجل النظامي. مع log-append مضبوطًا، يكتب الخادم إلى ذلك الملف ولا يحتفظ السجل النظامي إلا بسطور قليلة بعد بدء التشغيل. بدونه، journalctl هو مصدر الأحداث.
journalctl -u openvpn-server@server -n 80 --no-pager
اربط محاولة اتصال واحدة بنافذة زمنية واحدة. دوّن نقطة نهاية العميل، ثم اقرأ أحداث الخادم من الثواني نفسها. مصافحة TLS لا تصل أبدًا إلى تبادل الشهادات تشير إلى مشكلة في الوصول أو عدم توافق في البروتوكول، بينما يصل رفض المصادقة بعد أن تكون معلمات النفق قد اتفقت بالفعل.
لا يثبت أي إدخال قديم في السجل شيئًا عن ملف تعريف نزّلته قبل خمس دقائق. أعد توليد ملف العميل، واتصل مرة واحدة، واقرأ فقط السطور التي ظهرت خلال تلك المحاولة.
سجّل أول فشل محدّد بدلًا من الفشل العام الأخير. خطأ ربط، أو تبادل خارجي بلا رد، أو رفض شهادة، أو رفض حساب، يوجّهك كل منها إلى طبقة مختلفة، وغالبًا ما يخفي انتهاء المهلة في النهاية الحدث النافع فوقه.
إعادة بناء النفق ليست خطوة تشخيصية
الاختصار المغري هو إقامة نفق ثانٍ أبسط: مفتاح ثابت، بلا شهادات، وبلا مصادقة إضافية. سيتصل غالبًا، وهو لا يثبت إلا أن مضيفين يمكنهما تمرير UDP أو TCP بينهما. لا يقول شيئًا عن سبب فشل النشر الموثّق بالشهادات، ويستبدل بهدوء نموذج الأمان الذي طُلب منك الحفاظ عليه.
الأمر نفسه ينطبق على تعطيل tls-auth أو tls-crypt، أو تخفيف verify-x509-name، أو إسقاط عامل ثانٍ للحصول على حالة خضراء. النفق الذي يتصل لأن التحقق أُزيل هو نظام مختلف، وليس نظامًا مُصلحًا.
أجرِ تغييرًا واحدًا محدودًا في الطبقة التي ذكرها السجل، وأعد تشغيل الوحدة نفسها، وكرّر محاولة الاتصال الواحدة. هذا يبقي المقارنة نزيهة، ويترك لك تغييرًا يمكنك التراجع عنه.
ما الذي تسلّمه للشخص التالي
اكتب أربع حقائق بينما لا تزال بين يديك: إصدار OpenVPN من openvpn --version، والوحدة النشطة، وسلسلة الإعداد مع تضميناتها، ونافذة السجل التي تغطي محاولة واحدة. تلك الأربع تحوّل شكوى غامضة إلى حالة قابلة للتكرار.
احجب البيانات قبل المشاركة. المفاتيح الخاصة، والمفاتيح من نوع auth-user-pass وما شابهها من الملفات، ومواد المفاتيح الثابتة وحزم العملاء الكاملة لا مكان لها في تذكرة؛ أسماء الخيارات وشكل السلسلة تكفي عادة لعينين إضافيتين.
إذا كانت السلسلة سليمة وما زال السجل يشير إلى الشبكة، فإن الخطوة التالية هي المسار بين العميل والخادم بدلًا من تثبيت آخر. هذا هو الجزء الوحيد من القصة الذي لم يملكه المساعد أبدًا.