Δοκιμάζετε έναν δωρεάν πελάτη VPN ή μια επέκταση περιηγητή για μια εβδομάδα, το απενεργοποιείτε και το διαδίκτυο σταματά. Το εικονίδιο Wi-Fi εξακολουθεί να δείχνει σύνδεση, άλλες συσκευές στον ίδιο δρομολογητή λειτουργούν, και το μόνο που επαναφέρει την περιήγηση είναι να ενεργοποιήσετε ξανά την εφαρμογή ή να την απεγκαταστήσετε. Αυτό το μοτίβο δεν είναι κρυπτογράφηση που δημιουργεί εξάρτηση. Είναι ρύθμιση που έγραψε η εφαρμογή κάπου όπου η σήραγγα δεν είναι ιδιοκτήτης.

Ο πελάτης αλλάζει ρυθμίσεις που δεν ανήκουν στη σήραγγα

Ένας πελάτης ιδιωτικότητας στα Windows ή το macOS αγγίζει συνήθως τρία σημεία ταυτόχρονα. Ρυθμίζει τον διακομιστή μεσολάβησης HTTP του συστήματος, το ίδιο πεδίο που εκθέτει το Internet Options. Εγκαθιστά έναν εικονικό προσαρμογέα, συχνά οδηγό TAP, για να συλλαμβάνει πακέτα. Και ξαναγράφει τη λίστα των επιλυτών, ενώ όταν πατάτε αποσύνδεση εξαφανίζεται μόνο η σήραγγα.

Μια επέκταση περιηγητή είναι στενότερο πράγμα. Συνήθως αλλάζει το δικό της προφίλ ή τον διακομιστή μεσολάβησης που ακολουθεί ένας περιηγητής. Γι' αυτό ένας περιηγητής μπορεί να αποτυγχάνει ενώ τα εργαλεία γραμμής εντολών συνεχίζουν να λειτουργούν, ή το αντίστροφο: η επέκταση δεν είχε ποτέ την εξουσία να αγγίξει τα άλλα επίπεδα. Ποιο επίπεδο επεξεργάστηκε καθορίζει ποια εργαλεία σπάνε.

Όπως και να έχει, την απαρχαιωμένη απόφαση την πήρε λογισμικό που δεν είχε λόγο να την αναιρέσει. Η σήραγγα ήταν το ορατό μέρος και ήταν επίσης το μόνο μέρος με καθαρή διαδρομή τερματισμού. Όλα τα άλλα είναι ρύθμιση σε ένα χώρο αποθήκευσης που ζει περισσότερο από τη διεργασία, οπότε η αφαίρεση της εφαρμογής είναι το ένα βήμα που ανατρέπει και τα τρία μαζί. Το διάβασμα αυτών των χώρων πριν από οποιαδήποτε επανεγκατάσταση μετατρέπει το σύμπτωμα σε διάγνωση.

Τρία κατάλοιπα, τρεις διαφορετικές αστοχίες

Το πρώτο κατάλοιπο είναι ένας διακομιστής μεσολάβησης που δεν δείχνει πουθενά: το κουτί του LAN είναι ακόμη τσεκαρισμένο, ή ένα URL σεναρίου ρύθμισης στοχεύει σε θύρα localhost όπου καμία διεργασία δεν ακούει πια. Ο περιηγητής προωθεί κάθε αίτημα σε αυτή τη νεκρή θύρα και κολλάει μέχρι το όριο χρόνου να μοιάζει με νεκρό δίκτυο. Το δεύτερο είναι ένας προσαρμογέας που εξακολουθεί να κατέχει μια προεπιλεγμένη διαδρομή, επειδή μια συσκευή TAP-Windows ή ένας οδηγός δρομολόγησης κατασκευαστή παραμένει πραγματική διεπαφή μετά την απεγκατάσταση. Κρατά τη διαδρομή που του δόθηκε, και η κίνηση εξαφανίζεται σε μια σήραγγα που δεν υπάρχει. Κανένα από τα δύο κατάλοιπα δεν αναγγέλλεται· και τα δύο μοιάζουν ακριβώς με διακοπή.

Το τρίτο είναι το DNS, και αποτυγχάνει νωρίτερα από τα άλλα δύο. Αν η λίστα επιλυτών περιέχει μόνο διακομιστές προσβάσιμους μέσω της σήραγγας, κάθε αναζήτηση λήγει πριν ζητηθεί μία σελίδα, οπότε ο περιηγητής αναφέρει μη προσβάσιμο ιστότοπο αντί για νεκρό διακομιστή μεσολάβησης. Όποιο κι αν έχετε, κανένα δεν είναι διακοπή με την έννοια του δικτύου. Κάθε ένα είναι κατάλοιπο που κανείς δεν ανακάλεσε, και κάθε ένα επισκευάζεται σε διαφορετικό σημείο.

Κατεβείτε τα τέσσερα επίπεδα

Ξεκινήστε πιο κοντά στην εφαρμογή και κατεβείτε, γιατί τα επίπεδα αποτυγχάνουν με αυτή τη σειρά ορατότητας. Αλλάξτε ένα επίπεδο ανά δοκιμή και επαναλάβετε τη δοκιμή μετά από καθένα. Η επαναφορά όλων μαζί συνήθως επαναφέρει την περιήγηση και σας αφήνει ανίκανους να πείτε ποιο κατάλοιπο την προκάλεσε, οπότε η επόμενη εγκατάσταση ξαναδημιουργεί τον ίδιο γρίφο. Η σειρά είναι μεσολαβητής, προσαρμογείς, διαδρομές, επιλυτές.

