Akses jauh bertukar menjadi tidak tersedia pada saat VPN mengambil alih laluan lalai, sementara pelayan yang sama terus menstrim ke LAN tanpa aduan. Tiada apa dalam log Plex yang menjelaskan perubahan itu, kerana Plex bukan bahagian yang rosak: ia menerbitkan alamat yang trafik tidak lagi tiba. Pembekal yang berkongsi satu alamat awam antara pelanggan memajukan port ke alamat terowong anda, dan sesuatu pada mesin anda sendiri masih perlu memindahkan port itu ke pendengar Plex. Ketiga-tiga pautan mesti bersetuju pada satu port luar sebelum ujian kebolehcapaian menjadi hijau.

Rantaian itu mempunyai tiga pautan, dan Plex hanya melihat yang terakhir

Pembekal memiliki alamat awam dan memetakan salah satu portnya ke alamat terowong anda. Mesin anda mengambil apa sahaja yang tiba pada port itu dan mengalihkannya ke pendengar Plex, yang biasanya terletak pada port gelung 32400. Plex kemudian diberitahu nombor port luar supaya siasatannya sendiri sepadan dengan apa yang didail dunia luar.

Putuskan mana-mana satu pautan dan antara muka web melaporkan akses jauh sebagai tidak tersedia, tanpa sebarang petunjuk pautan mana yang gagal. Kesunyian itulah sebabnya orang menghidupkan semula pelayan, memasang semula aplikasi dan menogol tetapan berulang kali tanpa menggerakkan jarum. Ketiga-tiga pautan gagal secara bebas: pemajuan yang ditujukan kepada alamat terowong lapuk, pengalihan yang hanya meliputi antara muka Ethernet, dan medan Plex yang masih memegang 32400 semuanya menghasilkan teks merah yang sama. Bekerjalah dari pendengar ke luar daripada meneka, dan pautan yang rosak biasanya menamakan dirinya dalam satu minit.

Pautan satu: majukan port di pembekal VPN

Buka halaman pemajuan port pembekal dan tambah pemetaan. Kebanyakan pelaksanaan memberi anda port luar rawak dan membenarkan anda memilih yang dalam, jadi terima peruntukan itu dan halakan ke alamat terowong yang dipegang klien anda sekarang. Catat nombor itu, kerana setiap langkah seterusnya mengulanginya dengan tepat.

Pembekal yang memutar pemetaan semasa menyambung semula ialah sebab biasa tetapan ini bertahan satu malam dan kemudian mati. Sesetengah membenarkan anda meminta port stabil, yang lain memperuntukkan yang baharu pada setiap jabat tangan, jadi baca halaman pemetaan semasa sebelum menyentuh apa-apa lagi.

Pautan dua: alihkan port dengan sauh pf

Pada macOS pengalihan tergolong dalam sauh pf, satu peraturan bagi setiap antara muka yang boleh membawa paket. Tulis peraturan terowong dahulu dan peraturan Ethernet kemudian, dengan port luar yang sama pada kedua-duanya, jika tidak trafik yang tiba melalui Wi-Fi semasa failover tidak mendarat di mana-mana.

# /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

Fail sauh itu sendiri tidak melakukan apa-apa; konfigurasi utama mesti merujuknya dan memuatkannya. Letakkan dua baris ini dalam /etc/pf.conf sebelum mana-mana peraturan pengalihan sedia ada, kemudian muat semula dan baca semula apa yang sebenarnya diterima oleh kernel.

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

Aduan sintaks tentang port yang tidak dikenali bermakna pemegang tempat terselamat daripada suntingan anda. Jadual nat kosong bermakna sauh tidak pernah dimuatkan, dan kerana pf tidak didayakan secara lalai pada macOS semasa, sudo pfctl -E tergolong dalam pembetulan dan bukan dalam tambahan pilihan. Muat semula sauh selepas setiap but semula dan selepas setiap perubahan pemetaan. Simpan fail sauh di bawah kawalan versi supaya perubahan port pembekal menjadi suntingan satu baris dan bukannya latihan penemuan semula.

Pautan tiga: pin port yang sama di dalam Plex

Dalam Plex, buka Tetapan, kemudian Pelayan, kemudian Akses Jauh, dan tandakan kotak yang membolehkan anda menentukan port secara manual. Masukkan port luar pembekal dan bukan 32400, kemudian biarkan ujian kebolehcapaian berjalan. Binaan yang lebih baharu telah memindahkan kawalan ini daripada halaman Connect lama, jadi lihat di bawah Akses Jauh jika medan itu tiada di tempat yang didakwa panduan.

Menguji dari LAN tidak membuktikan apa-apa. Komputer riba pada Wi-Fi yang sama mencapai pelayan secara langsung, jadi siasatan berjaya walaupun laluan awam mati. Gunakan telefon dengan data selular, atau mana-mana hos di luar rangkaian anda, dan dail alamat awam serta port luar dari sana.

Sahkan setiap pautan sebelum menyalahkan Plex

Mulakan dari pendengar dan bekerja ke luar. Jika Plex hanya terikat pada alamat LAN, ia akan mengabaikan pengalihan yang ditujukan ke gelung, jadi arahan pertama ialah arahan yang membuktikan di mana ia mendengar.

sudo lsof -nP -iTCP:32400 -sTCP:LISTEN

Seterusnya, buktikan pengalihan itu wujud dan sepadan dengan port yang anda berikan kepada pembekal. Jadual nat sepatutnya menunjukkan port luar yang sama pada kedua-dua antara muka.

sudo pfctl -s nat | grep 41893
nc -vz 203.0.113.42 41893

Jalankan arahan terakhir itu dari luar rangkaian, bukan dari Mac. Jika sambungan TCP selesai dari data selular sementara Plex masih menunjukkan tidak tersedia, port itu sampai ke pendengar dan suspek yang tinggal ialah nombor yang ditaip dalam medan Plex. Jika tiada apa yang menjawab sama sekali, putusnya di hulu: pemetaan pembekal, alamat terowong, atau pf yang tidak didayakan.

Artikel berkaitan