كيف تقرأ حالة VPN والوكيل في تطبيق عمل مُدار
أيقونة VPN على هاتف مُدار لا تُثبت إلا القليل. اقرأ الشبكة النشطة وقدراتها والوكيل الفعّال، ثم اقرأ كل قيمة فارغة على حقيقتها.
يفشل تطبيق عمل على هاتف مُدار، فيتحقق أحدهم من مفتاح VPN ويراه مفعّلًا ويعلن أن المسار سليم۔ هنا تتوقف معظم هذه التشخيصات، وهو توقف مبكر جدًا: نفق VPN نشط لا يعني أن طلبات هذا التطبيق مرّت عبره، والوكيل الذي يُطبَّق فعليًا قد يكون لكل تطبيق على حدة أو يُختار من ملف PAC بدل أن يظهر في الإعدادات۔ ابدأ من التطبيق والملف الشخصي المحددين اللذين تشخّصهما، ثم اقرأ رؤية المنصة نفسها للمسار۔
ابدأ من التطبيق وملفه الشخصي
التطبيق الذي يحمل شارة عمل يعمل عادةً في ملف شخصي منفصل له سياسة شبكته الخاصة۔ المتصفح الشخصي على الهاتف نفسه ليس دليلًا عليه، وكذلك ليست نتيجة جهاز زميل بإدارة مختلفة۔ لاحظ أي ملف شخصي ينتمي إليه التطبيق قبل أن تقرأ أي شيء۔
في الإعدادات، اعرض إدخالات VPN المهيّأة ولاحظ من يملك كلًا منها۔ في إصدارات سامسونج تتحرك تسميات القوائم بين الإصدارات، فصِف الإدخال بدلًا من وصف المسار إليه۔ الإدخال الرمادي أو المُدار يخص من يدير الجهاز؛ وإيقافه على سبيل التجربة يغيّر ما تحاول قياسه وقد يخالف السياسة۔
اقرأ الحالة التي تُبلغ عنها المنصة
داخل نشاط قائم في أدوات الدعم لديك، على API 23 أو أحدث، يمكن قراءة حالة الشبكة دون إرسال أي بايت۔ يحتاج الاستدعاء إلى إذن البيان العادي ACCESS_NETWORK_STATE لقراءة القدرات۔
val cm = getSystemService(android.net.ConnectivityManager::class.java) ?: return
val network = cm.activeNetwork
val caps = network?.let { cm.getNetworkCapabilities(it) }
val hasVpn = caps?.hasTransport(android.net.NetworkCapabilities.TRANSPORT_VPN)
val proxy = cm.defaultProxyكل قيمة تجيب عن سؤال ضيق۔ الشبكة النشطة هي الشبكة الافتراضية لعملية الاستدعاء في تلك اللحظة۔ فحص القدرات يخبرك هل تلك الشبكة الافتراضية مدعومة بـ VPN۔ استدعاء الوكيل يبلّغ عن وكيل HTTP الافتراضي الفعّال، وقد يصف الكائن المُعاد إما وكيلًا ثابتًا أو نص PAC۔
إذا احتجت إلى رؤية كل شبكة بدلًا من الافتراضي، فاقرأ خصائص الرابط للشبكة نفسها وقارنها بـ cm.getLinkProperties(network)?.httpProxy۔ الوكيل المثبَّت من إدارة الجهاز يظهر في استدعاء الوكيل الافتراضي ولا يظهر في خصائص الرابط، وهذه طريقة سريعة لتمييز وكيل تفرضه السياسة من وكيل منحته الشبكة۔
احفظ المخرجات في قناة الدعم لديك بدلًا من تقرير عام۔ أسماء مضيفات الوكيل وعناوين PAC واللواحق الداخلية تكشف كيف توجّه مؤسستك حركة المرور، ولا يُحتاج أي منها لوصف العطل۔
فسّر كل حقل تفسيرًا ضيقًا
شبكة فارغة أو كائن قدرات فارغ يعني أن حالة شبكة المستدعي كانت غير متاحة أو تغيّرت أثناء القراءة۔ وهذا لا يعني عدم وجود VPN۔ اعتبره غير معروف واقرأ مرة أخرى بعد انتقال التطبيق إلى المقدمة، لا كنتيجة سلبية۔
نفق VPN هو أضعف الإشارات الإيجابية۔ أي تطبيق يملك VpnService ينتج واحدًا، بما في ذلك تطبيق ترشيح محلي لا يرسل حركة مرورك إلى أي مكان۔ فقيمة صحيحة تقول إن شبكة افتراضية مدعومة بـ VPN موجودة، لا أن مخرج مؤسستك استُخدم، وبالتأكيد لا أن فحصًا حدث۔
وكيل افتراضي فارغ يعني أن هذه الواجهة لا تبلّغ عن وكيل HTTP افتراضي للإعداد الفعّال۔ وهو يستبعد القليل جدًا: قد يحمل التطبيق إعداد SOCKS خاصًا به، أو ينفّذ عميل HTTP خاصًا به، أو يُوجَّه بوكيل عند البوابة لا يعرف عنه الجهاز شيئًا۔
PAC هو الحالة التي تهزم الإجابة ذات القيمة الواحدة۔ يمكن للنص أن يوجّه وجهة عبر وكيل ويرسل أخرى مباشرة، فقد يتخذ طلبان من التطبيق نفسه خلال ثانية واحدة مسارين مختلفين۔ والتطبيق الذي يربط مقابسه بشبكة مختارة، أو يستدعي bindProcessToNetwork، غير ملزم باتباع الافتراضي إطلاقًا۔
ما لا تستطيع هذه اللقطة إخبارك به
إنها ليست سجلًا تاريخيًا۔ لا شيء هنا يسجّل أي مسار سلكه الطلب الفاشل، والقراءة الناجحة بعد الفشل ليست دليلًا على الفشل۔ كما أنها ليست جردًا: تحصل على الشبكة الافتراضية لعملية الاستدعاء، لا قائمة بكل اتصالات كل تطبيق الخاصة۔
ولا تقول شيئًا عما يحدث فوق المقبس أيضًا۔ فمصافحة TLS تفشل على جهاز مُدار قد تكون مشكلة مخزن ثقة، أو عدم تطابق تثبيت، أو اسمًا يرفضه الوكيل، ولا يظهر أي منها في قراءة الاتصال۔
لهذا يهم النصفان معًا: اللقطة تضيّق أين تنظر، وتشخيصات التطبيق نفسه تقول ما فشل فعليًا۔
أبلغ عنها بصيغة يستطيع المسؤول استخدامها
اذكر التطبيق المتأثر والملف الشخصي والطابع الزمني والمرحلة الدقيقة التي فشلت: تحليل الاسم، اتصال TCP، مصافحة TLS أو حالة HTTP۔ أضف قيم اللقطة كما قُرئت، مع كتابة القيم الفارغة كفارغة لا بكلمة لا شيء۔ لاحظ هل تفشل تطبيقات أخرى في الملف نفسه بالطريقة ذاتها، فهذا يفصل مشكلة التطبيق عن مشكلة مسار على مستوى الملف الشخصي۔
ثم توقف واترك لمالك المسار الرد۔ لا تعتبر شهادة مؤسسية أو عنوان وكيل أو إدخال VPN إذنًا بإزالة الإدارة أو تجاوز المسار المعتمد؛ فذلك يحوّل حالة دعم إلى حادث سياسة۔
إن عقد الوكيل الافتراضي قصير ويستحق قراءة واحدة، لأنه يحدد بالضبط أي وكيل يبلّغ عنه الاستدعاء، وكل قراءة مفرطة لهذه اللقطة تبدأ بافتراض أنه يبلّغ عن أكثر۔