Яагаад VPN-ийн ард Plex-ийн алсын хандалт ажиллахгүй байгаа, үүнийг хэрхэн засах вэ
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.