Η εφαρμογή iPhone δεν βρίσκει τοπικές συσκευές όταν το VPN είναι ενεργό
Δύο πύλες αποφασίζουν αν μια εφαρμογή iPhone μπορεί να φτάσει εκτυπωτή ή τηλεόραση μέσω VPN: η άδεια Τοπικό δίκτυο και οι διαδρομές της ίδιας της σήραγγας. Ελέγξτε τις με σειρά.
Η εφαρμογή του εκτυπωτή δείχνει μια άδεια λίστα, η εφαρμογή κάμερας αναφέρει ότι δεν βρέθηκε συσκευή και το κουμπί μετάδοσης σε μια εφαρμογή βίντεο γυρίζει μέχρι να τα παρατήσει. Το εικονίδιο VPN κάθεται στη γραμμή κατάστασης, το τηλέφωνο έχει πλήρες σήμα και το Safari φορτώνει σελίδες χωρίς πρόβλημα, οπότε τίποτα στη σύνδεση δεν φαίνεται χαλασμένο. Μετά ανοίγετε τις ρυθμίσεις της ίδιας της εφαρμογής και δεν βρίσκετε τίποτα να αλλάξετε.
Έπεσα ακριβώς πάνω σε αυτόν τον τοίχο με έναν εκτυπωτή ετικετών σε οικιακό δίκτυο: στην εφαρμογή δεν είχε δοθεί ποτέ πρόσβαση στο τοπικό δίκτυο και το προφίλ που δοκίμαζα ήταν πλήρης σήραγγα που κατάπινε κάθε πακέτο προς το 192.168.1.0/24. Δύο ανεξάρτητες πύλες ήταν κλειστές και το άνοιγμα της μίας δεν θα είχε αφαιρέσει το σύμπτωμα.
Δύο πύλες ανάμεσα σε μία εφαρμογή και έναν εκτυπωτή
Η πρώτη πύλη είναι μια απόφαση απορρήτου που ανήκει στο λειτουργικό σύστημα και όχι στην εφαρμογή. Το iOS αποφασίζει αν μια εφαρμογή μπορεί να στέλνει κίνηση σε διευθύνσεις του τοπικού δικτύου και ρωτά τον χρήστη την πρώτη φορά που η εφαρμογή το επιχειρεί. Η δεύτερη πύλη είναι ο πίνακας δρομολόγησης. Ένα πακέτο προς το 192.168.1.50 είτε φεύγει μέσω Wi-Fi προς τον εκτυπωτή είτε μπαίνει στη σήραγγα, και αυτή η επιλογή είναι γραμμένη στο προφίλ VPN.
Οι δύο πύλες αποτυγχάνουν με διαφορετικό τρόπο και αυτό ακριβώς κάνει δυνατή τη διάγνωση. Μια άρνηση άδειας σκοτώνει την ίδια την κλήση υποδοχής της εφαρμογής, οπότε η εφαρμογή δεν έχει τίποτα να αναφέρει και πέφτει σε μια γενική κενή κατάσταση. Ένα πρόβλημα δρομολόγησης μοιάζει με λήξη χρόνου, γιατί τα πακέτα έφυγαν από το τηλέφωνο και πέθαναν κάπου στην άλλη πλευρά. Ίδια κενή οθόνη, διαφορετική επισκευή.
Διαβάστε την κατάσταση της άδειας πριν αγγίξετε το VPN
Ανοίξτε Ρυθμίσεις, μετά Απόρρητο και ασφάλεια, μετά Τοπικό δίκτυο. Κάθε εφαρμογή που ζήτησε πρόσβαση εμφανίζεται εκεί με διακόπτη. Η Apple μετακίνησε και μετονόμασε κομμάτια αυτής της οθόνης από το iOS 14 έως το iOS 18, οπότε αν η καταχώριση δεν είναι εκεί που την περιμένετε, πληκτρολογήστε Τοπικό δίκτυο στο πεδίο αναζήτησης των ρυθμίσεων αντί να ψάχνετε το δέντρο.
Αυτό που πιάνει τον κόσμο είναι η εφάπαξ ερώτηση. Το iOS ρωτά όταν μια εφαρμογή αγγίξει πρώτη φορά το τοπικό δίκτυο, και μόνο τότε. Πατήστε Να μην επιτραπεί και η ερώτηση δεν επιστρέφει στο επόμενο άνοιγμα· ο διακόπτης είναι ο μόνος δρόμος πίσω και ξεκινά κλειστός. Η επανεγκατάσταση της εφαρμογής μηδενίζει την απόφαση, γι’ αυτό ορισμένα νήματα αντιμετώπισης προβλημάτων ισχυρίζονται ότι μια επανεγκατάσταση διόρθωσε την ανακάλυψη. Τη διόρθωσε, σβήνοντας την άρνηση.
Σε ένα iPhone υπό επιτήρηση ή διαχείριση ο διακόπτης μερικές φορές είναι γκρι. Ένα φορτίο προτιμήσεων απορρήτου που στέλνει το MDM μπορεί να προκαθορίσει ή να κλειδώσει την πρόσβαση στο τοπικό δίκτυο, και ένας κλειδωμένος διακόπτης που είναι κλειστός σημαίνει ότι η επισκευή είναι αλλαγή πολιτικής και όχι αλλαγή τηλεφώνου. Η Apple τεκμηριώνει την ερώτηση και τον διακόπτη ανά εφαρμογή εδώ: 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, ανοίξτε στο Safari τη σελίδα διαχείρισης του δρομολογητή στη διεύθυνση 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, και ο πίνακας αντιστοίχισης πιο πάνω δείχνει ποια.