VPN prievadų reikalavimai: trys eilutės, kurias reikia parašyti prieš lyginant
Išsiaiškinkite, kokį prievado klausimą iš tikrųjų turite: išeinantį tikslą, įeinantį paskelbimą ar paties tunelio transportą. Tada tiekėjo klauskite tik apie tai.
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čą.
| Line | Who starts it | What can block it | Question for the provider |
|---|---|---|---|
| Outbound destination | Your application | Egress filter on the exit node | Is this protocol and port allowed to that destination? |
| Inbound publishing | A remote peer | No mapping, no public address, short lifetime | Which protocol, which external port, and how long does the mapping last? |
| Tunnel transport | Your client to the gateway | The access network drops that protocol | Does 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.
| Client | Outer transport | Default port | When it helps |
|---|---|---|---|
| OpenVPN | UDP | 1194 | Default mode; needs outbound UDP to pass |
| OpenVPN | TCP | 443 | UDP is dropped and TCP 443 is not |
| WireGuard | UDP | 51820 | Short handshake; there is no TCP mode |
| IKEv2/IPsec | UDP | 500 and 4500 | Mobile 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.