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

Το σφάλμα συμβαίνει πριν μιλήσει οποιοσδήποτε peer

Η δημιουργία μιας διεπαφής είναι ένα μόνο αίτημα netlink στον πυρήνα για συσκευή τύπου wireguard. Ο πυρήνας είτε έχει οδηγό που κατανοεί αυτόν τον τύπο είτε όχι, και η απάντηση επιστρέφει αμέσως. Κανένα πακέτο δεν φεύγει από το μηχάνημα σε αυτό το βήμα, γι' αυτό οι διευθύνσεις άκρων και τα κλειδιά του διακομιστή δεν μπορούν να είναι η αιτία.

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

Ποια υλοποίηση πρέπει να κατέχει τη συσκευή

Δύο υλοποιήσεις μπορούν να απαντήσουν σε αυτό το αίτημα. Το module μέσα στον πυρήνα καταχωρίζει τον τύπο συσκευής wireguard, και μια υλοποίηση στον χώρο χρήστη όπως το wireguard-go παρέχει την ίδια διεπαφή με διαφορετικό μηχανισμό. Αν το module λείπει, ο πυρήνας απορρίπτει το αίτημα με σφάλμα μη υποστηριζόμενης συσκευής, και η λύση είναι είτε να φορτωθεί το module είτε να κατευθυνθούν τα εργαλεία στην υλοποίηση στον χώρο χρήστη.

Ελέγξτε τι υπάρχει πραγματικά πριν επιλέξετε ανάμεσά τους. Η πρώτη εντολή δείχνει αν το module είναι φορτωμένο και η δεύτερη ρωτά απευθείας τον πυρήνα:

lsmod | grep wireguard
ip link add wgtest0 type wireguard

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

Error textWhat refusedNext step
Unknown device type or operation not supportedThe kernel has no wireguard driverLoad the module or use the userspace implementation
Operation not permittedMissing privilegeUse the service context or grant the capability
File existsThe name is already in useInspect the owner before touching it
No such device in a containerNo tunnel device or capabilityAdd the device and NET_ADMIN to the container

Δικαιώματα και όρια του container

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

Μέσα σε ένα container το όριο διπλασιάζεται. Το container χρειάζεται πρόσβαση στη συσκευή σήραγγας και την ικανότητα να τη ρυθμίσει, και οι σημαίες που το επιτρέπουν είναι οι ίδιες που χρησιμοποιεί ένα container VPN σε Linux. Ένας περιορισμένος επισκέπτης που μπορεί κανονικά να περιηγηθεί στον ιστό εξακολουθεί να μην μπορεί να δημιουργήσει διεπαφή, γιατί η περιήγηση δεν χρειάζεται αυτή την ικανότητα. Δώστε την ικανότητα στην υπηρεσία που τη χρειάζεται και όχι σε κάθε συνεδρία του κεντρικού υπολογιστή.

Λύστε τη σύγκρουση ονομάτων και δοκιμάστε ξανά

Μια διεπαφή που υπάρχει ήδη δεν είναι αυτόματα κατάλοιπο. Κάποιος άλλος διαχειριστής μπορεί να κατέχει το όνομα και να το χρησιμοποιεί αυτή τη στιγμή, γι' αυτό ελέγξτε την πριν διαγράψετε οτιδήποτε:

ip link show wg0
sudo wg show wg0

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

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

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