VPN-Portufuerderungen: dräi Linnen, déi virum Vergläich ze schreiwen sinn
Fannt eraus, wéi eng Portfro Dir wierklech hutt: ausgehend Zil, agehend Verëffentlechen oder den eegenen Transport vum Tunnel. Frot den Ubidder duerno just dat.
Portlëschte fir VPN-Servicer ginn tëschent Vergläichssäiten kopéiert ouni de Detail, deen entscheet ob se wichteg sinn: wien d’Verbindung ufänkt. Eng Regel, déi ausgehend TCP 443 erlaabt, seet näischt doriwwer, ob en aneren Host en Listener op Ärem Rechner erreeche kann. Schreift dräi getrennt Ufuerderunge virun deem Dir ee Plang vergläicht, a markéiert wéi eng Är Aufgab wierklech brauch. Déi meescht Vergläicher schrumpfen op eng eenzeg kuerz Fro, soubal dëst Blat existéiert.
Trennt d’Ufuerderung, ier Dir iergendeng Portlëscht liest
Dräi Linnen decken bal all Fall of: en Zil hannert dem Tunnel erreechen, eppes verëffentlechen, sou datt anerer kënnen anzeverbinden, an den Tunnel selwer droen. All Linn scheitert aus engem aneren Grond, an eng Ubidderpolitik, déi eng erfëllt, kann déi aner zwou onberéiert loossen. Är Aufgab an déi richteg Linn ze schortéieren brauch fënnef Minutten a spuert spéider eng Diskussioun.
| 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? |
Marketingaussoe verwëschen déi dräi Linnen absichtlech. Eng P2P-Erlaabnis beschreift eng Zilpolitik, eng dedizéiert Adress beschreift eng Adress, an d’Behaaptung, et géif keng Portbeschränkunge ginn, heescht meeschtens, datt de Plang se net oplëscht. Keng vun dësen Ausdréck beäntwert déi aner.
Wielt ee konkrete Floss a schreift en als Saz: Initiator, Transport, Port, Adressfamill, Richtung. En nächtleche Backup-Client, deen op en entfernten Host eroplueden, ass nëmmen ausgehend. E Spillserver op Ärem Schreifdësch, deem Frënn bäitrieden, ass agehend. Béides duerch een Tunnel lafen ze loossen heescht, datt d’Blat béid Linnen brauch, net en Kompromëss tëschent hinnen.
Ausgehenden Zougrëff scheitert op der Zilpolitik, net um Tunnel
Ausgehenden Trafik duerch eng iwwersetzend Gateway schaaft Zoustand. Den éischte Pak vun enger interner Adress a Port baut en Iwwersetzungsantrag op, an Äntwerten passen dozou, wat dat an RFC 3022 beschriwwent Mappingverhalen ass. Dee Mechanismus ass de Grond, firwat en Browser-Tab normalerweis ouni iergendeng Portufro funktionéiert.
Zwee Saache briechen et nach ëmmer. Den Exit-Knuet kann Ziler oder Portnummeren filteren, déi en als mëssbrauchbar ugesäit, an d’Applikatioun kann op engem Port lauschteren, deen d’Exitpolitik ni erwaart huet. Frot no deem Zilpaar anstatt no agehenden Reegelen, a rechent mat verschiddenen Äntwerten fir TCP an UDP.
Miisst, ier Dir diskutéiert. Fëllt dës op der Maschinn aus, déi hannert dem Tunnel stoe wäert, eng Kéier mam Tunnel aus an eng Kéier mam Tunnel un:
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
Déi selwecht Kommandos, dat selwecht Zil, zwee Tunnelzoustänn, ginn engem Bedreiwer e Virun-an-Derno-Verglach, op deem hie kann handelen. Ersetzt d’Dokumentatiounsadress duerch den Host, deen Dir wierklech braucht; wichteg ass, datt de Verglach sech widderhëlt, net datt eng Zuel impressiv ausgesäit.
Agehend Verëffentlechen brauch eng Mapping, eng Adress an eng Liewensdauer
Näischt vun baussen kann eng Verbindung zu Ärem Listener starten, ausser et weess eppes op der ëffentlecher Säit, wou et se soll ofliwweren. Eng statesch Portreservatioun, déi den Bedreiwer hält, eng vum Client ugefrote Mapping iwwer UPnP, NAT-PMP oder PCP, an eng geroutet ëffentlech Adress sinn dräi verschidde Produkter mat dräi verschiddene Grenzen.
Stellt fënnef Froen zu jidderengem dovun: wéi ee Protokoll, wéi en externen Port, ob den externen Port vum lokalen dierf ofwäichen, wéi eng Adressfamill en deckt, a wéi laang d’Mapping eng Reconnectioun iwwerlieft. Eng Reservatioun, déi un eng aktiv Sessioun gebonnen ass, verschwënnt, wann déi Sessioun ophält, wat d’Plangsäit och seet.
Confirméiert fir d’éischt déi lokal Halschent, well en doudege Listener an en blockéierten agehenden Wee vun baussen d’selwecht ausgesinn:
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
Wann déi lokal Ufro 200 zréckgëtt an eng Ufro aus engem Netz, deen Dir net kontrolléiert, nach ëmmer an d’Zäit leeft, sëtzt d’Lück op der ëffentlecher Säit. Dat ass de Moment, dem Bedreiwer Protokoll an externen Port ze soen, anstatt d’App no hirem Numm ze beschreiwen.
Den eegenen Transport vum Tunnel ass eng getrennt Fro
D’Porte vum Träger sinn dee klengsten Deel vum Problem an deen einfachsten nozekucken. D’Standardwäerter ënnerscheede sech pro Protokoll, an dat, wat de Client ka verhandelen, zielt méi wéi eng Plangbeschreiwung och ëmmer.
| 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 |
En Netz, deen ausgehend UDP ewechgeheit, akzeptéiert en TCP 443-Tunnel a refuséiert en UDP-Tunnel, dofir gehéiert en Auswäichmodus op d’Ufuerderungsblat. Den Träger ze wiesselen verréckelt keen Applikatiounsport am Tunnel an erweidert keng Zilpolitik; déi bleiwen op hiren eegene Linnen.
Fragmentéierung verdéngt eng Probe, well Dir do sidd, well en Tunnel, deen sech verbënnt an dann op groussen Iwwerdroungen stockt, meeschtens déi falsch MTU huet anstatt en zouenen Port:
ping -M do -s 1400 203.0.113.10 ping -M do -s 1372 203.0.113.10
Op Windows ass déi selwecht Probe ping -f -l 1400 203.0.113.10. Setzt d’MTU vum Tunnel ënner déi gréisst Gréisst, déi duerchkënnt, an testt dann déi feelgeschloen Iwwerdroung nach eng Kéier.
Verifizéiert déi dräi Linnen, ier Dir fir ee Plang bezuelt
Setzt déi dräi Linnen op eng Säit a fëllt all Zell mat engem gemoossenen Resultat anstatt mat engem Verspriechen. Dës Kommandos produzéieren déi lokal Halschent vun där Säit an ongeféier enger Minutt:
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
Liest d’Ausgab als eng Checkliste. Ausgehend funktionéiert, wann d’Zil äntwert mam Tunnel un. Agehend funktionéiert nëmmen, wann en Host baussen Ärem Netz de Listener um externen Port erreecht. Den Träger funktionéiert, wann den Handshake op engem Protokoll fäerdeg geet, deen Ären Zougrëffsnetz erlaabt.
Zwee Gewunnechten halen d’Blat éierlech. Notéiert den Datum an d’Clientversioun niewent all Resultat, well souwuel Ubidderpolitike wéi och Clientstandardwäerter sech beweegen. Frot duerno no der engersten Mapping, déi dem Floss déngt, well eng Ufro, alles opzemaachen, meeschtens eng Oflehnung oder en Zousazverkaf verdéngt anstatt eng technesch Äntwert.