توصل iPhone لشحنه، وبعد دقيقة تتوقف شبكة VPN على جهاز Mac عن تمرير حركة البيانات. تعرض إعدادات النظام خدمة جديدة باسم iPhone USB، والخطوة الظاهرة هي حذفها. هذه الخطوة خاطئة في كثير من الأحيان. قد تكون الخدمة نقطة الاتصال الشخصية للهاتف، أو قد تكون رابطًا يستخدمه Xcode وأدوات الأجهزة للتحدث إلى الهاتف، وسلوك الاثنين مختلف بما يكفي ليجعل التحديد قبل الحذف ضروريًا.

الخطوة 1: اقرأ الخدمة التي أنشأها الهاتف فعليًا

افتح إعدادات النظام، ثم الشبكة، وقارن قائمة الخدمات والهاتف غير موصول ثم موصول. في macOS الحالي تظهر الخدمة باسم iPhone USB. لاحظ ما إذا كانت نشطة، وأين تقع في ترتيب الخدمات، وما إذا كان جهاز Mac يستخدمها للمسار الافتراضي. ترتيب الخدمات مهم لأن macOS يختار أعلى خدمة نشطة تستطيع الوصول إلى الوجهة، لا الخدمة التي تعرف اسمها.

تصف إرشادات نقطة الاتصال الشخصية من Apple الآلية: أثناء تمكين نقطة الاتصال الشخصية على الهاتف، يمكن أن يجعل توصيله عبر USB جهاز Mac يستخدم اتصال الهاتف الخلوي، حتى عندما كنت تنوي الشحن فقط. هذا ليس خللًا في عميل VPN؛ فجدول التوجيه يتبع خدمة ظهرت قبل Wi-Fi.

إذا كانت الخدمة موجودة لكنها تبقى غير نشطة مع توصيل الهاتف، فأنت على الأرجح ترى اتصال شحن فقط أو رابط جهاز لا نقطة اتصال. احتفظ بهذا التمييز، لأن الخطوتين التاليتين تختبرانه بدلًا من التخمين من الأيقونة.

الخطوة 2: تحقق من المسار الذي تستخدمه نقطة نهاية VPN

اقرأ المسار إلى العنوان المحلول لخادم VPN، لا إلى موقع ويب. route -n get للقراءة فقط ويطبع الواجهة والبوابة التي سيستخدمها النواة، والسطران مهمان.

scutil --dns | head -20
route -n get 203.0.113.10

العنوان أعلاه عنصر نائب للتوثيق. استبدله بنقطة النهاية التي يعرضها عميلك، واستخدم route -n get -inet6 لنقطة نهاية IPv6. قارن الخروج والهاتف غير موصول ثم موصول، ولا تضف مسارات أو تحذفها بين القراءتين. إذا تغيرت الواجهة من en0 إلى واجهة iPhone USB، فقد فاز مسار نقطة الاتصال في البحث وأصبح الاتصال الخارجي لـ VPN يسير على الشبكة الخلوية.

تغير المسار لا يفسر كل فشل. قد يظل العميل يصل إلى الخادم ويفشل لاحقًا في حركة النفق الداخلية، لأن المسار الجديد له MTU مختلف أو لأن المشغل يحجب البروتوكول. اقرأ خطأ العميل نفسه قبل تغيير أي شيء: مهلة المصافحة الخارجية تشير إلى الوصول، أما نفق قائم يتوقف عن تمرير الحركة فيشير إلى MTU أو DNS أو السياسة.

الخطوة 3: افصل نقطة الاتصال عن رابط اتصال الجهاز

يتحدث Xcode 15 وما بعده مع جهاز موصول عبر USB عبر قناة شبكية تتضمن IPv6 المحلي للرابط، لذا يمكن أن يعرض جهاز Mac للتطوير واجهة إضافية لا علاقة لها بالوصول إلى الإنترنت. توثق المذكرة الفنية TN3158 من Apple هذا السلوك وتحذر من أن تصفية VPN أو الأمان يمكن أن تتداخل معه. هذا عكس مشكلة نقطة الاتصال: لا تنكسر شبكة VPN لأن الهاتف يوفر الإنترنت، بل ينكسر اتصال الجهاز لأن VPN تلتقطه.

