Senarai port untuk perkhidmatan VPN disalin antara halaman perbandingan tanpa butiran yang menentukan sama ada ia penting: siapa yang memulakan sambungan. Peraturan yang membenarkan TCP 443 keluar tidak mengatakan apa-apa tentang sama ada hos lain boleh mencapai pendengar pada mesin anda. Tulis tiga keperluan berasingan sebelum membandingkan satu pelan pun, dan tandakan yang mana benar-benar diperlukan oleh tugas anda. Kebanyakan perbandingan mengecil menjadi satu soalan pendek sebaik sahaja helaian itu wujud.

Asingkan keperluan sebelum anda membaca mana-mana senarai port

Tiga baris merangkumi hampir setiap kes: mencapai destinasi di luar terowong, menerbitkan sesuatu supaya orang lain boleh bersambung masuk, dan membawa terowong itu sendiri. Setiap baris gagal atas sebab yang berbeza, dan dasar penyedia yang memenuhi satu boleh membiarkan dua yang lain tidak tersentuh. Meletakkan tugas anda pada baris yang betul mengambil masa lima minit dan menjimatkan perdebatan kemudian.

LineWho starts itWhat can block itQuestion for the provider
Outbound destinationYour applicationEgress filter on the exit nodeIs this protocol and port allowed to that destination?
Inbound publishingA remote peerNo mapping, no public address, short lifetimeWhich protocol, which external port, and how long does the mapping last?
Tunnel transportYour client to the gatewayThe access network drops that protocolDoes the client offer a fallback the local network permits?

Kenyataan pemasaran mengaburkan tiga baris itu dengan sengaja. Kebenaran P2P menerangkan dasar destinasi, alamat khusus menerangkan alamat, dan dakwaan tiada sekatan port biasanya bermaksud pelan itu tidak menyenaraikannya. Tiada satu pun frasa itu menjawab yang lain.

Pilih satu aliran konkrit dan tulis sebagai ayat: pemula, pengangkutan, port, keluarga alamat, arah. Klien sandaran malam yang memuat naik ke hos jauh hanya keluar. Pelayan permainan di meja anda yang disertai rakan adalah masuk. Menjalankan kedua-duanya melalui satu terowong bermaksud helaian itu memerlukan kedua-dua baris, bukan kompromi antaranya.

Akses keluar gagal pada dasar destinasi, bukan pada terowong

Trafik keluar melalui gerbang yang menterjemah mencipta keadaan. Paket pertama daripada alamat dan port dalaman membina entri terjemahan, dan balasan sepadan dengannya, iaitu tingkah laku pemetaan yang diterangkan dalam RFC 3022. Mekanisme itulah sebabnya tab pelayar biasanya berfungsi tanpa sebarang permintaan port.

Dua perkara masih memecahkannya. Nod keluar mungkin menapis destinasi atau nombor port yang dianggap boleh disalahgunakan, dan aplikasi mungkin mendengar pada port yang tidak pernah dijangka oleh dasar keluar. Tanyakan tentang pasangan destinasi, bukan peraturan masuk, dan jangkakan jawapan berbeza untuk TCP dan UDP.

Ukur sebelum berdebat. Jalankan ini pada mesin yang akan berada di belakang terowong, sekali dengan terowong dimatikan dan sekali dengan ia dihidupkan:

ss -lntup | sort
nc -vz -w 3 203.0.113.10 443
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://example.com

Arahan yang sama, destinasi yang sama, dua keadaan terowong, memberikan pengendali perbandingan sebelum dan selepas yang boleh mereka tindak balas. Gantikan alamat dokumentasi dengan hos yang anda benar-benar perlukan; yang penting ialah perbandingan itu berulang, bukan bahawa mana-mana nombor kelihatan mengagumkan.

Penerbitan masuk memerlukan pemetaan, alamat dan jangka hayat

