אפליקציית iPhone לא מוצאת מכשירים מקומיים כשה-VPN פעיל
שני שערים קובעים אם אפליקציית iPhone תגיע למדפסת או לטלוויזיה דרך VPN: הרשאת הרשת המקומית והנתיבים של המנהרה עצמה. בדקו אותם לפי הסדר.
אפליקציית המדפסת שלכם מציגה רשימה ריקה, אפליקציית המצלמה מדווחת שלא נמצא מכשיר, וכפתור השידור באפליקציית וידאו מסתובב עד שהוא מתייאש. סמל ה-VPN יושב בשורת המצב, בטלפון יש קליטה מלאה וספארי טוען דפים בלי בעיה, כך ששום דבר בחיבור לא נראה שבור. ואז אתם פותחים את ההגדרות של האפליקציה עצמה ולא מוצאים שום דבר להחליף.
נתקלתי בדיוק בקיר הזה עם מדפסת תוויות ברשת ביתית: האפליקציה מעולם לא קיבלה גישה לרשת המקומית, והפרופיל שבדקתי היה מנהרה מלאה שבלעה כל מנות שנשלחו אל 192.168.1.0/24. שני שערים בלתי תלויים היו סגורים, ופתיחת אחד מהם לא הייתה מסירה את התסמין.
שני שערים בין אפליקציה אחת למדפסת אחת
השער הראשון הוא החלטת פרטיות ששייכת למערכת ההפעלה ולא לאפליקציה. iOS מחליט אם אפליקציה רשאית לשלוח תעבורה לכתובות ברשת המקומית, והוא שואל את המשתמש בפעם הראשונה שהאפליקציה מנסה. השער השני הוא טבלת הניתוב. מנה שמיועדת ל-192.168.1.50 או יוצאת ב-Wi-Fi אל המדפסת, או נכנסת למנהרה, והבחירה הזו כתובה בפרופיל ה-VPN.
שני השערים נכשלים בצורות שונות, וזה בדיוק מה שמאפשר את האבחון. הרשאה שנדחתה הורגת את קריאת ה-socket של האפליקציה עצמה, ולכן אין לאפליקציה מה לדווח והיא נופלת למצב ריק גנרי. בעיית ניתוב נראית כמו פסק זמן, מפני שהמנות עזבו את הטלפון ומתו אי שם בצד השני. אותו מסך ריק, תיקון אחר.
קראו את מצב ההרשאה לפני שנוגעים ב-VPN
פתחו הגדרות, אחר כך פרטיות ואבטחה, אחר כך רשת מקומית. כל אפליקציה שביקשה גישה מופיעה שם עם מתג. אפל העבירה ושינתה שמות של חלקים במסך הזה בין iOS 14 ל-iOS 18, כך שאם הרשומה לא נמצאת במקום שבו ציפיתם, הקלידו רשת מקומית בשדה החיפוש של ההגדרות במקום לחטט בעץ.
מה שתופס אנשים הוא הבקשה החד-פעמית. iOS שואל כשאפליקציה נוגעת ברשת המקומית בפעם הראשונה, ורק אז. הקישו אל תאפשר והבקשה לא תחזור בהפעלה הבאה; המתג הוא הדרך היחידה חזרה, והוא מתחיל כבוי. התקנה מחדש של האפליקציה מאפסת את ההחלטה, ולכן כמה שרשורים לפתרון תקלות טוענים שהתקנה מחדש תיקנה את הגילוי. היא אכן תיקנה, בכך שמחקה את הדחייה.
ב-iPhone בפיקוח או בניהול המתג לפעמים אפור. מטען של העדפות פרטיות שנדחף על ידי MDM יכול לקבוע מראש או לנעול גישה לרשת המקומית, ומתג נעול שכבוי משמעותו שהתיקון הוא שינוי מדיניות ולא שינוי טלפון. אפל מתעדת את הבקשה ואת המתג לכל אפליקציה כאן: support.apple.com/en-us/102229.
בדקו מה המנהרה מנתבת בפועל
מנהרה מלאה לוקחת 0.0.0.0/0 ואיתה כל טווח פרטי. מנות אל 10.x, 172.16.0.0/12 ו-192.168.x.x נוסעות אל השרת, שבדרך כלל משליך אותן או מתרגם אותן לתת-הרשת שלו, כך שהמדפסת נשארת בלתי נגישה גם אחרי שנתתם הרשאה. מנהרה מפוצלת עושה ההפך, אבל רק עבור הטווחים שהפרופיל מפרט.
פרופילי IKEv2 שנבנים ב-Apple Configurator או נשלחים כ-.mobileconfig מבטאים זאת כהגדרה של שליחת כל התעבורה ועוד, במצב מפוצל, רשימה מפורשת של רשתות מקומיות להחרגה. אפליקציות לקוח שנבנות על NEPacketTunnelProvider מבטאות את אותה החלטה דרך includedRoutes. שניהם אינם נראים משורת המצב, ושניהם דורסים את מה שהאפליקציה מצפה לראות.
זה המבחן שאני משתמש בו. כשה-VPN מחובר, פתחו בספארי את דף הניהול של הנתב לפי כתובת ה-LAN שלו. אם אתרים ציבוריים נטענים בזמן שהדף הזה מגיע לפסק זמן, הטווח הפרטי שלכם בתוך המנהרה. אם הדף נטען, התעבורה המקומית עדיין יוצאת ב-Wi-Fi והחסימה במקום אחר.
התאימו את התסמין לשער
שתי אפליקציות באותו טלפון יכולות לחלוק, מפני שההרשאה ניתנת לפי אפליקציה והנתיבים ניתנים לפי פרופיל. השוו מה נכשל לפני שמשנים משהו: בדרך כלל התבנית עצמה נוקבת בשער.
| What you see | Gate | Next step |
|---|---|---|
| Device list stays empty, Local Network switch is off | Permission | Enable the switch, force-quit the app, reopen it |
| Switch is on, router page times out, public sites load | Routing | Exclude the local range in the profile, or move to a split tunnel |
| Both pass, direct IP works, discovery stays empty | Link-local multicast | Enter the device address by hand, or check profile discovery support |
| Works by IP address, never by name such as printer.local | Name resolution | Fix mDNS reachability or use the numeric address |
| Everything fails with the VPN off, on hotel Wi-Fi | Client isolation | Change network, do not change permissions |
השורה של mDNS ראויה להערה. תעבורת גילוי של Bonjour ורוב פרוטוקולי השידור הולכת ב-multicast אל 224.0.0.251 ואל ff02::fb בהיקף קישור מקומי, ומנהרה מנותבת לא נושאת אותה. לכן התקן יכול לענות לחיבור ישיר ובלי להופיע ברשימה לעולם.
בדקו את הפעולה, לא את הסמל
אחרי שהחלפתם את מתג הרשת המקומית, כפו סגירה של האפליקציה ממחליף האפליקציות והפעילו אותה מחדש. תהליך שרץ יכול להחזיק את המצב הנדחה מלפני השינוי, ואפליקציה שממשיכה להחזיר רשימה ריקה נראית זהה בין אם ההרשאה עבדה ובין אם לא. אחר כך בצעו פעולה אחת קונקרטית, כמו הדפסת דף בדיקה או התחלת וידאו, במקום להמתין שרשימת מכשירים תתמלא.
שמרו על פרופיל ה-VPN קבוע לאורך ההשוואה. אם הגילוי מתחיל לעבוד רק אחרי שאתם מתנתקים, למדתם שהמנהרה אשמה ולא ההרשאה. שנו משתנה אחד לכל ניסיון, אחרת הריצה הבאה לא תספר לכם דבר.
תקנו לפי הסדר הזה
הרצף שלמטה הוא זה שאני עוקב אחריו עכשיו, מפני שהוא אף פעם לא משאיר טלפון במצב חצי-מוחלף שבו המבחן הבא אינו קריא.
- ודאו שהאפליקציה מופיעה תחת פרטיות ואבטחה, רשת מקומית, ושהמתג שלה דלוק.
- כפו סגירה, הפעילו מחדש את האפליקציה ונסו שוב את הפעולה האמיתית פעם אחת.
- פתחו את דף הנתב לפי כתובת ה-LAN כשאתם מחוברים כדי להוכיח אם הטווח הפרטי עובר במנהרה.
- אם הוא עובר, ערכו את הפרופיל כדי להחריג את הרשתות המקומיות, או בקשו ממי ששולט בפרופיל לעשות זאת.
- אם המתג אפור, התייחסו למכשיר כמנוהל והעבירו את הבקשה למנהל.
בדרך כלל רק אחד מהם רלוונטי. אם אף אחד לא משנה את התוצאה, החשודים שנותרו הם הרשת עצמה, כמו בידוד נקודת גישה או רשימת לקוחות מורשים שנקשרת לכתובות Wi-Fi, וטבלת ההתאמה למעלה מראה איזה.