Portpostuloj por VPN: tri linioj skribendaj antaŭ kompari
Eltrovu, kiun pordan demandon vi vere havas: eliran celon, eniran publikigon aŭ la propran transporton de la tunelo. Poste demandu la provizanton nur pri tio.
Portlistoj por VPN-servoj estas kopiataj inter komparaj paĝoj sen la detalo, kiu decidas ĉu ili gravas: kiu komencas la konekton. Regulo, kiu permesas elirantan TCP 443, diras nenion pri tio, ĉu alia gastiganto povas atingi aŭskultanton en via maŝino. Skribu tri apartajn postulojn antaŭ ol kompari eĉ unu planon, kaj marku, kiujn via tasko vere bezonas. Plej multaj komparoj kolapsas en unu mallongan demandon, tuj kiam tia folio ekzistas.
Disigu la postulon antaŭ ol legi ajnan portliston
Tri linioj kovras preskaŭ ĉiun kazon: atingi celon trans la tunelo, publikigi ion por ke aliaj povu konektiĝi enen, kaj porti la tunelon mem. Ĉiu linio malsukcesas pro malsama kaŭzo, kaj provizanta politiko, kiu kontentigas unu, povas lasi la aliajn du netuŝitajn. Ordigo de via tasko en la ĝustan linion daŭras kvin minutojn kaj ŝparas diskuton poste.
| 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? |
Merkataj asertoj intence malklarigas la tri liniojn. P2P-permeso priskribas celan politikon, dediĉita adreso priskribas adreson, kaj aserto pri neniu portlimigo kutime signifas, ke la plano ne listigas ilin. Neniu el tiuj frazoj respondas la aliajn.
Elektu unu konkretan fluon kaj skribu ĝin kiel frazon: inicianto, transporto, pordo, adresa familio, direkto. Nokta savkopiila kliento, kiu alŝutas al fora gastiganto, estas nur eliranta. Luda servilo sur via tablo, al kiu aliĝas amikoj, estas eniranta. Funkciigi ambaŭ tra unu tunelo signifas, ke la folio bezonas ambaŭ liniojn, ne kompromison inter ili.
Eliranta aliro malsukcesas pro celpolitiko, ne pro la tunelo
Eliranta trafiko tra tradukanta pordego kreas staton. La unua paketo el interna adreso kaj pordo konstruas tradukan eron, kaj respondoj kongruas kun ĝi, kio estas la mapada konduto priskribita en RFC 3022. Tiu mekanismo estas kial retumila langeto kutime funkcias tute sen ajna porda peto.
Du aferoj ankoraŭ rompas tion. La elira nodo povas filtri celojn aŭ pordnumerojn, kiujn ĝi konsideras misuzeblaj, kaj la aplikaĵo povas aŭskulti sur pordo, kiun la elira politiko neniam atendis. Demandu pri la cela paro anstataŭ pri eniraj reguloj, kaj atendu malsamajn respondojn por TCP kaj UDP.
Mezuru antaŭ ol argumenti. Rulu ĉi tion sur la maŝino, kiu staros malantaŭ la tunelo, unufoje kun la tunelo malŝaltita kaj unufoje kun ĝi ŝaltita:
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
La samaj komandoj, la sama celo, du tunelaj statoj donas al operatoro komparon antaŭ kaj post, pri kiu ĝi povas agi. Anstataŭigu la dokumentan adreson per la gastiganto, kiun vi vere bezonas; gravas, ke la komparo ripetiĝu, ne ke iu nombro aspektu impona.
Enira publikigo bezonas mapadon, adreson kaj vivdaŭron
Nenio ekstere povas komenci konekton al via aŭskultanto krom se io sur la publika flanko scias, kien liveri ĝin. Statika porda rezervo tenata de la operatoro, kliente petita mapado per UPnP, NAT-PMP aŭ PCP, kaj enkursigita publika adreso estas tri malsamaj produktoj kun tri malsamaj limoj.
Demandu kvin demandojn pri iu ajn el ili: kiu protokolo, kiu ekstera pordo, ĉu la ekstera pordo rajtas diferenci de la loka, kiun adresan familion ĝi kovras, kaj kiom longe la mapado postvivas rekonekton. Rezervo ligita al aktiva sesio malaperas, kiam tiu sesio finiĝas, kion ajn diras la plana paĝo.
Konfirmu unue la lokan duonon, ĉar morta aŭskultanto kaj blokita enira vojo aspektas same de ekstere:
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
Kiam la loka peto redonas 200 kaj peto el reto, kiun vi ne kontrolas, ankoraŭ tempolimas, la breĉo sidas sur la publika flanko. Tio estas la momento nomi al la operatoro protokolon kaj eksteran pordon anstataŭ priskribi la aplikaĵon per nomo.
La propra transporto de la tunelo estas aparta demando
Portoj de la portanto estas la plej malgranda parto de la problemo kaj la plej facile serĉebla. Defaŭltoj varias laŭ protokolo, kaj tio, pri kio la kliento povas intertrakti, gravas pli ol ajna priskribo de la plano.
| 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 |
Reto, kiu forĵetas elirantan UDP, akceptos TCP 443 tunelon kaj rifuzos UDP, do rezerva reĝimo apartenas al la postula folio. Ŝanĝi la portanton ne movas aplikaĵan pordon ene de la tunelo kaj ne larĝigas celpolitikon; tiuj restas sur siaj propraj linioj.
Fragmentado meritas unu provon dum vi estas tie, ĉar tunelo, kiu konektiĝas kaj poste haltas ĉe grandaj transigoj, kutime havas malĝustan MTU prefere ol fermitan pordon:
ping -M do -s 1400 203.0.113.10 ping -M do -s 1372 203.0.113.10
En Windows la sama provo estas ping -f -l 1400 203.0.113.10. Agordu la MTU de la tunelo sub la plej granda grando, kiu trapasas, poste retestu la transigon, kiu malsukcesis.
Kontrolu la tri liniojn antaŭ ol pagi por plano
Metu la tri liniojn sur unu paĝon kaj plenigu ĉiun ĉelon per mezurita rezulto anstataŭ promeso. Ĉi tiuj komandoj produktas la lokan duonon de tiu paĝo en proksimume unu minuto:
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
Legu la eligon kiel kontrolan liston. Eliranta funkcias, kiam la celo respondas kun la tunelo ŝaltita. Eniranta funkcias nur, kiam gastiganto ekster via reto atingas la aŭskultanton sur la ekstera pordo. La portanto funkcias, kiam la manpremo kompletiĝas sur protokolo, kiun via alira reto permesas.
Du kutimoj tenas la folion honesta. Notu la daton kaj la klientan version apud ĉiu rezulto, ĉar kaj provizaj politikoj kaj klientaj defaŭltoj moviĝas. Poste petu la plej mallarĝan mapadon, kiu servas al la fluo, ĉar peto malfermi ĉion kutime gajnas rifuzon aŭ plivendan proponon anstataŭ teknikan respondon.