Niyə VPN arxasında Plex uzaq girişi işləmir və bunu necə düzəltmək olar
VPN arxasında Plex uzaq girişi üç halqaya ehtiyac duyur: provayderdə port yönləndirməsi, yerli pf yönləndirməsi və Plex-ə yazılan eyni xarici port.
VPN defolt marşrutu ələ keçirdiyi anda uzaq giriş əlçatmaz olur, halbuki eyni server LAN-a şikayətsiz yayımlamağa davam edir. Plex jurnallarında bu dəyişikliyi izah edən heç nə yoxdur, çünki xarab olan hissə Plex deyil: o, trafikin artıq düşmədiyi ünvanı elan edir. Bir ictimai ünvanı müştərilər arasında bölüşən provayder portu sizin tunel ünvanınıza yönləndirir və öz maşınınızda nəsə həmin portu Plex dinləyicisinə köçürməlidir. Əlçatanlıq testi yaşıl olmazdan əvvəl üç halqa bir xarici portda razılaşmalıdır.
Zəncirdə üç halqa var və Plex yalnız sonuncunu görür
Provayder ictimai ünvana sahibdir və portlarından birini sizin tunel ünvanınıza xəritələyir. Maşınınız həmin porta gələn hər şeyi götürüb Plex dinləyicisinə yönləndirir; bu dinləyici adətən loopback portu 32400-də oturur. Sonra Plex-ə xarici port nömrəsi deyilir ki, onun öz yoxlaması xarici dünyanın yığdığı ilə uyğun gəlsin.
Hər hansı bir halqanı qırsanız, veb interfeys uzaq girişi əlçatmaz kimi bildirir və hansı halqanın sıradan çıxdığına dair heç bir işarə vermir. Bu sükut insanların serveri yenidən başlatmasının, tətbiqi yenidən quraşdırmasının və parametri dönə-dönə dəyişməsinin səbəbidir, nəticə isə dəyişmir. Üç halqa ayrı-ayrılıqda sıradan çıxır: köhnəlmiş tunel ünvanına yönəlmiş yönləndirmə, yalnız Ethernet interfeysini əhatə edən yönləndirmə və hələ də 32400 saxlayan Plex sahəsi eyni qırmızı mətni verir. Təxmin etmək əvəzinə dinləyicidən bayıra doğru işləyin və nasaz halqa adətən bir dəqiqə içində özünü göstərir.
Birinci halqa: VPN provayderində port yönləndirin
Provayderin port yönləndirmə səhifəsini açın və xəritələmə əlavə edin. Əksər tətbiqlər sizə təsadüfi xarici port verir və daxili portu seçməyə imkan tanıyır, ona görə təyinatı qəbul edin və onu müştərinizin hazırda saxladığı tunel ünvanına yönəldin. Bu nömrəni yazın, çünki sonrakı hər addım onu dəqiq təkrarlayır.
Xəritələməni yenidən qoşulma zamanı dəyişən provayderlər bu qurğunun bir axşam işləyib sonra ölməsinin adi səbəbidir. Bəziləri sabit port istəməyə imkan verir, başqaları hər əl sıxışmasında portu yenidən təyin edir, ona görə başqa heç nəyə toxunmazdan əvvəl cari xəritələmə səhifəsini oxuyun.
İkinci halqa: portu pf ankeri ilə yönləndirin
macOS-da yönləndirmə pf ankerinə aiddir, paketi daşıya bilən hər interfeys üçün bir qayda. Əvvəlcə tunel qaydasını, sonra Ethernet qaydasını yazın, hər ikisində eyni xarici port olsun; əks halda failover zamanı Wi-Fi üzərindən gələn trafik heç bir yerə düşmür.
# /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
Anker faylı özlüyündə heç nə etmir; əsas konfiqurasiya ona istinad etməli və onu yükləməlidir. Bu iki sətri /etc/pf.conf mövcud yönləndirmə qaydalarından əvvəl yerləşdirin, sonra yenidən yükləyin və kernelin həqiqətən nəyi qəbul etdiyini oxuyun.
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
Naməlum portla bağlı sintaksis şikayəti redaktənizdən sağ çıxmış doldurucu deməkdir. Boş nat cədvəli ankerin heç vaxt yüklənmədiyini bildirir və pf cari macOS-da defolt olaraq aktiv olmadığı üçün sudo pfctl -E düzəlişin bir hissəsidir, əlavə seçim deyil. Hər yenidən başlatmadan və hər xəritələmə dəyişikliyindən sonra ankeri yenidən yükləyin. Anker faylını versiya nəzarətində saxlayın ki, provayder portunun dəyişməsi yenidən kəşf məşqi deyil, bir sətirlik düzəliş olsun.
Üçüncü halqa: eyni portu Plex-in içində bərkidin
Plex-də Parametrləri, sonra Serveri, sonra Uzaq Girişi açın və portu əl ilə təyin etməyə imkan verən qutunu işarələyin. 32400 əvəzinə provayderin xarici portunu daxil edin, sonra əlçatanlıq testini işə buraxın. Daha yeni buraxılışlar bu idarəetməni köhnə Connect səhifəsindən uzağa köçürüb, ona görə sahə bələdçinin dediyi yerdə deyilsə, Uzaq Giriş altına baxın.
LAN-dan test etmək heç nə sübut etmir. Eyni Wi-Fi-dakı noutbuk serverə birbaşa çatır, ona görə ictimai yol ölü olsa da yoxlama uğur qazanır. Mobil datada olan telefondan və ya şəbəkənizdən kənar istənilən hostdan istifadə edin və ictimai ünvanı və xarici portu oradan yığın.
Plex-i günahlandırmazdan əvvəl hər halqanı təsdiqləyin
Dinləyicidən başlayın və bayıra doğru gedin. Əgər Plex yalnız LAN ünvanına bağlanıbsa, loopback-a yönəlmiş yönləndirməni nəzərə almayacaq, ona görə ilk əmr onun harada dinlədiyini sübut edən əmrdir.
sudo lsof -nP -iTCP:32400 -sTCP:LISTEN
Sonra yönləndirmənin mövcud olduğunu və provayderə verdiyiniz portla uyğun gəldiyini sübut edin. nat cədvəli hər iki interfeysdə eyni xarici portu göstərməlidir.
sudo pfctl -s nat | grep 41893
nc -vz 203.0.113.42 41893
Son əmri Mac-dan deyil, şəbəkədən kənardan icra edin. Mobil datadan TCP bağlantısı tamamlanır, Plex isə hələ də əlçatmaz göstərirsə, port dinləyiciyə çatır və qalan şübhəli Plex sahəsinə yazılmış nömrədir. Heç nə cavab vermirsə, qırılma yuxarı axındadır: provayder xəritələməsi, tunel ünvanı və ya pf-in aktiv olmaması.