למה ה-VPN ב-Mac נופל כשמחברים iPhone ב-USB
iPhone שמחובר ב-USB יכול להוסיף נתיב הוטספוט או קישור התקן של Xcode. בדקו את השירות, הנתיב ושגיאת הלקוח לפני שמוחקים משהו.
מחברים 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 מוקצה בזמן ריצה, כך שאותו Mac יכול להציג מספר אחר אחרי הפעלה מחדש או החלפת כבל.
שלב 4: שחזרו את הכשל עם משתנה אחד בכל פעם
לאחר שיודעים איזה שירות מעורב, שחזרו את הבעיה בסדר קבוע. התחילו כשהטלפון מנותק וה-VPN מחובר. חברו את הטלפון כשההוטספוט האישי כבוי, המתינו שרשימת הרשת תתייצב, והריצו שוב את שאילתת הנתיב. נתקו, הפעילו את ההוטספוט האישי, חברו שוב, וחזרו. רשמו את הממשק, השער ושגיאת הלקוח לכל אחד משלושת המצבים, ויהיה לכם השוואה במקום זיכרון.
אם ה-VPN נכשל רק במצב הוטספוט, הרחיקו את הטלפון מהנתיב הזה: כבו את ההוטספוט האישי בזמן הטעינה, או הזיזו את שירות iPhone USB מתחת ל-Wi-Fi בסדר השירותים. אם הוא נכשל בכל מצב מחובר, כולל כשההוטספוט כבוי, בדקו איך הלקוח מטפל במעבר רשת. חלק מהלקוחות מפרקים את המנהרה כשהשירות הראשי משתנה וצריכים התחברות מחדש; זו התנהגות לקוח, לא תקלת טלפון.
שנו דבר אחד בכל ניסיון. מחיקת השירות, איפוס תצורת ה-VPN והתקנה מחדש של הלקוח באותה דקה משאירים אתכם עם Mac עובד ובלי מושג איזו פעולה תיקנה אותו.
שלב 5: החליטו מה להשאיר ומה לאמת
הניחו לקישור ההתקן. הסרת ממשק ש-Xcode משתמש בו לא מתקנת נתיב VPN, והיא שוברת פריסה להתקנים עד החיבור הבא. אם שירות ההוטספוט באמת לא רצוי, כבו קודם את ההוטספוט האישי בטלפון; זהו הבקרה המתועד והוא שורד הפעלה מחדש.
אם אתם כן מסירים שירות, הסירו את זה שזיהיתם ואז אמתו שני דברים: הנתיב לנקודת הקצה של ה-VPN חזר לממשק הצפוי, והמנהרה מעבירה תעבורה לכתובת פנימית, לא רק לאינטרנט. רשמו את סדר השירותים ואת גרסת הלקוח, כי עדכון macOS יכול לשנות איך הטלפון נראה.
אחר כך סווגו את הכשל שראיתם באמת. פסק זמן של לחיצת יד, עצירת MTU אחרי שהמנהרה עלתה, ותשובות DNS שמגיעות מהמפעיל הם שלוש בעיות שונות עם שלושה תיקונים שונים. שירות ה-USB הוא הטריגר בכל השלושה; הסיבה הוא רק לעתים רחוקות.