Zakaj oddaljeni dostop Plexa ne deluje za VPN in kako to popraviti
Oddaljeni dostop Plexa za VPN potrebuje tri člene: posredovanje vrat pri ponudniku, lokalno preusmeritev pf in ista zunanja vrata, vnesena v Plex.
Oddaljeni dostop se preklopi na nedosegljiv v trenutku, ko VPN prevzame privzeto pot, medtem ko isti strežnik še naprej brez pritožb pretaka v LAN. Nič v dnevnikih Plexa ne pojasni spremembe, ker Plex ni del, ki se je pokvaril: objavlja naslov, kamor promet ne prihaja več. Ponudnik, ki si en javni naslov deli med strankami, posreduje vrata na naslov vašega tunela, in nekaj na vašem lastnem stroju mora ta vrata še vedno premakniti do poslušalca Plexa. Vsi trije členi se morajo dogovoriti za ena zunanja vrata, preden test dosegljivosti postane zelen.
Veriga ima tri člene, in Plex vidi le zadnjega
Ponudnik ima javni naslov in preslika ena od svojih vrat na naslov vašega tunela. Vaš stroj vzame vse, kar prispe na ta vrata, in preusmeri do poslušalca Plexa, ki običajno sedi na povratnih vratih 32400. Nato Plexu sporočijo številko zunanjih vrat, da se njegova lastna preveritev ujema s tem, kar izbere zunanji svet.
Prekinite kateri koli posamezen člen in spletni vmesnik poroča oddaljeni dostop kot nedosegljiv, brez najmanjše namige, kateri člen je odpovedal. Ta tišina je razlog, da ljudje znova zaženejo strežnik, znova namestijo aplikacijo in vedno znova preklapljajo nastavitev, ne da bi premaknili iglo. Trije členi odpovedujejo neodvisno: posredovanje, usmerjeno na zastarel naslov tunela, preusmeritev, ki pokriva le vmesnik Ethernet, in polje Plexa, ki še vedno vsebuje 32400, dajo enako rdeče besedilo. Delajte od poslušalca navzven namesto ugibanja, in pokvarjeni člen se običajno poimenuje sam v eni minuti.
Prvi člen: posredujte vrata pri ponudniku VPN
Odprite stran za posredovanje vrat pri ponudniku in dodajte preslikavo. Večina izvedb vam da naključna zunanja vrata in vam dovoli izbrati notranja, zato sprejmite dodelitev in jo usmerite na naslov tunela, ki ga ima vaš odjemalec zdaj. Zapišite si to številko, ker vsak naslednji korak ponovi natanko to.
Ponudniki, ki preslikavo pri ponovnem povezovanju vrtijo, so običajen razlog, da ta nastavitev zdrži en večer in nato umre. Nekateri vam dovolijo zahtevati stabilna vrata, drugi dodelijo nova ob vsakem rokovanju, zato preberite trenutno stran s preslikavo, preden se dotaknete česar koli drugega.
Drugi člen: preusmerite vrata s sidrom pf
V macOS preusmeritev spada v sidro pf, eno pravilo na vmesnik, ki lahko nosi paket. Najprej napišite pravilo tunela, nato pravilo Ethernet, z istimi zunanjimi vrati na obeh, sicer promet, ki pride po Wi-Fi med preklopom, ne pristane nikjer.
# /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 naredi ničesar; glavna konfiguracija se mora nanjo sklicevati in jo naložiti. Vstavite ti dve vrstici v /etc/pf.conf pred vsemi obstoječimi pravili preusmeritve, nato znova naložite in preberite, kaj je jedro dejansko sprejelo.
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
Pritožba zaradi skladnje o neznanih vratih pomeni, da je vaš popravek preživel nadomestni znak. Prazna tabela nat pomeni, da sidro ni bilo nikoli naloženo, in ker pf v trenutnem macOS ni privzeto omogočen, sudo pfctl -E spada k popravku in ne k izbirnim dodatkom. Znova nalagajte sidro po vsakem ponovnem zagonu in po vsaki spremembi preslikave. Imejte datoteko sidra pod nadzorom različic, da sprememba vrat pri ponudniku postane urejanje ene vrstice namesto novega odkrivanja.
Tretji člen: pritrdite ista vrata znotraj Plexa
V Plexu odprite Nastavitve, nato Strežnik, nato Oddaljeni dostop, in označite polje, ki vam omogoča ročno določitev vrat. Vnesite zunanja vrata ponudnika namesto 32400, nato pustite test dosegljivosti. Novejše različice so ta nadzor premaknile s starejše strani Connect, zato poglejte pod Oddaljeni dostop, če polja ni tam, kjer trdi vodnik.
Preizkušanje iz LAN ne dokaže prav ničesar. Prenosnik v istem Wi-Fi doseže strežnik neposredno, zato preveritev uspe tudi, ko je javna pot mrtva. Uporabite telefon z mobilnimi podatki ali kateri koli gostitelj zunaj vašega omrežja in od tam pokličite javni naslov in zunanja vrata.
Potrdite vsak člen, preden okrivite Plex
Začnite pri poslušalcu in delajte navzven. Če je Plex vezan le na naslov LAN, bo prezrl preusmeritev na povratno zanko, zato je prvi ukaz tisti, ki dokaže, kje posluša.
sudo lsof -nP -iTCP:32400 -sTCP:LISTEN
Nato dokažite, da preusmeritev obstaja in se ujema z vrati, ki ste jih dali ponudniku. Tabela nat bi morala prikazati ista zunanja vrata na obeh vmesnikih.
sudo pfctl -s nat | grep 41893
nc -vz 203.0.113.42 41893
Zaženite ta zadnji ukaz zunaj omrežja, ne z Maca. Če se povezava TCP dokonča z mobilnih podatkov, medtem ko Plex še vedno kaže nedosegljivost, vrata dosežejo poslušalca in preostali osumljenec je številka, vnesena v polje Plexa. Če se nič sploh ne odzove, je prekinitev višje: preslikava pri ponudniku, naslov tunela ali neomogočen pf.