Η θύρα 1194 χρησιμοποιείται ήδη: ποιος κατέχει αυτή την υποδοχή OpenVPN;
Το σφάλμα ότι η διεύθυνση χρησιμοποιείται ανήκει στην τοπική σύνδεση. Συγκρίνετε μεταφορά, διεύθυνση και χώρο ονομάτων πριν αλλάξετε θύρες ή σταματήσετε τη λάθος διεργασία.
Ξεκινήστε το ίδιο προφίλ διακομιστή δύο φορές και η δεύτερη διεργασία τερματίζεται με σφάλμα ότι η διεύθυνση χρησιμοποιείται για τη θύρα 1194. Στη συνήθη περίπτωση, η διαγνωστική εκκίνηση δημιούργησε τη σύγκρουση και το αρχικό στιγμιότυπο εξακολουθεί να εξυπηρετεί τους πελάτες απόλυτα σωστά. Αυτή η ιστορία εξηγεί μεγάλο μέρος αυτών των αναφορών και αξίζει να την αναγνωρίσετε πριν επανεκκινήσετε οτιδήποτε. Είναι επίσης η φθηνότερη εκδοχή επίλυσης.
Το σφάλμα περιγράφει μια τοπική σύνδεση και τίποτα πέρα από αυτήν. Δεν αποτελεί απόδειξη ότι ένας πάροχος μπλοκάρει τη θύρα, ότι ένας πελάτης έστειλε λάθος κωδικό πρόσβασης ή ότι η αλυσίδα πιστοποιητικών είναι σπασμένη.
Διαβάστε το ακριβές σφάλμα σύνδεσης
Δύο σφάλματα αυτής της οικογένειας σημαίνουν διαφορετικά πράγματα και η σύγχυσή τους σας στέλνει στο λάθος επίπεδο. Το «Η διεύθυνση χρησιμοποιείται ήδη» λέει ότι ένα άλλο socket κρατά το τελικό σημείο που ζητήσατε. Το «Η διεύθυνση δεν είναι διαθέσιμη» λέει ότι η διεύθυνση που ζητήσατε δεν υπάρχει ακόμη σε αυτόν τον κεντρικό υπολογιστή, κάτι που είναι πρόβλημα ετοιμότητας και όχι διπλότυπο.
systemctl status openvpn-server@lab --no-pager
journalctl -u openvpn-server@lab -n 20 --no-pager
Αντιγράψτε το κείμενο του σφάλματος πριν αλλάξετε οτιδήποτε, συμπεριλαμβανομένης της διεύθυνσης και της θύρας που αναφέρει. Μια υπηρεσία που περιμένει να εμφανιστεί μια διεπαφή θα καταγράφει το δεύτερο σφάλμα επανειλημμένα και στη συνέχεια θα συνδεθεί επιτυχώς μόλις υπάρξει η διεύθυνση· μια υπηρεσία που καταγράφει το πρώτο σφάλμα δεν θα πετύχει ποτέ μέχρι να επιλυθεί ο διπλότυπος. Η καταγραφή του ποιο από τα δύο είδατε δεν κοστίζει τίποτα και γλιτώνει μια χαμένη αναζήτηση διεπαφής.
Απογράψτε το socket, όχι τη θύρα
Ένας αριθμός θύρας είναι ένα ελλιπές απόθεμα. Το τελικό σημείο είναι μια μεταφορά, μια οικογένεια διευθύνσεων, μια τοπική διεύθυνση και μια θύρα, όλα μέσα σε έναν χώρο ονομάτων δικτύου. Ένας ακροατής UDP και ένας ακροατής TCP στον ίδιο αριθμό είναι διαφορετικά socket και δύο διεργασίες στον ίδιο αριθμό σε διαφορετικούς χώρους ονομάτων δεν συναντιούνται ποτέ.
ss -lunp | grep -F ':1194'
ss -ltnp | grep -F ':1194'
ss -lunp 'sport = :1194'
Εκτελέστε πρώτα τη μεταφορά που χρησιμοποιεί πραγματικά το προφίλ. Στη συνέχεια κοιτάξτε τη στήλη της τοπικής διεύθυνσης και όχι μόνο τον αριθμό: μια σύνδεση μπαλαντέρ καλύπτει κάθε τοπική διεύθυνση, οπότε μια δεύτερη διεργασία που ζητά μια συγκεκριμένη διεύθυνση μπορεί να συγκρουστεί μαζί της ακόμη και αν οι εκτυπωμένες συμβολοσειρές διαφέρουν. Οι επιλογές επαναχρησιμοποίησης socket και οι κανόνες της πλατφόρμας καθορίζουν το ακριβές αποτέλεσμα, γι’ αυτό αυτό πρέπει να είναι μια παρατήρηση και όχι ένας κανόνας που εφαρμόζετε σε κάθε ανάπτυξη.
Βρείτε ποια διεργασία το κατέχει
Τα αριθμητικά τελικά σημεία μαζί με τις πληροφορίες διεργασίας προσδιορίζουν τον κάτοχο όταν το επιτρέπουν τα προνόμιά σας, και ο κάτοχος είναι αυτό που χρειάζεστε, όχι το όνομα του προγράμματος. Δύο διεργασίες OpenVPN μπορούν να εκτελούν διαφορετικά προφίλ και αυτή που κρατά τον ακροατή μπορεί να είναι η λιγότερο αναμενόμενη.
sudo ss -lunp 'sport = :1194'
sudo fuser -v -n udp 1194
Συγκρίνετε αυτό που βρίσκετε με τον διαχειριστή υπηρεσιών, ένα περιβάλλον εκτέλεσης κοντέινερ ή μια διεργασία τερματικού που έμεινε από προηγούμενη δοκιμή. Η απουσία λεπτομερειών διεργασίας δεν είναι απόδειξη ότι το socket δεν έχει κάτοχο· συνήθως σημαίνει ότι το ερώτημα εκτελέστηκε χωρίς επαρκή άδεια. Παρομοίως, μια λίστα μόνο TCP δεν αίρει μια σύγκρουση UDP, οπότε εξετάστε τη μεταφορά που αναφέρεται στο σφάλμα. Ένα όνομα διεργασίας μόνο του δεν λέει ποτέ ποιο προφίλ φορτώθηκε και το προφίλ είναι αυτό που καθορίζει το τελικό σημείο.
Ένας κάτοχος ή δύο σχεδιασμένα στιγμιότυπα
Αν η ανάπτυξη προορίζει έναν διακομιστή, κρατήστε έναν κάτοχο κύκλου ζωής και διαβάστε το ημερολόγιο αυτού του στιγμιότυπου ή το ρυθμισμένο αρχείο καταγραφής αντί να εκκινήσετε ένα δεύτερο αντίγραφο για να το παρακολουθείτε. Όταν μια ελεγχόμενη εκτέλεση στο προσκήνιο είναι πραγματικά απαραίτητη, σταματήστε σκόπιμα το διαχειριζόμενο στιγμιότυπο και λάβετε υπόψη τους πελάτες που εξυπηρετεί πριν το κάνετε.
Αν προορίζονται δύο στιγμιότυπα, δώστε τους διακριτούς ακροατές και διακριτά όλα τα υπόλοιπα: πισίνες διευθύνσεων, εικονικές διεπαφές, πολιτική δρομολόγησης και ιδιοκτησία διαμόρφωσης. Μια διαφορετική θύρα μόνη της δεν διαχωρίζει τίποτα παρά μόνο το socket και οι δύο διακομιστές θα εξακολουθήσουν να διαπληκτίζονται για την ίδια πισίνα και τις ίδιες διαδρομές.
Τρεις συντομεύσεις αξίζει να ονομαστούν γιατί εμφανίζονται σε κάθε συζήτηση για αυτό το σφάλμα. Μην σκοτώνετε ένα αυθαίρετο PID που μοιάζει με τον ένοχο. Μην ενεργοποιείτε τον διαμοιρασμό socket για να φιμώσετε το μήνυμα. Μην μετατρέπετε ένα προφίλ διακομιστή σε μη δεσμευμένη διαμόρφωση τύπου πελάτη επειδή αυτό κάνει το σφάλμα σύνδεσης να εξαφανιστεί· ο διακομιστής γίνεται μη προσβάσιμος με τρόπο που είναι δυσκολότερο να διαγνωστεί από την αρχική σύγκρουση.
Η αλλαγή της θύρας είναι νόμιμη απάντηση μόνο όταν ο νέος ακροατής αποτελεί μέρος εγκεκριμένης σχεδίασης, που περιλαμβάνει τον κανόνα προώθησης και το τελικό σημείο του πελάτη. Αν δεν ενημερώθηκαν, μεταφέρατε τη σύγκρουση σε ένα σημείο όπου κανείς δεν μπορεί να τη βρει.
Επαληθεύστε τη σύνδεση πριν από οτιδήποτε άλλο
Μετά τη στοχευμένη διόρθωση, επιβεβαιώστε ότι το επιδιωκόμενο στιγμιότυπο είναι ενεργό, ότι ο ακροατής του εμφανίζεται στη μεταφορά που περιμένετε και ότι ένας πελάτης μπορεί να συνδεθεί. Μια επιτυχής σύνδεση ολοκληρώνει μόνο το στάδιο του τοπικού socket· δεν πιστοποιεί τίποτα για την αυθεντικοποίηση ούτε για την κίνηση αφού σηκωθεί το τούνελ.
ss -lunp 'sport = :1194'
systemctl is-active openvpn-server@lab
journalctl -u openvpn-server@lab -f
Αν το socket υπάρχει και ο πελάτης εξακολουθεί να αποτυγχάνει, το υπόλοιπο πρόβλημα είναι κατάντη και το σφάλμα σύνδεσης είναι πλέον ιστορία. Αυτός ο διαχωρισμός είναι όλο το νόημα του να διαβάσετε πρώτα το ακριβές μήνυμα: ένα σφάλμα, ένα επίπεδο, ένας κάτοχος. Διαβάστε το έτσι και το επόμενο σύμπτωμα ξεκινά από γνωστή κατάσταση και όχι από εικασία.