Γιατί η απομακρυσμένη πρόσβαση του Plex αποτυγχάνει πίσω από VPN και πώς να τη διορθώσετε
Η απομακρυσμένη πρόσβαση του Plex πίσω από VPN χρειάζεται τρεις συνδέσεις: προώθηση θύρας στον πάροχο, τοπική ανακατεύθυνση pf και την ίδια εξωτερική θύρα μέσα στο Plex.
Η απομακρυσμένη πρόσβαση γίνεται μη διαθέσιμη τη στιγμή που ένα VPN αναλαμβάνει την προεπιλεγμένη διαδρομή, ενώ ο ίδιος διακομιστής συνεχίζει να μεταδίδει στο LAN χωρίς παράπονο. Τίποτα στα αρχεία καταγραφής του Plex δεν εξηγεί την αλλαγή, γιατί το Plex δεν είναι το κομμάτι που χάλασε: δημοσιεύει μια διεύθυνση όπου η κίνηση δεν φτάνει πια. Ένας πάροχος που μοιράζει μία δημόσια διεύθυνση μεταξύ πελατών προωθεί μια θύρα στη διεύθυνση της σήραγγάς σας, και κάτι στο δικό σας μηχάνημα πρέπει ακόμη να μετακινήσει αυτή τη θύρα στον ακροατή του Plex. Και οι τρεις συνδέσεις πρέπει να συμφωνήσουν σε μία εξωτερική θύρα πριν γίνει πράσινο το τεστ προσβασιμότητας.
Η αλυσίδα έχει τρεις συνδέσεις και το Plex βλέπει μόνο την τελευταία
Ο πάροχος κατέχει μια δημόσια διεύθυνση και αντιστοιχίζει μία από τις θύρες του στη διεύθυνση της σήραγγάς σας. Το μηχάνημά σας παίρνει ό,τι φτάνει σε αυτή τη θύρα και το ανακατευθύνει στον ακροατή του Plex, που συνήθως κάθεται στη θύρα loopback 32400. Στη συνέχεια λέγεται στο Plex ο αριθμός της εξωτερικής θύρας ώστε ο δικός του έλεγχος να ταιριάζει με αυτό που καλεί ο έξω κόσμος.
Σπάστε οποιονδήποτε μεμονωμένο σύνδεσμο και η διεπαφή ιστού αναφέρει την απομακρυσμένη πρόσβαση ως μη διαθέσιμη, χωρίς καμία ένδειξη για το ποιος σύνδεσμος απέτυχε. Αυτή η σιωπή είναι ο λόγος που οι άνθρωποι επανεκκινούν τον διακομιστή, επανεγκαθιστούν την εφαρμογή και αλλάζουν τη ρύθμιση ξανά και ξανά χωρίς να κουνήσουν τη βελόνα. Οι τρεις σύνδεσμοι αποτυγχάνουν ανεξάρτητα: μια προώθηση που στοχεύει σε παρωχημένη διεύθυνση σήραγγας, μια ανακατεύθυνση που καλύπτει μόνο τη διεπαφή Ethernet και ένα πεδίο Plex που κρατά ακόμη 32400 παράγουν το ίδιο κόκκινο κείμενο. Δουλέψτε προς τα έξω από τον ακροατή αντί να μαντεύετε, και ο σπασμένος σύνδεσμος συνήθως ονομάζεται μόνος του μέσα σε ένα λεπτό.
Πρώτος σύνδεσμος: προωθήστε μια θύρα στον πάροχο VPN
Ανοίξτε τη σελίδα προώθησης θυρών του παρόχου και προσθέστε μια αντιστοίχιση. Οι περισσότερες υλοποιήσεις σας δίνουν μια τυχαία εξωτερική θύρα και σας αφήνουν να διαλέξετε την εσωτερική, οπότε δεχτείτε την ανάθεση και στοχεύστε την στη διεύθυνση σήραγγας που κρατά τώρα ο πελάτης σας. Γράψτε αυτόν τον αριθμό, γιατί κάθε επόμενο βήμα τον επαναλαμβάνει ακριβώς.
Οι πάροχοι που περιστρέφουν την αντιστοίχιση κατά την επανασύνδεση είναι ο συνήθης λόγος που αυτή η ρύθμιση αντέχει ένα βράδυ και μετά πεθαίνει. Κάποιοι σας αφήνουν να ζητήσετε σταθερή θύρα, άλλοι αναθέτουν νέα σε κάθε χειραψία, οπότε διαβάστε την τρέχουσα σελίδα αντιστοίχισης πριν αγγίξετε οτιδήποτε άλλο.
Δεύτερος σύνδεσμος: ανακατευθύνετε τη θύρα με άγκυρα pf
Στο macOS η ανακατεύθυνση ανήκει σε άγκυρα pf, ένας κανόνας ανά διεπαφή που μπορεί να μεταφέρει το πακέτο. Γράψτε πρώτα τον κανόνα της σήραγγας και μετά τον κανόνα Ethernet, με την ίδια εξωτερική θύρα και στους δύο, αλλιώς η κίνηση που φτάνει μέσω Wi-Fi κατά τη διάρκεια μιας εναλλαγής δεν προσγειώνεται πουθενά.
# /etc/pf.anchors/plex.forward
rdr pass on tun0 inet proto tcp from any to any port 41893 -> 127.0.0.1 port 32400
rdr pass on en0 inet proto tcp from any to any port 41893 -> 127.0.0.1 port 32400
Το αρχείο άγκυρας από μόνο του δεν κάνει τίποτα: η κύρια διαμόρφωση πρέπει να το αναφέρει και να το φορτώνει. Βάλτε αυτές τις δύο γραμμές στο /etc/pf.conf πριν από οποιουσδήποτε υπάρχοντες κανόνες ανακατεύθυνσης, μετά επαναφορτώστε και διαβάστε τι δέχτηκε πραγματικά ο πυρήνας.
rdr-anchor "plex"
load anchor "plex" from "/etc/pf.anchors/plex.forward"
sudo pfctl -vnf /etc/pf.anchors/plex.forward
sudo pfctl -f /etc/pf.conf
sudo pfctl -s nat
Ένα παράπονο σύνταξης για άγνωστη θύρα σημαίνει ότι ένα σύμβολο κράτησης θέσης επέζησε της επεξεργασίας σας. Ένας κενός πίνακας nat σημαίνει ότι η άγκυρα δεν φορτώθηκε ποτέ, και εφόσον το pf δεν είναι ενεργοποιημένο από προεπιλογή στο τρέχον macOS, το sudo pfctl -E ανήκει στη διόρθωση και όχι στα προαιρετικά πρόσθετα. Επαναφορτώστε την άγκυρα μετά από κάθε επανεκκίνηση και μετά από κάθε αλλαγή αντιστοίχισης. Κρατήστε το αρχείο άγκυρας υπό έλεγχο εκδόσεων ώστε μια αλλαγή θύρας του παρόχου να γίνει επεξεργασία μιας γραμμής αντί για νέα ανακάλυψη.
Τρίτος σύνδεσμος: καρφιτσώστε την ίδια θύρα μέσα στο Plex
Στο Plex ανοίξτε Ρυθμίσεις, μετά Διακομιστής, μετά Απομακρυσμένη πρόσβαση, και τσεκάρετε το κουτάκι που σας επιτρέπει να ορίσετε θύρα με το χέρι. Εισαγάγετε την εξωτερική θύρα του παρόχου αντί για 32400 και μετά αφήστε το τεστ προσβασιμότητας να τρέξει. Νεότερες εκδόσεις μετακίνησαν αυτό το στοιχείο ελέγχου μακριά από την παλαιότερη σελίδα Connect, οπότε κοιτάξτε κάτω από την Απομακρυσμένη πρόσβαση αν το πεδίο δεν είναι εκεί που ισχυρίζεται ένας οδηγός.
Η δοκιμή από το LAN δεν αποδεικνύει τίποτα απολύτως. Ένας φορητός στο ίδιο Wi-Fi φτάνει στον διακομιστή απευθείας, οπότε ο έλεγχος πετυχαίνει ακόμη και όταν η δημόσια διαδρομή είναι νεκρή. Χρησιμοποιήστε ένα τηλέφωνο με δεδομένα κινητής ή οποιονδήποτε κεντρικό υπολογιστή έξω από το δίκτυό σας και καλέστε τη δημόσια διεύθυνση και την εξωτερική θύρα από εκεί.
Επιβεβαιώστε κάθε σύνδεσμο πριν κατηγορήσετε το Plex
Ξεκινήστε από τον ακροατή και δουλέψτε προς τα έξω. Αν το Plex είναι δεσμευμένο μόνο στη διεύθυνση LAN, θα αγνοήσει μια ανακατεύθυνση προς το loopback, οπότε η πρώτη εντολή είναι αυτή που αποδεικνύει πού ακούει.
sudo lsof -nP -iTCP:32400 -sTCP:LISTEN
Στη συνέχεια, αποδείξτε ότι η ανακατεύθυνση υπάρχει και ταιριάζει με τη θύρα που δώσατε στον πάροχο. Ο πίνακας nat πρέπει να δείχνει την ίδια εξωτερική θύρα και στις δύο διεπαφές.
sudo pfctl -s nat | grep 41893
nc -vz 203.0.113.42 41893
Εκτελέστε αυτή την τελευταία εντολή από έξω από το δίκτυο, όχι από το Mac. Αν η σύνδεση TCP ολοκληρωθεί από δεδομένα κινητής ενώ το Plex δείχνει ακόμη μη διαθέσιμο, η θύρα φτάνει στον ακροατή και ο εναπομένων ύποπτος είναι ο αριθμός που πληκτρολογήθηκε στο πεδίο του Plex. Αν δεν απαντήσει τίποτα απολύτως, το σπάσιμο είναι πιο πάνω: η αντιστοίχιση του παρόχου, η διεύθυνση σήραγγας ή το pf που δεν είναι ενεργοποιημένο.