Zašto Plex udaljeni pristup ne radi iza VPN-a i kako to popraviti
Plex udaljeni pristup iza VPN-a treba tri veze: prosljeđivanje porta kod pružatelja, lokalno pf preusmjeravanje i isti vanjski port upisan u Plex.
Udaljeni pristup prelazi u nedostupno onog trenutka kada VPN preuzme zadanu rutu, dok isti poslužitelj nastavlja strujati u LAN bez pritužbe. Ništa u Plex zapisima ne objašnjava promjenu, jer Plex nije dio koji se pokvario: on objavljuje adresu na koju promet više ne slijeće. Pružatelj koji dijeli jednu javnu adresu među klijentima prosljeđuje port na adresu vašeg tunela, a nešto na vašem vlastitom stroju ipak mora premjestiti taj port na Plex osluškivač. Sve tri veze moraju se složiti oko jednog vanjskog porta prije nego test dostupnosti postane zelen.
Lanac ima tri veze, a Plex vidi samo posljednju
Pružatelj posjeduje javnu adresu i preslikava jedan od svojih portova na adresu vašeg tunela. Vaš stroj preuzima sve što stigne na taj port i preusmjerava to na Plex osluškivač, koji obično sjedi na loopback portu 32400. Zatim se Plexu kaže broj vanjskog porta kako bi se njegova vlastita provjera poklopila s onim što vanjski svijet bira.
Prekinite bilo koju pojedinačnu vezu i web sučelje prijavljuje udaljeni pristup kao nedostupan, bez ikakvog nagovještaja koja je veza otkazala. Ta tišina je razlog zašto ljudi ponovno pokreću poslužitelj, ponovno instaliraju aplikaciju i iznova prebacuju postavku bez pomaka. Tri veze otkazuju neovisno: prosljeđivanje usmjereno na zastarjelu adresu tunela, preusmjeravanje koje pokriva samo Ethernet sučelje i Plex polje koje još drži 32400 daju identičan crveni tekst. Radite od osluškivača prema van umjesto nagađanja, i pokvarena veza obično se sama imenuje unutar minute.
Prva veza: proslijedite port kod VPN pružatelja
Otvorite stranicu za prosljeđivanje portova pružatelja i dodajte preslikavanje. Većina implementacija daje vam slučajan vanjski port i dopušta odabir unutarnjeg, pa prihvatite dodjelu i usmjerite je na adresu tunela koju vaš klijent trenutačno drži. Zapišite taj broj, jer svaki kasniji korak ponavlja ga točno.
Pružatelji koji izmjenjuju preslikavanje pri ponovnom spajanju uobičajen su razlog zašto ovaj postav preživi večer i onda umre. Neki dopuštaju zatražiti stabilan port, drugi dodjeljuju novi pri svakom rukovanju, pa pročitajte trenutnu stranicu preslikavanja prije nego dotaknete bilo što drugo.
Druga veza: preusmjerite port pf sidrom
Na macOS-u preusmjeravanje pripada pf sidru, jedno pravilo po sučelju koje može nositi paket. Napišite pravilo tunela prvo, a Ethernet pravilo drugo, s istim vanjskim portom na obama, inače promet koji stiže preko Wi-Fi tijekom prebacivanja slijeće nigdje.
# /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
Datoteka sidra sama po sebi ne čini ništa; glavna konfiguracija mora se na nju referencirati i učitati je. Stavite ova dva retka u /etc/pf.conf prije bilo kojih postojećih pravila preusmjeravanja, zatim ponovno učitajte i pročitajte što je jezgra doista prihvatila.
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
Sintaksna pritužba na nepoznati port znači da je rezervirano mjesto preživjelo vašu izmjenu. Prazna nat tablica znači da se sidro nikad nije učitalo, a budući da pf nije omogućen prema zadanim postavkama na trenutačnom macOS-u, sudo pfctl -E pripada popravku, a ne neobveznim dodacima. Ponovno učitajte sidro nakon svakog ponovnog pokretanja i nakon svake promjene preslikavanja. Držite datoteku sidra pod kontrolom verzija kako bi promjena porta kod pružatelja postala izmjena jednog retka, a ne novo otkrivanje.
Treća veza: prikvačite isti port unutar Plexa
U Plexu otvorite Postavke, zatim Poslužitelj, zatim Udaljeni pristup i označite okvir koji vam dopušta ručno određivanje porta. Unesite vanjski port pružatelja umjesto 32400, zatim pustite test dostupnosti. Novije verzije premjestile su tu kontrolu sa starije stranice Connect, pa potražite pod Udaljeni pristup ako polje nije tamo gdje vodič tvrdi.
Testiranje iz LAN-a ne dokazuje baš ništa. Prijenosnik na istom Wi-Fi-ju dolazi do poslužitelja izravno, pa provjera uspijeva čak i dok je javni put mrtav. Upotrijebite telefon na mobilnim podacima ili bilo kojeg hosta izvan svoje mreže i odande birajte javnu adresu i vanjski port.
Potvrdite svaku vezu prije nego okrivite Plex
Počnite od osluškivača i radite prema van. Ako je Plex vezan samo na LAN adresu, ignorirat će preusmjeravanje usmjereno na loopback, pa je prva naredba ona koja dokazuje gdje sluša.
sudo lsof -nP -iTCP:32400 -sTCP:LISTEN
Zatim dokažite da preusmjeravanje postoji i da odgovara portu koji ste predali pružatelju. nat tablica treba pokazati isti vanjski port na obama sučeljima.
sudo pfctl -s nat | grep 41893
nc -vz 203.0.113.42 41893
Pokrenite tu posljednju naredbu izvan mreže, ne s Maca. Ako se TCP veza dovrši s mobilnih podataka dok Plex još pokazuje nedostupno, port dolazi do osluškivača i preostali sumnjivac je broj upisan u Plex polje. Ako ništa uopće ne odgovara, prekid je uzvodno: preslikavanje kod pružatelja, adresa tunela ili pf koji nije omogućen.