Удаљени приступ прелази у недоступан у тренутку када 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.

Повезани чланци