Požiadavky na porty VPN: tri riadky, ktoré treba napísať pred porovnaním
Zistite, ktorú otázku o portoch vlastne máte: odchádzajúci cieľ, prichádzajúce zverejnenie alebo vlastný transport tunela. Potom sa poskytovateľa pýtajte len na to.
Zoznamy portov pre služby VPN sa medzi porovnávacími stránkami kopírujú bez detailu, ktorý rozhoduje, či na nich záleží: kto začína spojenie. Pravidlo, ktoré povoľuje odchádzajúci TCP 443, nehovorí nič o tom, či sa iný host dostane k poslucháčovi na vašom počítači. Napíšte tri samostatné požiadavky, skôr než porovnáte jediný plán, a označte, ktoré vášho zadania skutočne potrebuje. Väčšina porovnaní sa zúži na jednu krátku otázku, keď taký hárok existuje.
Rozdeľte požiadavku, skôr než si prečítate akýkoľvek zoznam portov
Tri riadky pokrývajú takmer každý prípad: dostať sa k cieľu za tunelom, zverejniť niečo, aby sa ostatní mohli pripojiť dovnútra, a prenášať samotný tunel. Každý riadok zlyháva z iného dôvodu a politika poskytovateľa, ktorá splní jeden, môže nechať ostatné dva nedotknuté. Zaradenie úlohy do správneho riadku trvá päť minút a ušetrí hádku neskôr.
| 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? |
Marketingové tvrdenia tri riadky zámerne rozmazávajú. Povolenie P2P opisuje politiku cieľa, vyhradená adresa opisuje adresu a tvrdenie o žiadnych obmedzeniach portov zvyčajne znamená, že plán ich neuvádza. Žiadna z tých fráz neodpovedá na ostatné.
Vyberte jeden konkrétny tok a napíšte ho ako vetu: iniciátor, transport, port, rodina adries, smer. Nočný klient zálohovania, ktorý nahráva na vzdialený host, je iba odchádzajúci. Herný server na vašom stole, ku ktorému sa pripájajú priatelia, je prichádzajúci. Spustenie oboch cez jeden tunel znamená, že hárok potrebuje oba riadky, nie kompromis medzi nimi.
Odchádzajúci prístup zlyháva na politike cieľa, nie na tuneli
Odchádzajúca prevádzka cez prekladajúcu bránu vytvára stav. Prvý paket z vnútornej adresy a portu vytvorí prekladovú položku a odpovede sa s ňou zhodujú, čo je správanie mapovania opísané v RFC 3022. Práve tento mechanizmus vysvetľuje, prečo karta prehliadača zvyčajne funguje úplne bez akejkoľvek požiadavky na port.
Dve veci to stále kazia. Výstupný uzol môže filtrovať ciele alebo čísla portov, ktoré považuje za zneužiteľné, a aplikácia môže počúvať na porte, ktorý výstupná politika nikdy nečakala. Pýtajte sa na dvojicu cieľov, nie na prichádzajúce pravidlá, a čakajte rôzne odpovede pre TCP a UDP.
Merajte, skôr než začnete argumentovať. Spustite to na počítači, ktorý bude stáť za tunelom, raz s vypnutým tunelom a raz so zapnutým:
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
Tie isté príkazy, ten istý cieľ, dva stavy tunela dávajú operátorovi porovnanie pred a po, podľa ktorého môže konať. Nahraďte dokumentačnú adresu hostom, ktorý skutočne potrebujete; dôležité je, aby sa porovnanie opakovalo, nie aby nejaké číslo vyzeralo pôsobivo.
Prichádzajúce zverejnenie potrebuje mapovanie, adresu a životnosť
Nič zvonku nemôže začať spojenie s vaším poslucháčom, ak niečo na verejnej strane nevie, kam ho doručiť. Statická rezervácia portu, ktorú drží operátor, mapovanie vyžiadané klientom cez UPnP, NAT-PMP alebo PCP, a routovaná verejná adresa sú tri rôzne produkty s tromi rôznymi limitmi.
Položte päť otázok ku ktorejkoľvek z nich: ktorý protokol, ktorý externý port, či sa externý port môže líšiť od lokálneho, ktorú rodinu adries pokrýva a ako dlho mapovanie prežije opätovné pripojenie. Rezervácia viazaná na aktívnu reláciu zmizne, keď sa tá relácia skončí, nech stránka plánu hovorí čokoľvek.
Najprv potvrďte lokálnu polovicu, pretože mŕtvy poslucháč a zablokovaná prichádzajúca cesta vyzerajú zvonku rovnako:
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
Keď lokálna požiadavka vráti 200 a požiadavka zo siete, ktorú neovládate, stále vyprší, medzera je na verejnej strane. To je okamih, keď treba operátorovi povedať protokol a externý port namiesto opisovania aplikácie podľa mena.
Vlastný transport tunela je samostatná otázka
Porty nosiča sú najmenšou časťou problému a najľahšie dohľadateľné. Predvolené hodnoty sa líšia podľa protokolu a to, o čom sa klient dokáže dohodnúť, je dôležitejšie než akýkoľvek opis plánu.
| 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 |
Sieť, ktorá zahadzuje odchádzajúci UDP, prijme tunel TCP 443 a odmietne UDP, takže záložný režim patrí na hárok požiadaviek. Zmena nosiča nepresunie port aplikácie vnútri tunela a nerozšíri politiku cieľa; tie zostávajú na svojich riadkoch.
Fragmentácia si zaslúži jednu skúšku, kým ste tam, pretože tunel, ktorý sa pripojí a potom sa zasekne na veľkých prenosoch, má zvyčajne nesprávnu MTU, nie zavretý port:
ping -M do -s 1400 203.0.113.10 ping -M do -s 1372 203.0.113.10
V systéme Windows je tou istou skúškou ping -f -l 1400 203.0.113.10. Nastavte MTU tunela pod najväčšiu veľkosť, ktorá prejde, a potom znova otestujte neúspešný prenos.
Overte tri riadky, skôr než zaplatíte za plán
Dajte tri riadky na jednu stránku a vyplňte každú bunku nameraným výsledkom namiesto sľubu. Tieto príkazy vytvoria lokálnu polovicu tejto stránky približne za minútu:
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
Čítajte výstup ako kontrolný zoznam. Odchádzajúce funguje, keď cieľ odpovie so zapnutým tunelom. Prichádzajúce funguje iba vtedy, keď sa host mimo vašej siete dostane k poslucháčovi na externom porte. Nosič funguje, keď sa podanie ruky dokončí na protokole, ktorý vaša prístupová sieť povoľuje.
Dva zvyky držia hárok čestný. Zapíšte dátum a verziu klienta k každému výsledku, pretože sa hýbu aj politiky poskytovateľov, aj predvolené hodnoty klientov. Potom žiadajte najužšie mapovanie, ktoré toku slúži, pretože žiadosť otvoriť všetko zvyčajne získa odmietnutie alebo dopredaj namiesto technickej odpovede.