Το OpenVPN δεν συνδέεται στο Wi-Fi του ξενοδοχείου; Δοκιμάστε TCP 443
Ένα προφίλ που δουλεύει στο σπίτι και κολλάει στο Wi-Fi ξενοδοχείου ή πανεπιστημιούπολης χάνει τη μεταφορά του. Αποδείξτε τον αποκλεισμό, μετακινήστε τον listener στο TCP 443 και μάθετε το κόστος.
Ανοίξτε τον client, πατήστε Connect και διαβάστε τη γραμμή κατάστασης αντί για το παράθυρο διαλόγου που ακολουθεί. Ένα προφίλ που κολλάει στο Connecting ή στο Waiting for server μετά από δίκτυο ξενοδοχείου, πανεπιστημιούπολης ή κινητής τηλεφωνίας έχει συνήθως χάσει τη μεταφορά του κάπου στη διαδρομή, όχι τα διαπιστευτήριά του. Το επόμενο χρήσιμο βήμα είναι να μάθετε τι μεταφέρει αυτό το δίκτυο πριν αγγίξετε τον διακομιστή. Μην αλλάξετε τίποτα μέχρι το ίδιο προφίλ να δουλέψει κάπου αλλού.
Δοκιμάστε πρώτα από hotspot κινητού. Αν το τούνελ σηκωθεί εκεί, ο διακομιστής, το πιστοποιητικό και ο λογαριασμός είναι όλα εντάξει, και η μόνη μεταβλητή που μένει είναι το δίκτυο μπροστά σας.
Ξεκινήστε από τον client: διαβάστε τη γραμμή κατάστασης
Η γραμμή κατάστασης λέει ποιο στάδιο απέτυχε. Ένας client κολλημένος στο Connecting εξακολουθεί να επιλύει το όνομα του κεντρικού υπολογιστή ή να ανοίγει το εξωτερικό socket· ένας που φτάνει στο Waiting for server έχει διαδρομή αλλά καμία απάντηση· ένας που πιστοποιείται και μετά πέφτει έχει τελείως διαφορετικό πρόβλημα. Το αρχείο καταγραφής του client και τα δικά του πεδία remote και proto δείχνουν τι προσπαθεί να κάνει, και το --verb 4 σε client γραμμής εντολών εκτυπώνει την ίδια λεπτομέρεια. Η σύγκριση με το δίκτυο μπροστά σας είναι αυτό που μετατρέπει το «το VPN είναι μπλοκαρισμένο» σε συγκεκριμένο ισχυρισμό.
Μετά ελέγξτε το δίκτυο με εργαλεία που έχετε ήδη. Το nc -vzu 203.0.113.10 1194 στέλνει ένα datagram UDP, το curl -v telnet://203.0.113.10:443 αναφέρει αν ολοκληρώνεται μια χειραψία TCP, και ένας browser που φορτώνει σελίδα HTTPS αποδεικνύει μόνο ότι το εξερχόμενο 443 φτάνει σε αυτόν τον έναν κεντρικό υπολογιστή. Οι μικροί έλεγχοι απαντούν σε αυτό που ο client VPN δεν μπορεί: ποια θύρα και ποιο πρωτόκολλο φεύγουν καθόλου από αυτό το δίκτυο.
Τρεις συμπεριφορές δικτύου μοιάζουν μεταξύ τους από τον client και απαιτούν διαφορετικές απαντήσεις. Το εξερχόμενο 443 μπορεί να είναι ανοιχτό, να επιτρέπεται μόνο κάποιο proxy, ή το 443 να προωθείται διαφανώς σε ένα κουτί επιθεώρησης που δεν μπορεί να διαβάσει τι μεταφέρει. Το πρώτο διορθώνεται με την αλλαγή προφίλ παρακάτω, το δεύτερο με τις ρυθμίσεις proxy, και το τρίτο μπορεί να ολοκληρώσει μια χειραψία και μετά να κολλήσει όταν ο επιθεωρητής αποφασίσει ότι δεν του αρέσει η ροή. Το να ξέρετε ποια αντιμετωπίζετε είναι η διαφορά ανάμεσα σε μια αλλαγή δέκα λεπτών και ένα απόγευμα επανεγκατάστασης clients.
Μετακινήστε τον listener και το προφίλ μαζί
Στην πλευρά του διακομιστή, ρυθμίστε τον listener σε αυτό που επιτρέπει το δίκτυο: port 443 και proto tcp στη διαμόρφωση του διακομιστή, μετά επανεκκινήστε την υπηρεσία και επιβεβαιώστε το socket με ss -lntp. Στην πλευρά του client, το προφίλ πρέπει να συμφωνεί, γιατί η μεταφορά και η θύρα βρίσκονται έξω από το τούνελ: proto tcp και port 443 στο .ovpn, ή τα αντίστοιχα πεδία στην οθόνη ρυθμίσεων της εφαρμογής. Ένα προφίλ που ακόμη στοχεύει στο UDP 1194 αποτυγχάνει ακριβώς όπως πριν, και ο πειρασμός είναι να κατηγορήσετε ένα firewall που έχει ήδη διορθωθεί. Αν ο ίδιος κεντρικός υπολογιστής απαντά και σε HTTPS στο 443, οι δύο listeners δεν μπορούν να μοιραστούν αυτή τη διεύθυνση και το πρωτόκολλο· δώστε στο VPN μια δεύτερη διεύθυνση ή βάλτε μπροστά έναν αποπολυπλέκτη.
Παρακολουθήστε την πρώτη σύνδεση με tcpdump -ni any port 443 και στα δύο άκρα. Πακέτα που φεύγουν από τον client και δεν φτάνουν ποτέ σημαίνουν ότι το δίκτυο φιλτράρει τελικά, ή ότι η διεύθυνση στο προφίλ δεν είναι αυτή που υποθέτετε. Πακέτα που φτάνουν χωρίς απάντηση σας γυρίζουν στο αρχείο καταγραφής του διακομιστή, όπου μια αναντιστοιχία πρωτοκόλλου εμφανίζεται αμέσως ως πακέτο που απορρίπτεται.
Όταν μόνο ένα proxy βγαίνει από το δίκτυο
Μερικά δίκτυα φιλοξενουμένων δεν επιτρέπουν τίποτα παρά μόνο ένα HTTP proxy, που είναι διαφορετικός περιορισμός από μια κλειστή θύρα και αποκλείει περισσότερα από το OpenVPN. Clients που μιλούν μόνο PPTP, L2TP/IPsec ή γυμνό IPsec δεν έχουν τρόπο να περάσουν, γιατί αυτά τα σχέδια περιμένουν το εξωτερικό τους πρωτόκολλο να φτάσει απευθείας στον διακομιστή. Το OpenVPN μπορεί, με http-proxy proxy.example.net 8080 στο προφίλ του client, εφόσον το proxy επιτρέπει τη μέθοδο CONNECT στη θύρα σας. Ένα proxy SOCKS είναι ακόμη ευκολότερο, γιατί προωθεί τη ροή χωρίς να νοιάζεται τι υπάρχει μέσα.
Όπου ο client δεν υποστηρίζει proxy, ένα τούνελ SSH πάνω από το 443 είναι συνήθως αυτό που μένει. Προσθέτει ένα δεύτερο επίπεδο, και ο διαχειριστής του δικτύου μπορεί να έχει άποψη γι' αυτό, οπότε αντιμετωπίστε το ως γέφυρα για ένα ταξίδι και όχι ως αρχιτεκτονική.
Υπολογίστε το κόστος της εναλλακτικής πριν την κρατήσετε
Το TCP μέσα σε TCP έχει γνωστό κόστος. Όταν η εξωτερική σύνδεση είναι TCP και το φορτίο είναι επίσης TCP, ένα χαμένο τμήμα προκαλεί επαναμετάδοση και στα δύο επίπεδα, και η εσωτερική σύνδεση υποχωρεί από μια απώλεια που δεν βλέπει. Η περιήγηση το αντέχει· οι διαδραστικές συνεδρίες και οι κλήσεις το νιώθουν. Κρατήστε τον listener TCP 443 ως εναλλακτική για δίκτυα που τον απαιτούν, και αφήστε το UDP ως προεπιλογή για ό,τι ακόμη το περνά.
Καταγράψτε την επιλογή στο όνομα του προφίλ και στις σημειώσεις υποστήριξης: ποια θύρα, ποιο πρωτόκολλο και ποιο δίκτυο την προκάλεσε. Μετά ρωτήστε τον διαχειριστή του δικτύου αν αυτή η θύρα μένει ανοιχτή μετά την επόμενη ανανέωση εξοπλισμού, γιατί μια εναλλακτική που εξαφανίζεται σιωπηλά είναι χειρότερη από καμία.