iPhone را برای شارژ وصل می‌کنید و یک دقیقه بعد VPN روی مک شما عبور ترافیک را متوقف می‌کند. تنظیمات سیستم سرویس جدیدی به نام iPhone USB نشان می‌دهد و اقدام بدیهی حذف آن است. این اقدام اغلب اشتباه است. سرویس می‌تواند هات‌اسپات شخصی گوشی باشد، یا پیوندی باشد که Xcode و ابزارهای دستگاه برای گفتگو با گوشی استفاده می‌کنند، و این دو به‌قدر کافی متفاوت رفتار می‌کنند که شناسایی باید پیش از حذف انجام شود.

گام 1: سرویسی را بخوانید که گوشی واقعاً ساخته است

تنظیمات سیستم و سپس شبکه را باز کنید و فهرست سرویس‌ها را با گوشی جدا و متصل مقایسه کنید. در macOS کنونی سرویس با نام iPhone USB فهرست می‌شود. توجه کنید که فعال است یا نه، در کجای ترتیب سرویس‌ها قرار دارد، و آیا مک از آن برای مسیر پیش‌فرض استفاده می‌کند. ترتیب سرویس‌ها مهم است، زیرا macOS بالاترین سرویس فعالی را انتخاب می‌کند که به مقصد برسد، نه سرویسی که نامش را می‌شناسید.

راهنمای Apple درباره هات‌اسپات شخصی سازوکار را توضیح می‌دهد: تا زمانی که هات‌اسپات شخصی روی گوشی فعال است، اتصال آن با USB می‌تواند مک را وادار کند از اتصال سلولی گوشی استفاده کند، حتی وقتی فقط می‌خواستید شارژ کنید. این اشکال کلاینت VPN نیست؛ جدول مسیریابی از سرویسی پیروی می‌کند که پیش از Wi-Fi بالا آمده است.

اگر سرویس وجود دارد اما با گوشی متصل غیرفعال می‌ماند، به احتمال زیاد اتصالی فقط برای شارژ یا پیوند دستگاه می‌بینید، نه هات‌اسپات. این تمایز را نگه دارید، چون دو گام بعدی آن را آزمایش می‌کنند نه اینکه از روی نماد حدس بزنند.

گام 2: بررسی کنید نقطه پایانی VPN از کدام مسیر استفاده می‌کند

مسیر را تا نشانی حل‌شده سرور VPN بخوانید، نه تا یک وب‌سایت. route -n get فقط خواندنی است و واسط و دروازه‌ای را چاپ می‌کند که هسته استفاده می‌کرد، و هر دو خط مهم‌اند.

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

نشانی بالا یک جای‌نگهدار برای مستندسازی است. آن را با نقطه پایانی که کلاینت شما نشان می‌دهد جایگزین کنید و برای نقطه پایانی IPv6 از route -n get -inet6 استفاده کنید. خروجی را با گوشی جدا و متصل مقایسه کنید و بین دو خوانش مسیری اضافه یا حذف نکنید. اگر واسط از en0 به واسط iPhone USB تغییر کرد، مسیر هات‌اسپات در جستجو برنده شده و اتصال بیرونی VPN اکنون روی شبکه سلولی است.

تغییر مسیر همه شکست‌ها را توضیح نمی‌دهد. کلاینت می‌تواند هنوز به سرور برسد و بعداً در ترافیک درونی تونل شکست بخورد، چون مسیر جدید MTU متفاوتی دارد یا اپراتور پروتکل را مسدود می‌کند. پیش از تغییر هر چیزی خطای خود کلاینت را بخوانید: مهلت دست‌دادن بیرونی به دسترس‌پذیری اشاره دارد، در حالی که تونل برقرارشده‌ای که عبور ترافیک را متوقف می‌کند به MTU، DNS یا سیاست اشاره دارد.

گام 3: هات‌اسپات را از پیوند ارتباط دستگاه جدا کنید

Xcode 15 و نسخه‌های بعد با دستگاه متصل با USB از طریق کانالی شبکه‌ای گفتگو می‌کنند که IPv6 پیوند-محلی را در بر می‌گیرد، بنابراین یک مک توسعه می‌تواند واسط اضافه‌ای نشان دهد که هیچ ارتباطی با دسترسی به اینترنت ندارد. یادداشت فنی 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 و نصب دوباره کلاینت در همان دقیقه شما را با مک کارآمد و بدون هیچ ایده‌ای رها می‌کند که کدام اقدام آن را درست کرد.

گام 5: تصمیم بگیرید چه چیزی را نگه دارید و چه چیزی را بررسی کنید

پیوند دستگاه را به حال خود بگذارید. حذف واسطی که Xcode استفاده می‌کند مسیر VPN را درست نمی‌کند و استقرار روی دستگاه را تا اتصال بعدی خراب می‌کند. اگر سرویس هات‌اسپات واقعاً ناخواسته است، نخست هات‌اسپات شخصی را روی گوشی خاموش کنید؛ این کنترل مستند است و پس از راه‌اندازی مجدد باقی می‌ماند.

اگر سرویسی را حذف کردید، همانی را حذف کنید که شناسایی کردید و سپس دو چیز را بررسی کنید: مسیر تا نقطه پایانی VPN به واسط مورد انتظار بازگشته است، و تونل ترافیک را به نشانی درونی عبور می‌دهد نه فقط به اینترنت. ترتیب سرویس‌ها و نسخه کلاینت را یادداشت کنید، چون به‌روزرسانی macOS می‌تواند نحوه نمایش گوشی را تغییر دهد.

سپس شکستی را که واقعاً دیدید طبقه‌بندی کنید. مهلت دست‌دادن، توقف MTU پس از بالا آمدن تونل و پاسخ‌های DNS که از اپراتور می‌آیند سه مشکل متفاوت با سه اصلاح متفاوت‌اند. سرویس USB در هر سه محرک است؛ علت بودنش نادر است.

مقالات مرتبط