ملف تعريف VPN على Android: ابحث عن المالك قبل تعديله
يخفي صف VPN في النظام التطبيق الذي يملك نقطة النهاية والمسارات والمفاتيح. حدّد المالك ثم قارن الحالة المطلوبة والمستلمة والمطبّقة.
تعرض شاشة VPN في Android صفًا واحدًا فيه اسم وأيقونة مفتاح وربما مفتاح تشغيل دائم. ونادرًا ما تعرض نقطة النهاية أو سياسة المسارات أو خوادم DNS أو بيانات الاعتماد التي تجعل الاتصال يعمل، لأنها في النفق القائم على تطبيق تخص التطبيق. والنتيجة العملية سؤال يتعلق بدليل التشغيل لا سؤال فلسفي: قبل تعديل ملف تم تنزيله أو البحث عن مخزن ملفات تعريف مركزي، اكتشف أي مكوّن يملك الإعداد الذي تريد تغييره.
حدّد نوع الاتصال أولًا
هناك ثلاثة ترتيبات على الأقل في شاشة الإعدادات نفسها. يمكن للتطبيق أن يستخدم VpnService لبناء واجهة افتراضية وامتلاك البروتوكول والإعدادات الخاصة، بما في ذلك تطبيق تصفية محلي بلا مخرج بعيد. ويمكن لنظام Android أيضًا توفير ملف تعريف IKEv2 للمنصة عبر Ikev2VpnProfile، المتاح من API 30، حيث تحتفظ المنصة بجزء أكبر من ملف التعريف. ويمكن لتطبيق مزوّد أن يعرض قائمة خوادمه الخاصة ويجمّع الإعدادات داخليًا.
adb shell dumpsys connectivity | grep -i -A12 "VPN"
adb shell cmd connectivity list-owners 2>/dev/null || true
يعرض الأمر الأول شبكة VPN النشطة وخصائص رابطها، وهي الحالة المطبّقة. وإذا كان الصف يذكر حزمة تعرفها، فابدأ من عرض ملفات التعريف الخاص بذلك التطبيق لا من شاشة النظام.
سجّل المالك ونطاق ملف التعريف
اكتب أربع حقائق قبل تغيير أي شيء: الحزمة المالكة، وما إذا كان الاتصال يعيش في الملف الشخصي أو ملف العمل، واسم ملف التعريف أو الاتصال كما يعرضه التطبيق، ومن يديره. ويمكن لمالك الجهاز توفير VPN لملف عمل لا يستطيع مستخدم الملف الشخصي تعديله، والتطبيق نفسه المثبّت مرتين يمنحك مالكين مستقلين.
تمنع هذه الخطوة الساعة المهدرة الأكثر شيوعًا، وهي تعديل ملف تعريف ليس هو المتصل. فالتطبيقات غالبًا تحتفظ بعدة ملفات تعريف، والنشط منها خاصية للتطبيق لا لصف Android.
قارن الحالة المطلوبة والمستلمة والمطبّقة
هذه ثلاث مراحل مختلفة، والتباين بينها يخبرك أي مكوّن يجب إصلاحه.
| Stage | Where to look | What it proves |
|---|---|---|
| Requested | The app's profile editor or imported file | What the owner intends to use |
| Received | Sanitized app log of server-supplied options | What the peer actually pushed |
| Applied | Link properties and routes after connect | What the device is really using |
المرحلة المطبّقة هي التي يمكنك ملاحظتها دون الثقة بسجل أي طرف. قارن خوادم DNS والمسارات في خصائص الرابط النشط بما يدّعيه ملف التعريف؛ فإن اختلفت، فقد دفع الخادم شيئًا أو طبّق التطبيق سياسة لم تتوقعها.
adb shell ip addr show tun0
adb shell ip route show table all | head -40
تختلف أسماء الواجهات بين التطبيقات، لذا اسرد الواجهات أولًا واقرأ التي ظهرت عند اتصال النفق. والمسار الموجود في محرر التطبيق والغائب هنا لم يُطبّق قط؛ والمسار الموجود هنا والغائب من المحرر جاء من مكان آخر.
عدّل الملف الذي يقرأه المالك فعليًا
في ملف OpenVPN المستورد يحتفظ التطبيق عادة بنسخته الخاصة. وتعديل الملف الذي نُزّل أصلًا لاحقًا لا يغيّر الاتصال التالي؛ استخدم محرر التطبيق الموثّق، أو أعد الاستيراد وتأكد من ملف التعريف النشط الآن. هذا هو الفرق بين تغيير ملف وتغيير إعداد.
تجمّع تطبيقات المزوّدين الإعدادات غالبًا من قائمة خوادم بدل كتابة ملف قابل لتحرير المستخدم. وغياب زر التصدير ليس دليلًا على أن VPN مزيف، وقد يحذف الملف المصدَّر مفاتيح مرتبطة بالجهاز أو مواد تسجيل يحتاجها جهاز آخر. تعامل مع التصدير والاستيراد كعمليتين منفصلتين بشروطهما الخاصة.
اكتب مذكرة الدعم دون كشف الأسرار
تذكر المذكرة المفيدة التطبيق وملف التعريف بدقة، والإعداد الذي يبدو خاطئًا، والأدلة من كل مرحلة. مثلًا: يتلقى ملف التعريف هذا عنوان DNS خاصًا من الخادم، لكن تطبيق العمل المقصود لا يستطيع تحليل خدمته، وتعرض خصائص الرابط المطبّقة ذلك الخادم بينما يعرض محرر ملف التعريف آخر.
أبقِ بيانات الاعتماد خارج المذكرة. فاستخدام صلاحيات الجذر لفحص تخزين التطبيق الخاص ليس مطلوبًا لتحديد المالك، ومسار دليل بيانات مخمّن ليس واجهة مدعومة. وإذا كان الجواب يحتاج بايتات لا يراها إلا التطبيق، فاطلب من المالك تصديرًا تشخيصيًا بدل ابتكار واحد.
عند انتهاء العمل، أغلق الحلقة: أكّد اسم ملف التعريف النشط، وأعد قراءة الحالة المطبّقة، وافصل الاتصال مرة واحدة للتحقق من أن التغيير يبقى بعد إعادة الاتصال. والإعداد الموجود في المحرر فقط لم يُنشر.