Tiada apa-apa dari luar boleh memulakan sambungan ke pendengar anda melainkan sesuatu di bahagian awam tahu ke mana hendak menghantarnya. Tempahan port statik yang dipegang pengendali, pemetaan yang diminta klien melalui UPnP, NAT-PMP atau PCP, dan alamat awam yang dihalakan ialah tiga produk berbeza dengan tiga had berbeza.

Tanyakan lima soalan tentang mana-mana daripadanya: protokol apa, port luar apa, sama ada port luar boleh berbeza daripada yang tempatan, keluarga alamat apa yang diliputinya, dan berapa lama pemetaan bertahan selepas sambungan semula. Tempahan yang terikat pada sesi aktif hilang apabila sesi itu tamat, apa pun kata halaman pelan.

Sahkan separuh tempatan dahulu, kerana pendengar mati dan laluan masuk yang tersekat kelihatan sama dari luar:

ss -lntup | grep -E ':(8080|51820)\b'
python3 -m http.server 8080 --bind 0.0.0.0
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080

Apabila permintaan tempatan mengembalikan 200 dan permintaan daripada rangkaian yang tidak anda kawal masih tamat masa, jurangnya terletak di bahagian awam. Itulah saat untuk memberitahu pengendali protokol dan port luar daripada menerangkan aplikasi dengan namanya.

Pengangkutan terowong itu sendiri ialah soalan berasingan

Port pembawa ialah bahagian terkecil masalah dan paling mudah dicari. Nilai lalai berbeza mengikut protokol, dan apa yang boleh dirundingkan klien lebih penting daripada mana-mana penerangan pelan.

ClientOuter transportDefault portWhen it helps
OpenVPNUDP1194Default mode; needs outbound UDP to pass
OpenVPNTCP443UDP is dropped and TCP 443 is not
WireGuardUDP51820Short handshake; there is no TCP mode
IKEv2/IPsecUDP500 and 4500Mobile clients; 4500 carries NAT traversal

Rangkaian yang membuang UDP keluar akan menerima terowong TCP 443 dan menolak yang UDP, jadi mod sandaran tergolong dalam helaian keperluan. Menukar pembawa tidak mengalihkan port aplikasi di dalam terowong dan tidak meluaskan dasar destinasi; ia kekal pada barisnya sendiri.

Pecahan wajar mendapat satu ujian semasa anda di sana, kerana terowong yang bersambung dan kemudian tersekat pada pemindahan besar biasanya mempunyai MTU yang salah, bukan port tertutup:

ping -M do -s 1400 203.0.113.10
ping -M do -s 1372 203.0.113.10

Pada Windows ujian yang sama ialah ping -f -l 1400 203.0.113.10. Tetapkan MTU terowong di bawah saiz terbesar yang lulus, kemudian uji semula pemindahan yang gagal.

Sahkan ketiga-tiga baris sebelum anda membayar pelan

Letakkan tiga baris pada satu halaman dan isi setiap sel dengan hasil yang diukur bukan janji. Arahan ini menghasilkan separuh tempatan halaman itu dalam kira-kira seminit:

ss -lntup | sort
nc -vz -w 3 203.0.113.10 443
python3 -m http.server 8080 --bind 0.0.0.0
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080
ping -M do -s 1400 203.0.113.10

Baca output sebagai senarai semak. Keluar berfungsi apabila destinasi menjawab dengan terowong hidup. Masuk hanya berfungsi apabila hos di luar rangkaian anda mencapai pendengar pada port luar. Pembawa berfungsi apabila jabat tangan selesai pada protokol yang dibenarkan rangkaian akses anda.

Dua tabiat memastikan helaian itu jujur. Catat tarikh dan versi klien di sebelah setiap hasil, kerana dasar penyedia dan nilai lalai klien kedua-duanya bergerak. Kemudian minta pemetaan tersempit yang melayani aliran itu, kerana permintaan membuka semuanya biasanya menuai penolakan atau jualan tambahan bukan jawapan teknikal.

Artikel berkaitan