Неге Plex қашықтан қатынауы VPN артында істемейді және оны қалай түзетуге болады
VPN артында Plex қашықтан қатынауы үш буынды қажет етеді: провайдерде портты қайта бағыттау, жергілікті pf қайта бағыттау және Plex ішіне енгізілетін сол сыртқы порт.
VPN әдепкі маршрутты өз қолына алған сәтте қашықтан қатынау қолжетімсіз болады, ал сол сервер LAN-ға шағымсыз таратуды жалғастырады. Plex журналдарында бұл өзгерісті түсіндіретін ештеңе жоқ, өйткені сынған бөлік Plex емес: ол трафик енді түспейтін мекенжайды жариялайды. Бір жария мекенжайды клиенттер арасында бөлісетін провайдер портты сіздің туннель мекенжайыңызға бағыттайды, ал сіздің машинаңыздағы бір нәрсе әлі де сол портты Plex тыңдаушысына жеткізуі керек. Қолжетімділік тесті жасыл болуы үшін үш буын да бір сыртқы портқа келісуі керек.
Тізбекте үш буын бар, ал Plex тек соңғысын көреді
Провайдерде жария мекенжай бар және ол өз порттарының бірін сіздің туннель мекенжайыңызға сәйкестендіреді. Сіздің машинаңыз осы портқа келгеннің бәрін алып, оны Plex тыңдаушысына қайта бағыттайды, ол әдетте loopback 32400 портында отырады. Содан кейін Plex-ке сыртқы порт нөмірі айтылады, сонда оның өз тексерісі сыртқы әлем теретінге сәйкес келеді.
Кез келген бір буынды үзсеңіз, веб-интерфейс қашықтан қатынауды қолжетімсіз деп хабарлайды, қай буынның істен шыққаны туралы ешбір белгісіз. Осы тыныштық адамдардың серверді қайта іске қосуының, қолданбаны қайта орнатуының және параметрді қайта-қайта ауыстыруының себебі, бірақ нәтиже өзгермейді. Үш буын бір-бірінен тәуелсіз істен шығады: ескірген туннель мекенжайына бағытталған қайта бағыттау, тек Ethernet интерфейсін қамтитын қайта бағыттау және әлі де 32400 ұстап тұрған Plex өрісі бірдей қызыл мәтін шығарады. Болжау орнына тыңдаушыдан сыртқа қарай жұмыс істеңіз, және істен шыққан буын әдетте бір минут ішінде өзін атайды.
Бірінші буын: 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.