VPN ενεργό και το localhost σταματά να δουλεύει: όνομα, διαμεσολαβητής ή δέσμευση;
Το localhost παύει να σημαίνει το μηχάνημά σας όταν ένα επίθημα αναζήτησης ή ένας διαμεσολαβητής αναλάβει. Διορθώστε πρώτα το όνομα, μετά τη διαδρομή και μετά το αλφαριθμητικό σύνδεσης του εργαλείου.
Ο διακομιστής ανάπτυξης απάντησε πριν από ένα λεπτό, και τώρα που το τούνελ είναι ενεργό το αίτημα λήγει με όνομα host που δεν πληκτρολογήσατε ποτέ. Δύο μηχανισμοί εξηγούν σχεδόν κάθε περίπτωση και από έξω φαίνονται ίδιοι. Ένα επίθημα αναζήτησης μετατρέπει ένα σύντομο όνομα σε εταιρικό, ενώ ένας διαμεσολαβητής στέλνει την κίνηση loopback σε ένα host που δεν μπορεί να τη φτάσει. Ο διαχωρισμός των δύο κοστίζει ένα ερώτημα και γλιτώνει τον κανόνα τείχους προστασίας που επρόκειτο να γράψετε.
Όταν το localhost επιλύεται στην εταιρική ζώνη
Ελέγξτε σε τι επιλύεται το όνομα όσο το τούνελ είναι ενεργό, μετά εκτελέστε το ίδιο ερώτημα με το τούνελ κλειστό και συγκρίνετε τις δύο απαντήσεις. Η ένδειξη είναι μια διεύθυνση στην εταιρική περιοχή εκεί όπου περιμένατε 127.0.0.1. Μια εγγραφή όπως localhost.mycompany.corp υπερισχύει της εγγραφής loopback μόλις ο πελάτης προσθέσει αυτό το επίθημα στη λίστα αναζήτησης, και το αίτημα ταξιδεύει σε έναν ιδιωτικό host όπου τίποτα δεν ακούει σε εκείνη τη θύρα. Διαβάστε τη λίστα αναζήτησης αντί να μαντεύετε, γιατί ένας πελάτης μπορεί να προσθέσει περισσότερα από ένα domains και η σειρά καθορίζει ποιος υποψήφιος δοκιμάζεται πρώτος:
getent hosts localhost
resolvectl domain
ss -ltnp | grep 8080
Αντικαταστήστε το όνομα host με την κυριολεκτική διεύθυνση στην εφαρμογή, στον πελάτη βάσης δεδομένων ή στο URL του σημειωματάριου και επαναλάβετε το αίτημα. Αν η αποτυχία εξαφανιστεί, είχατε πρόβλημα ονοματοδοσίας και το τούνελ ήταν μόνο η σκανδάλη. Αν παραμείνει, ο ακροατής ή η διαδρομή είναι ο επόμενος ύποπτος και το όνομα ήταν απλώς μια ψευδής ένδειξη.
Ρυθμίσεις διαμεσολαβητή που συλλαμβάνουν το loopback
Ένας διαμεσολαβητής συστήματος που εφαρμόζεται όταν ανεβαίνει το τούνελ θα δεχτεί ένα αίτημα προς 127.0.0.1 και θα το προωθήσει σε έναν απομακρυσμένο διαμεσολαβητή που δεν έχει ιδέα τι εννοούσατε. Μια κενή λίστα εξαιρέσεων μετατρέπει ένα τοπικό αίτημα σε απομακρυσμένο, και το μήνυμα σφάλματος σπάνια το λέει. Προσθέστε τις διευθύνσεις loopback στη λίστα εξαιρέσεων για ολόκληρη τη συνεδρία και όχι για μία εντολή, και μετά επιβεβαιώστε ότι το εργαλείο τη σέβεται πριν καταλήξετε σε οτιδήποτε για το δίκτυο.
Τα πλαίσια εφαρμογών διαβάζουν τις δικές τους μεταβλητές περιβάλλοντος και μερικές φορές το δικό τους αρχείο ρυθμίσεων, οπότε μια εξαίρεση που λειτουργεί για ένα εργαλείο δεν αποδεικνύει τίποτα για το επόμενο. Οι περιηγητές προσθέτουν μια ιδιαιτερότητα: οι περιηγητές που βασίζονται στο Chromium παρακάμπτουν τον διαμεσολαβητή για loopback σιωπηρά, και ένα διακριτικό εξαίρεσης μπορεί να αφαιρέσει αυτή τη συμπεριφορά. Ελέγξτε την πραγματική απόφαση του διαμεσολαβητή αντί να υποθέσετε ότι η ρύθμιση του λειτουργικού συστήματος είναι όλη η ιστορία. Δύο εντολές το ξεκαθαρίζουν για οτιδήποτε εκκινεί από κέλυφος:
curl --noproxy '*' http://127.0.0.1:8080/health
NO_PROXY=localhost,127.0.0.1,::1 your-tool
Η διεύθυνση δέσμευσης καθορίζει ποιος μπορεί να συνδεθεί
Ένας διακομιστής που ξεκινά στο 127.0.0.1 δέχεται συνδέσεις μόνο από εκείνο το μηχάνημα, που συνήθως είναι η σωστή προεπιλογή για ανάπτυξη. Ένας διακομιστής στο 0.0.0.0 απαντά σε κάθε διεπαφή, συμπεριλαμβανομένου του προσαρμογέα VPN, που είναι μεγαλύτερη έκθεση από ό,τι σκοπεύουν οι περισσότεροι. Όταν η κυριολεκτική διεύθυνση loopback αποτύχει, ελέγξτε πρώτα τη δέσμευση.
Κοιτάξτε τον υποδοχέα που ακούει και σημειώστε τη διεύθυνση στην οποία είναι δεσμευμένος, όχι μόνο τη θύρα. Αν μια άλλη συσκευή ή ένα κοντέινερ πρέπει να φτάσει την υπηρεσία μέσω του τούνελ, δεσμεύστε στη συγκεκριμένη διεπαφή που θα χρησιμοποιήσει και επιτρέψτε εκείνη τη θύρα σκόπιμα. Αν τη χρειάζεται μόνο το δικό σας μηχάνημα, κρατήστε τη στενή δέσμευση και διορθώστε τον πελάτη αντί να ανοίξετε τον διακομιστή. Μια προώθηση θύρας ή ένα επίπεδο τούνελ μπορεί να γεφυρώσει τα δύο, αλλά κάθε ένα προσθέτει ένα στοιχείο που θα χρειαστεί τη δική του αποσφαλμάτωση αργότερα.
Πού ένα εργαλείο αποσφαλμάτωσης περιμένει το LAN
Τα εργαλεία αποσφαλμάτωσης κουβαλούν υποθέσεις που ένα τούνελ σπάει σιωπηλά. Μια γέφυρα αποσφαλμάτωσης τηλεφώνου χάνει τη συσκευή της όταν το VPN συλλαμβάνει το υποδίκτυο της συσκευής, οπότε η επανασύνδεση μέσω της διεύθυνσης LAN ή ενός καλωδίου αποφεύγει τη σύγκρουση. Ένας κόμβος αυτοματισμού περιηγητή λήγει όταν ο κόμβος είναι προσβάσιμος μόνο μέσω του διαμεσολαβητή ή όταν ένα τοπικό τείχος προστασίας ρίχνει τη θύρα ελέγχου του. Ένας απομακρυσμένος αποσφαλματωτής μπορεί να απαιτεί αναβάθμιση δικαιωμάτων και διεύθυνση loopback εκεί όπου ο πελάτης ξαναέγραψε τη διαδρομή.
Προσδιορίστε τη θύρα ελέγχου και τη θύρα δεδομένων χωριστά, γιατί συχνά η μία επιβιώνει ενώ η άλλη όχι. Μετά αποφασίστε αν η διόρθωση ανήκει στη ρύθμιση του εργαλείου, σε μια διαδρομή για εκείνο το υποδίκτυο ή έναν κανόνα διαχωρισμένου τούνελ. Η επεξεργασία ενός αρχείου hosts σε κάθε μηχάνημα προγραμματιστή κλιμακώνεται χειρότερα και ξεχνιέται πρώτη. Προτιμήστε τη ρύθμιση που ζει με το προφίλ και μπορεί να την ελέγξει όποιος κατέχει το τούνελ.
Σταματήστε στο πρώτο στάδιο που αποτυγχάνει
Προχωρήστε σε τρία στάδια: επιλύστε το όνομα, ανοίξτε έναν υποδοχέα προς την κυριολεκτική διεύθυνση και μετά αφήστε το εργαλείο να κάνει τη δική του σύνδεση. Κάθε στάδιο εξαλείφει ένα επίπεδο, οπότε η πρώτη αποτυχία ονομάζει το επίπεδο που πρέπει να διορθωθεί και ό,τι ακολουθεί μένει αδοκίμαστο. Γράψτε το αποτέλεσμα πριν αλλάξετε οτιδήποτε, γιατί μια διόρθωση που εφαρμόστηκε πριν από τη μέτρηση δεν διακρίνεται από την τύχη. Αν η πρώτη προσπάθεια αποτύχει και μια επανάληψη πετύχει, το τούνελ μάλλον δεν ήταν έτοιμο όταν ξεκίνησε το εργαλείο.
Αντικαταστήστε τη σταθερή αναμονή με έναν περιορισμένο έλεγχο ετοιμότητας που περιμένει τη διαδρομή, και κρατήστε το στάδιο που αποτυγχάνει στο αρχείο καταγραφής ώστε ο επόμενος να δει πού σταμάτησε. Ένα εργαλείο που ανακάμπτει μόνο του δεν έχει διορθωθεί, είναι τυχερό, και η τύχη τελειώνει στο μηχάνημα κάποιου άλλου. Αλλάξτε το τούνελ τελευταίο και μόνο για το στάδιο που πραγματικά απέτυχε. Αυτή η σειρά είναι και η συντομότερη διαδρομή πίσω σε μια δουλεμένη κατασκευή, γιατί σας σταματά από το να ξαναχτίσετε ένα στοιχείο που δεν συμμετείχε ποτέ.