ملاحظتان تفصلان الحالتين دون التقاط حزم. أولًا، تحقق مما إذا كانت الواجهة لها عنوان قابل للتوجيه ومسار افتراضي، أو فقط عنوان fe80:: محلي للرابط؛ المحلي للرابط وحده يعني عدم وجود مسار إنترنت. ثانيًا، أغلق VPN وانظر هل يستطيع Xcode الوصول إلى الجهاز مرة أخرى. إن استطاع، فمسارات VPN أو مرشح المحتوى يلتقطان حركة الرابط المحلي، والإصلاح يقع في إعداد النفق المنقسم أو المرشح، لا في لوحة الشبكة.

ifconfig | grep -A4 -E '^en[0-9]+:'
netstat -rn -f inet6 | head

لا تحكم باسم الواجهة وحده. ينشئ macOS هذه الواجهات ويدمرها مع توصيل الأجهزة، ويُخصص رقم en وقت التشغيل، لذا يمكن أن يعرض الجهاز نفسه رقمًا مختلفًا بعد إعادة التشغيل أو تبديل الكابل.

الخطوة 4: أعد إنتاج الفشل بمتغير واحد في كل مرة

بعد معرفة الخدمة المعنية، أعد إنتاج المشكلة بترتيب ثابت. ابدأ والهاتف غير موصول و VPN متصلة. وصل الهاتف ونقطة الاتصال الشخصية متوقفة، وانتظر حتى تستقر قائمة الشبكة، ثم شغّل استعلام المسار مرة أخرى. افصل، ومكّن نقطة الاتصال الشخصية، وصل ثانية، وكرر. اكتب الواجهة والبوابة وخطأ العميل لكل حالة من الحالات الثلاث، وستحصل على مقارنة بدلًا من ذكرى.

إذا فشلت VPN في حالة نقطة الاتصال فقط، فأبعد الهاتف عن ذلك المسار: أوقف نقطة الاتصال الشخصية أثناء الشحن، أو انقل خدمة iPhone USB إلى ما تحت Wi-Fi في ترتيب الخدمات. إن فشلت في كل حالة توصيل، بما في ذلك مع إيقاف نقطة الاتصال، فانظر كيف يتعامل العميل مع انتقال الشبكة. بعض العملاء يهدمون النفق عندما تتغير الخدمة الأساسية ويحتاجون إلى إعادة اتصال؛ هذا سلوك العميل لا عيب في الهاتف.

غيّر شيئًا واحدًا في كل محاولة. حذف الخدمة وإعادة تعيين إعداد VPN وإعادة تثبيت العميل في الدقيقة نفسها يتركك بجهاز Mac يعمل وبلا فكرة عن أي إجراء أصلحه.

الخطوة 5: قرر ما تبقيه وما تتحقق منه

اترك رابط الجهاز كما هو. إزالة واجهة يستخدمها Xcode لا تصلح مسار VPN، وهي تعطل نشر الأجهزة حتى التوصيل التالي. إن كانت خدمة نقطة الاتصال غير مرغوبة فعلًا، فأوقف نقطة الاتصال الشخصية على الهاتف أولًا؛ هذا هو عنصر التحكم الموثق ويبقى بعد إعادة التشغيل.

إن أزلت خدمة، فأزل التي حددتها ثم تحقق من أمرين: عودة المسار إلى نقطة نهاية VPN على الواجهة المتوقعة، ومرور النفق بحركة إلى عنوان داخلي لا إلى الإنترنت فقط. احتفظ بملاحظة عن ترتيب الخدمات وإصدار العميل، لأن تحديث macOS يمكن أن يغير طريقة ظهور الهاتف.

ثم صنف الفشل الذي رأيته فعلًا. مهلة المصافحة، وتوقف MTU بعد قيام النفق، وإجابات DNS القادمة من المشغل ثلاثة مشاكل مختلفة بثلاثة إصلاحات مختلفة. خدمة USB هي المحفز في الثلاثة جميعًا؛ ونادرًا ما تكون السبب.

مقالات ذات صلة