OpenConnect σε macOS: πακέτο, αρχείο έκδοσης ή κλώνος git
Το Homebrew παρέχει ένα δυαδικό αρχείο και ένα σενάριο δικτύου· ένα δέντρο πηγαίου κώδικα δεν παρέχει κανένα από τα δύο μέχρι να τα δημιουργήσετε και να τα εκτελέσετε. Μάθετε ποιο χρησιμοποιεί η σύνδεσή σας.
Τρεις διαδρομές σας δίνουν έναν πελάτη OpenConnect σε Mac και αφήνουν διαφορετικά πράγματα στον δίσκο. Μια φόρμουλα του Homebrew εγκαθιστά ένα μεταγλωττισμένο δυαδικό αρχείο και το σενάριο δικτύου που ρυθμίζει διαδρομές και DNS. Ένα αρχείο έκδοσης σας δίνει πηγαίο κώδικα με παραγόμενο σύστημα κατασκευής. Ένα αντίγραφο git σας δίνει πηγαίο κώδικα χωρίς αυτό. Η επιλογή του λάθος δρόμου είναι ο λόγος που οι άνθρωποι συναντούν ένα configure που λείπει λίγα λεπτά μετά την έναρξη ενός οδηγού.
Δύο διαφορετικά μηχανήματα με το ίδιο όνομα
Η διαδρομή του πακέτου είναι μία μόνο εντολή και είναι η σωστή προεπιλογή για όποιον η δουλειά του είναι η σύνδεση και όχι η ανάπτυξη.
brew install openconnect
Το τι εγκαθιστά έχει μεγαλύτερη σημασία από την εντολή. Παίρνετε το δυαδικό αρχείο του πελάτη και επίσης ένα vpnc-script που καλεί ο πελάτης για να προγραμματίσει τη διεπαφή, τις διαδρομές και τον μετατροπέα. Τα δύο λειτουργούν ως ζεύγος: το δυαδικό αρχείο τερματίζει τη συνεδρία TLS και παραδίδει τη διεπαφή που προκύπτει στο σενάριο, και το σενάριο είναι το κομμάτι που ξέρει πώς θέλει αυτό το λειτουργικό σύστημα να αλλάξει το δίκτυό του.
Αυτός ο διαχωρισμός εξηγεί μια ολόκληρη κατηγορία μπερδεμένων αναφορών. Ένας πελάτης που συνδέεται, αναφέρει επιτυχία και μετά στέλνει κίνηση σε λάθος δρόμο έχει συνήθως πρόβλημα σεναρίου, όχι τούνελ, και η επανεγκατάσταση της φόρμουλας το διορθώνει μόνο επειδή επανεγκαθίσταται και το σενάριο. Ελέγξτε την τρέχουσα υποστήριξη της φόρμουλας για macOS και αρχιτεκτονική CPU πριν σχεδιάσετε με βάση αυτήν· ένα Mac που εκτελεί κέλυφος άψογα μπορεί ακόμη να μην έχει τρέχον πακέτο χτισμένο για αυτό.
Τι κάνει πραγματικά η διαδρομή του πηγαίου κώδικα
Ένα αρχείο έκδοσης φτάνει με παραγόμενο σύστημα κατασκευής, άρα το γνώριμο ./configure υπάρχει από την αρχή. Ένα αντίγραφο git δεν έχει, επειδή τα παραγόμενα αρχεία είναι προϊόντα κατασκευής και όχι πράγματα που αποθηκεύει το έργο. Αυτός είναι ολόκληρος ο λόγος που το ./autogen.sh εμφανίζεται στις οδηγίες για αντιγράμματα και όχι για αρχεία έκδοσης.
./autogen.sh
./configure
make
make install
Κάθε γραμμή κάνει κάτι συγκεκριμένο, και το να ξέρεις ποια απέτυχε γλιτώνει πολλές εικασίες. Το βήμα autogen εκτελεί τα autotools για να παραγάγει το configure. Το βήμα configure ελέγχει τον μεταγλωττιστή, τις βιβλιοθήκες και τις κεφαλίδες που χρειάζεται ο πελάτης, έπειτα γράφει τα makefile που αντανακλούν ό,τι βρήκε. Το βήμα make μεταγλωττίζει. Το βήμα install αντιγράφει τα αποτελέσματα κάπου στη διαδρομή σας.
Σε εκείνη την τελευταία γραμμή οι συμβουλές συνήθως πάνε στραβά. Η εγκατάσταση δεν αποδεικνύει ότι η κατασκευή πέτυχε, και το να την εκτελέσετε σε έναν αυθαίρετο φάκελο λήψης με αυξημένα δικαιώματα είναι καλός τρόπος να σκορπίσετε αρχεία που δεν θα θυμάστε αργότερα. Αν το configure αποτύχει λόγω βιβλιοθήκης που λείπει, η χρήσιμη έξοδος είναι το πρώτο σφάλμα που τύπωσε, όχι οι τελευταίες είκοσι γραμμές του αρχείου καταγραφής.
Η συνεδρία και η ρύθμιση δικτύου είναι χωριστές
Αυτή η διάκριση καθορίζει αν μια σύνδεση μεταφέρει πραγματικά κίνηση. Η εγκαθίδρυση της συνεδρίας TLS σας δίνει μια διεπαφή στην πλευρά του πελάτη. Η εφαρμογή διαδρομών, διευθύνσεων και μετατροπέων DNS είναι δεύτερο βήμα που γίνεται μέσω του σεναρίου δικτύου, και μια κατασκευή που παρήγαγε δυαδικό αρχείο χωρίς το σενάριο έχει μισό πελάτη.
Ο ίδιος διαχωρισμός εξηγεί γιατί δύο μηχανήματα με πανομοιότυπους πελάτες συμπεριφέρονται διαφορετικά: το σενάριο συμβουλεύεται τη ρύθμιση δικτύου του συστήματος, και αυτή η ρύθμιση περιλαμβάνει ό,τι άλλο έχει διεκδικήσει διαδρομή. Όταν ένα διαχωρισμένο τούνελ στέλνει κίνηση κάπου απρόσμενα, το τούνελ κάνει τη δουλειά του και η απόφαση δρομολόγησης είναι αυτό που πρέπει να εξεταστεί.
Έτσι, όταν κάνετε αποσφαλμάτωση, ρωτήστε ποιο επίπεδο απέτυχε. Μια συνεδρία που δεν εγκαθιδρύεται ποτέ είναι πρωτόκολλο, πιστοποιητικό ή διαπιστευτήρια. Μια συνεδρία που εγκαθιδρύεται και δεν προωθεί τίποτα είναι η διεπαφή και το σενάριο. Ένας εγκατεστημένος πελάτης που λειτουργεί από ένα δίκτυο και όχι από άλλο είναι προσβασιμότητα, και καμία ποσότητα επανακατασκευής δεν το αλλάζει.
Μάθετε ποιο δυαδικό αρχείο εκτελείτε
Μια χειροκίνητη κατασκευή και ένα πακέτο δυαδικό αρχείο μπορούν να συνυπάρχουν ειρηνικά, και το ποιο εκτελείται εξαρτάται από τη διαδρομή σας και όχι από τις προθέσεις σας. Μάθετε το πριν αναφέρετε αριθμό έκδοσης σε οποιονδήποτε.
which -a openconnect
openconnect --version
brew list --versions openconnect
Η πρώτη εντολή απαριθμεί κάθε αντίγραφο που βλέπει το κέλυφός σας, με τη σειρά που θα τα δοκίμαζε. Η δεύτερη σας λέει ποιο απάντησε. Όταν αυτό διαφωνεί με ό,τι περιμένετε, εκτελείτε μια κατασκευή από παλιό πείραμα, και καμία αλλαγή ρύθμισης δεν θα τη μετακινήσει.
Η εγκατάσταση πελάτη δεν είναι έγκριση πύλης
Ένα λειτουργικό δυαδικό αρχείο δεν κάνει μια ανάπτυξη συμβατή. Επιβεβαιώστε το πρωτόκολλο της πύλης, τη ροή ταυτοποίησής της και τυχόν απαίτηση διαχειριζόμενης συσκευής με τους ανθρώπους που την κατέχουν, γιατί αυτά είναι γεγονότα πολιτικής και επιπέδου εφαρμογής που μια κατασκευή δεν μπορεί να παράσχει.
Οι οδηγίες κατασκευής του έργου καλύπτουν λεπτομερέστερα την ακολουθία autotools και την απαίτηση του σεναρίου δικτύου, και είναι η αναφορά που πρέπει να ακολουθήσετε και όχι μια ανάρτηση ιστολογίου παλαιότερη από την έκδοση macOS σας. Αν ο στόχος είναι απλώς η σύνδεση, πάρτε το πακέτο, κρατήστε το σενάριο και αφήστε τον μεταγλωττιστή έξω.