VPN paslaugų prievadų sąrašai kopijuojami tarp palyginimo puslapių be detalės, kuri nulemia, ar jie svarbūs: kas pradeda ryšį. Taisyklė, leidžianti išeinantį TCP 443, nieko nesako apie tai, ar kitas mazgas gali pasiekti klausytoją jūsų kompiuteryje. Prieš lygindami vienintelį planą, parašykite tris atskirus reikalavimus ir pažymėkite, kurių jūsų užduočiai tikrai reikia. Kai toks lapas egzistuoja, dauguma palyginimų susitraukia iki vieno trumpo klausimo.

Atskirkite reikalavimą prieš skaitydami bet kurį prievadų sąrašą

Trys eilutės apima beveik visus atvejus: pasiekti tikslą už tunelio ribų, paskelbti ką nors, kad kiti galėtų prisijungti į vidų, ir pernešti patį tunelį. Kiekviena eilutė žlunga dėl skirtingos priežasties, o tiekėjo politika, tenkinanti vieną, gali palikti kitas dvi nepaliestas. Užduoties priskyrimas tinkamai eilutei užima penkias minutes ir vėliau sutaupo ginčą.

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?

Rinkodaros teiginiai tyčia sulieja tris eilutes. P2P leidimas apibūdina tikslo politiką, skirtasis adresas apibūdina adresą, o teiginys, kad prievadų apribojimų nėra, dažniausiai reiškia, kad planas jų neišvardija. Nė vienas iš šių posakių neatsako į kitus.

Pasirinkite vieną konkretų srautą ir parašykite jį kaip sakinį: iniciatorius, transportas, prievadas, adresų šeima, kryptis. Naktinis atsarginių kopijų klientas, įkeliantis į nuotolinį mazgą, yra tik išeinantis. Žaidimų serveris ant jūsų stalo, prie kurio jungiasi draugai, yra įeinantis. Abu paleisti per vieną tunelį reiškia, kad lapui reikia abiejų eilučių, o ne kompromiso tarp jų.

Išeinanti prieiga žlunga dėl tikslo politikos, o ne dėl tunelio

Išeinantis srautas per verčiantį šliuzą sukuria būseną. Pirmasis paketas iš vidinio adreso ir prievado sukuria vertimo įrašą, o atsakymai jam atitinka, tai yra RFC 3022 aprašytas susiejimo elgesys. Šis mechanizmas yra priežastis, kodėl naršyklės skirtukas paprastai veikia visiškai be jokios prievado užklausos.

Du dalykai vis tiek tai sugriauna. Išėjimo mazgas gali filtruoti paskirties vietas ar prievadų numerius, kuriuos laiko piktnaudžiaujamais, o programa gali klausytis prievado, kurio išėjimo politika niekada nesitikėjo. Klauskite apie tikslo porą, o ne apie įeinimo taisykles, ir tikėkitės skirtingų atsakymų TCP ir UDP atveju.

Matuokite prieš ginčydamiesi. Paleiskite tai kompiuteryje, kuris stovės už tunelio, vieną kartą išjungus tunelį ir vieną kartą jį įjungus:

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

Tos pačios komandos, tas pats tikslas, dvi tunelio būsenos duoda operatoriui palyginimą prieš ir po, pagal kurį jis gali veikti. Pakeiskite dokumentacijos adresą mazgu, kurio jums tikrai reikia; svarbu, kad palyginimas kartotųsi, o ne kad koks nors skaičius atrodytų įspūdingai.

Įeinamajam paskelbimui reikia susiejimo, adreso ir galiojimo trukmės

Niekas iš išorės negali pradėti ryšio su jūsų klausytoju, nebent kažkas viešojoje pusėje žinotų, kur jį pristatyti. Operatoriaus laikoma statinė prievado rezervacija, kliento prašomas susiejimas per UPnP, NAT-PMP arba PCP ir maršrutizuotas viešasis adresas yra trys skirtingi produktai su trimis skirtingomis ribomis.

Užduokite penkis klausimus apie bet kurį iš jų: koks protokolas, koks išorinis prievadas, ar išorinis prievadas gali skirtis nuo vietinio, kokią adresų šeimą jis apima ir kiek susiejimas išlieka po pakartotinio prisijungimo. Rezervacija, susieta su aktyvia sesija, išnyksta jai pasibaigus, kad ir ką sakytų plano puslapis.

Pirmiausia patvirtinkite vietinę pusę, nes miręs klausytojas ir užblokuotas įeinantis kelias iš išorės atrodo vienodai:

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

Kai vietinė užklausa grąžina 200, o užklausa iš tinklo, kurio nekontroliuojate, vis dar baigiasi per ilgai, spraga yra viešojoje pusėje. Tai momentas, kai operatoriui reikia nurodyti protokolą ir išorinį prievadą, o ne aprašinėti programą jos pavadinimu.

Paties tunelio transportas yra atskiras klausimas

Nešiklio prievadai yra mažiausia problemos dalis ir lengviausiai surandama. Numatytosios reikšmės skiriasi pagal protokolą, o tai, dėl ko klientas gali derėtis, svarbiau nei bet koks plano aprašymas.

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

Tinklas, kuris išmeta išeinantį UDP, priims TCP 443 tunelį ir atmes UDP, todėl atsarginis režimas priklauso reikalavimų lapui. Nešiklio pakeitimas neperkelia programos prievado tunelio viduje ir neišplečia tikslo politikos; jos lieka savo eilutėse.

Fragmentacija nusipelno vieno bandymo, kol ten esate, nes tunelis, kuris prisijungia ir paskui užstringa dideliuose perdavimuose, paprastai turi neteisingą MTU, o ne uždarytą prievadą:

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

Windows sistemoje tas pats bandymas yra ping -f -l 1400 203.0.113.10. Nustatykite tunelio MTU žemiau didžiausio dydžio, kuris praeina, tada dar kartą patikrinkite nepavykusį perdavimą.

Patikrinkite tris eilutes prieš mokėdami už planą

Sudėkite tris eilutes į vieną puslapį ir užpildykite kiekvieną langelį išmatuotu rezultatu, o ne pažadu. Šios komandos sukuria tą puslapio vietinę pusę maždaug per minutę:

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

Skaitykite išvestį kaip kontrolinį sąrašą. Išeinantis veikia, kai tikslas atsako su įjungtu tuneliu. Įeinantis veikia tik tada, kai mazgas už jūsų tinklo ribų pasiekia klausytoją išoriniame prievade. Nešiklis veikia, kai rankos paspaudimas baigiamas protokolu, kurį leidžia jūsų prieigos tinklas.

Du įpročiai išlaiko lapą sąžiningą. Užrašykite datą ir kliento versiją prie kiekvieno rezultato, nes juda ir tiekėjų politika, ir klientų numatytosios reikšmės. Tada prašykite siauriausio susiejimo, kuris tarnauja srautui, nes prašymas atidaryti viską paprastai sulaukia atsisakymo ar papildomo pardavimo, o ne techninio atsakymo.

Susiję straipsniai