VPN νεκρό μετά την αναστολή: χαμένη σήραγγα ή παλιά εφαρμογή;
Ένα Wi-Fi που επανήλθε δεν σημαίνει ότι επέστρεψε η σήραγγα. Συγκρίνετε τρεις καταστάσεις μετά την αφύπνιση: τη διεπαφή, την ενεργοποίηση και τη συνεδρία της εφαρμογής.
Το καπάκι ανοίγει, το εικονίδιο του ασύρματου δικτύου επιστρέφει, και το VPN εξακολουθεί να εμφανίζεται ως συνδεδεμένο. Στη συνέχεια η πρώτη εσωτερική σελίδα κολλάει μέχρι να λήξει το χρονικό όριο, και μια νέα καρτέλα κάνει το ίδιο. Τρία διαφορετικά πράγματα μπορούν να παράγουν αυτή την εικόνα και χρειάζονται τρεις διαφορετικές επιδιορθώσεις: μια σήραγγα που δεν επέζησε της αναστολής, ένα προφίλ που κανείς δεν ζήτησε να επανενεργοποιηθεί, ή μια εφαρμογή που κρατά ακόμη μια συνεδρία που πέθανε πριν από ώρες. Η σύγκρισή τους είναι ταχύτερη από την επανεγκατάσταση οτιδήποτε.
Τρία πράγματα μπορεί να χαλάσουν μετά την αφύπνιση
Ο πρώτος υποψήφιος είναι η ίδια η σήραγγα. Η διεπαφή μπορεί να υπάρχει ακόμη με διεύθυνση ενώ η σχέση με τον ομότιμο έχει χαθεί, γι’ αυτό μια λυχνία ένδειξης δεν αποτελεί απόδειξη λειτουργικής διαδρομής. Μια χειραψία παλαιότερη από την αναστολή είναι το σημάδι, και χρειάζεται μία εντολή για να τη δείτε.
Το δεύτερο είναι η ενεργοποίηση. Πολλοί πελάτες επανασυνδέονται μόνοι τους· ορισμένοι όχι, και ένα προφίλ που κανείς δεν καλεί να επιστρέψει μένει εκεί και φαίνεται ρυθμισμένο. Αυτή η αποτυχία είναι σιωπηλή εξ ορισμού, επειδή τίποτα δεν έδωσε σφάλμα.
Το τρίτο είναι η εφαρμογή. Μια καρτέλα προγράμματος περιήγησης, μια συνεδρία SSH ή μια σύνδεση βάσης δεδομένων μπορούν να επιβιώσουν από μια αλλαγή δικτύου ως περιγραφέας αρχείου ενώ η μεταφορά από κάτω είναι νεκρή. Τότε μια νέα συνεδρία λειτουργεί τέλεια, κάτι που σας λέει ότι η σήραγγα ήταν εντάξει από την αρχή.
Συγκρίνετε τα τρία πριν αλλάξετε οτιδήποτε, γιατί οι επιδιορθώσεις δεν επικαλύπτονται. Η επανεκκίνηση ενός πελάτη που δεν κλήθηκε ποτέ να ξεκινήσει ξανά σπαταλά την απόδειξη που χρειαζόσασταν. Γράψτε ποιος υποψήφιος ταιριάζει με το σύμπτωμα πριν αγγίξετε μια διαμόρφωση. Αυτή η μία πρόταση συνήθως καθορίζει το υπόλοιπο της έρευνας.
Πρώτον: επέστρεψε η σήραγγα;
Κοιτάξτε τη διεπαφή και την κατάσταση του ομοτίμου αντί για το κείμενο κατάστασης του πελάτη. Μια διεπαφή με διεύθυνση και χωρίς πρόσφατη χειραψία είναι μια σήραγγα που υπάρχει μόνο στα χαρτιά.
ip -brief addr show wg show ip route show table all | head -20
Αν η διεπαφή λείπει εντελώς, η σήραγγα δεν επέζησε και το ερώτημα γίνεται ποιος έπρεπε να την επαναφέρει. Αν υπάρχει αλλά η χειραψία είναι παλιά, η σχέση με τον ομότιμο πρέπει να αποκατασταθεί και ο πελάτης ίσως περιμένει κίνηση για να την ενεργοποιήσει.
Ελέγξτε επίσης τις διαδρομές και τη διαμόρφωση DNS. Μια σήραγγα μπορεί να επιστρέψει χωρίς τις διαδρομές της, κάτι που δημιουργεί την μπερδεμένη κατάσταση όπου η διεπαφή λειτουργεί και τα εσωτερικά ονόματα εξακολουθούν να επιλύονται μέσω του λάθος διακομιστή.
Δεύτερον: ζήτησε κάτι να επιστρέψει;
Εδώ η σύγκριση δικαιώνεται. Ένα προφίλ πρόσθετου OpenVPN και μια εγγενής σύνδεση WireGuard αντιμετωπίζονται διαφορετικά από το NetworkManager, και η αναφορά ρυθμίσεων σύνδεσης δηλώνει ρητά ότι το connection.autoconnect δεν ενεργοποιεί προφίλ VPN· ο μηχανισμός για να σηκωθεί ένα VPN μαζί με μια σύνδεση είναι το connection.secondaries.
nmcli connection show --active nmcli -f connection.autoconnect,connection.secondaries connection show "Work VPN" journalctl -u NetworkManager -b --no-pager | tail -40
Αν η χειροκίνητη επανασύνδεση διορθώνει το πρόβλημα κάθε φορά, αυτό είναι το αποτύπωμα μιας απούσας ενεργοποίησης και όχι μιας χαλασμένης σήραγγας. Το αρχείο καταγραφής θα δείξει συνήθως τη διεπαφή να πέφτει και τίποτα να μην την επαναφέρει.
Αντισταθείτε στην παρόρμηση να προσθέσετε αμέσως ένα hook αναστολής. Ένα hook που εκτελείται πριν ανακάμψει το δίκτυο συναγωνίζεται την ίδια τη διεργασία που προσπαθεί να βοηθήσει, και μετατρέπει ένα αναπαραγώγιμο πρόβλημα σε διακοπτόμενο.
Τρίτον: κρατά η εφαρμογή παλιά κατάσταση;
Ανοίξτε μια εντελώς νέα συνεδρία προς τον ίδιο προορισμό πριν αγγίξετε το VPN. Αν η νέα συνεδρία λειτουργεί και η παλιά όχι, η σήραγγα είναι εντάξει και η εφαρμογή κρατά μια νεκρή σύνδεση.
Αυτός είναι ο φθηνότερος από τους τρεις ελέγχους και εκείνος που παραλείπεται πιο συχνά, γιατί το παράθυρο που αποτυγχάνει είναι ακριβώς στην οθόνη. Κλείστε το, ανοίξτε το ξανά, και σημειώστε αν το πρόβλημα επιβιώνει. Αν η νέα συνεδρία λειτουργεί, σταματήστε εντελώς την έρευνα της σήραγγας. Αν αποτύχει και αυτή, η εφαρμογή είναι σύμπτωμα και όχι αιτία.
Ορισμένες εφαρμογές ανακάμπτουν μόνες τους μετά από ένα χρονικό όριο, γι’ αυτό το σύμπτωμα μπορεί να φαίνεται ότι διορθώνεται μόνο του μετά από λίγα λεπτά. Αυτή η συμπεριφορά δείχνει την εφαρμογή και όχι τη σήραγγα, και αξίζει να καταγραφεί χωριστά. Ένας συνάδελφος που λέει ότι διορθώθηκε μόνο του περιγράφει αυτό το μοτίβο, όχι μια καλή τύχη.
Κάντε τη σύγκριση αναπαραγώγιμη
Κρατήστε τις μεταβλητές μικρές: ένα δίκτυο πρόσβασης, μία διάρκεια αναστολής και το ίδιο πρώτο αίτημα κάθε φορά. Στη συνέχεια καταγράψτε δύο αποτελέσματα: αν η χειροκίνητη επανασύνδεση το διορθώνει και αν μια ακόμη αναστολή φέρνει πίσω την αποτυχία.
Αυτή η τελευταία παρατήρηση χωρίζει τους τρεις υποψηφίους με τον πιο αξιόπιστο τρόπο. Μια νέα συνεδρία που λειτουργεί μετά από μια αποτυχημένη παλιά δεν είναι πρόβλημα σήραγγας, και καμία επανεγκατάσταση του πελάτη δεν θα το αλλάξει.
Το επίμονο keepalive του WireGuard ανήκει σε αυτή την εικόνα μόνο ως keepalive αντιστοίχισης NAT. Στέλνει πακέτα για να κρατήσει μια αντιστοίχιση ανοιχτή· δεν εμποδίζει το μηχάνημα να κοιμηθεί και δεν μπορεί να συνεχίσει να στέλνει όσο η διεργασία είναι σε αναστολή.
Καταγράψτε στο δελτίο τι βρήκατε: ποιο από τα τρία ήταν χαλασμένο, τι το επιδιόρθωσε και πώς το αναπαραστήσατε. Ο επόμενος που θα ανοίξει ένα καπάκι Δευτέρα θα σας ευχαριστήσει, και η απάντηση δεν θα χρειαστεί να ανακαλυφθεί από την αρχή.