Στα Windows κάθε έλεγχος είναι μία εντολή που έρχεται με το λειτουργικό σύστημα, οπότε δεν χρειάζεται εγκατάσταση. Εκτελέστε τις με τη σειρά και κρατήστε την έξοδο μαζί, γιατί οι τέσσερις απαντήσεις βγάζουν νόημα μόνο δίπλα δίπλα. Αναφέρουν τον μεσολαβητή, τους προσαρμογείς, τις διαδρομές IPv4 και τη λίστα επιλυτών, με αυτή τη σειρά:

netsh winhttp show proxy
Get-NetAdapter
route print -4
Get-DnsClientServerAddress

Το Linux και το macOS χρειάζονται τις δικές τους εντολές και δεν είναι ανταλλάξιμες. Στο Linux οι διαδρομές έρχονται από το ip route και ο επιλυτής από το resolvectl status όπου τον κατέχει το systemd-resolved, με επιστροφή στο cat /etc/resolv.conf. Στο macOS οι διαδρομές έρχονται από το netstat -rn, οι επιλυτές από το scutil --dns και ο μεσολαβητής συστήματος από το scutil --proxy. Ένας αναγνώστης macOS που εκτελεί ip route παίρνει command not found, και το /etc/resolv.conf εκεί είναι παραγόμενο stub και όχι η αυθεντική ρύθμιση. Ελέγξτε την πλατφόρμα πριν από το επίπεδο, αλλιώς η πρώτη εντολή γίνεται το εύρημα.

Για κάθε επίπεδο κάντε μία ερώτηση: δείχνει ακόμη αυτή η τιμή σε κάτι που υπάρχει ενώ η εφαρμογή είναι κλειστή; Μεσολαβητής σε νεκρή θύρα, προσαρμογέας χωρίς σήραγγα, προεπιλεγμένη διαδρομή μέσα από πεσμένη διεπαφή και επιλυτής μέσα στη σήραγγα απαντούν όλα όχι. Ένα μόνο όχι αρκεί για να εξηγήσει το σύμπτωμα, γι' αυτό μετράει μία αλλαγή ανά δοκιμή.

Ο μεσολαβητής δεν είναι σήραγγα

Ο μεσολαβητής δέχεται ένα αίτημα, το φέρνει αλλού και επιστρέφει την απάντηση, που σημαίνει ότι γνωρίζει τον προορισμό και βλέπει ό,τι δεν κρυπτογράφησε ο ίδιος ο ιστότοπος. Δεν μεταφέρει άλλα πρωτόκολλα. Δεν προστατεύει τη διαδρομή εκτός αν ο προορισμός χρησιμοποιεί ήδη TLS. Και μπορεί να αλλάξει από ό,τι τον εγκατέστησε, χωρίς τη συμμετοχή σας.

Αυτή η διάκριση αλλάζει την ερώτηση που αξίζει να τεθεί. Όταν μένει πίσω ένας μεσολαβητής, βρείτε ποιο πρόγραμμα εξακολουθεί να κατευθύνει τον περιηγητή σας αντί για το αν η σήραγγα είναι πάνω. Η σήραγγα μπορεί να είναι απόλυτα υγιής και εντελώς άσχετη με την αστοχία.

Αν θέλετε να μάθετε τι έκανε πραγματικά ένας τέτοιος πελάτης, παρατηρήστε τον αντί να διαβάσετε τον πίνακά του. Το Process Monitor καταγράφει ποια κλειδιά μητρώου και αρχεία αγγίζει, ενώ μια σύλληψη πακέτων αποκαλύπτει πού πήγε η κίνησή του. Και τα δύο είναι συνηθισμένα εργαλεία, και τα δύο απαντούν στην ερώτηση των καταλοίπων καλύτερα από κάθε φωτάκι κατάστασης. Κανένα δεν απαιτεί να τρέχει ακόμη η εφαρμογή.

Αφαιρέστε το συστατικό, όχι τα στοιχεία

Η διαρκής λύση είναι να αφαιρέσετε το πράγμα που έγραψε τη ρύθμιση. Απεγκαταστήστε την εφαρμογή, διαγράψτε τον εικονικό προσαρμογέα που πρόσθεσε, καθαρίστε τον μεσολαβητή και τη λίστα επιλυτών, μετά επανεκκινήστε και δοκιμάστε με την εφαρμογή ακόμη απεγκατεστημένη. Αν η περιήγηση λειτουργεί τότε, βρήκατε την αιτία και όχι μια παράκαμψη. Σημειώστε ποιο επίπεδο ήταν απαρχαιωμένο, γιατί ο ίδιος κατασκευαστής τείνει να κάνει το ίδιο λάθος δύο φορές.

Αν το σύμπτωμα επιστρέψει αφού εγκαταστήσετε τον επόμενο πελάτη, περπατήστε ξανά τα τέσσερα επίπεδα πριν αποφασίσετε ότι η υπηρεσία έσπασε κάτι. Τα στοιχεία είναι συνήθως ακόμη εκεί, σε ένα από τα τέσσερα σημεία. Μια δεύτερη εφαρμογή δεν δημιουργεί πέμπτο επίπεδο· επεξεργάζεται ένα από τα τέσσερα.

Η επανεγκατάσταση επαναφέρει τον μεσολαβητή αλλά όχι έναν απαρχαιωμένο προσαρμογέα, και μπορεί να αφήσει δύο επιλυτές στη λίστα. Αυτή η ασυμμετρία είναι ο λόγος που το απεγκατάσταση-και-δοκιμή κερδίζει ένα κουμπί επαναφοράς όλων. Σας δίνει επίσης μια βάση σύγκρισης την επόμενη φορά που θα πέσει η σύνδεση.

Σχετικά άρθρα