VPN-Portanforderungen: drei Zeilen, die vor dem Vergleich zu schreiben sind
Klären Sie, welche Portfrage Sie tatsächlich haben: ausgehendes Ziel, eingehendes Veröffentlichen oder der eigene Transport des Tunnels. Fragen Sie den Anbieter dann nur danach.
Portlisten für VPN-Dienste werden zwischen Vergleichsseiten kopiert, ohne das Detail, das entscheidet, ob sie relevant sind: wer die Verbindung aufbaut. Eine Regel, die ausgehendes TCP 443 erlaubt, sagt nichts darüber, ob ein anderer Host einen Listener auf Ihrem Rechner erreicht. Schreiben Sie drei getrennte Anforderungen, bevor Sie einen einzigen Tarif vergleichen, und markieren Sie, welche Ihre Aufgabe wirklich braucht. Die meisten Vergleiche schrumpfen auf eine kurze Frage, sobald dieses Blatt existiert.
Trennen Sie die Anforderung, bevor Sie eine Portliste lesen
Drei Zeilen decken fast jeden Fall ab: ein Ziel jenseits des Tunnels erreichen, etwas veröffentlichen, damit andere hineinverbinden können, und den Tunnel selbst tragen. Jede Zeile scheitert aus einem anderen Grund, und eine Anbieterrichtlinie, die eine erfüllt, kann die anderen beiden unberührt lassen. Die eigene Aufgabe der richtigen Zeile zuzuordnen dauert fünf Minuten und erspart später eine Diskussion.
| 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? |
Marketingaussagen verwischen die drei Zeilen absichtlich. Eine P2P-Freigabe beschreibt eine Zielrichtlinie, eine dedizierte Adresse beschreibt eine Adresse, und die Behauptung, es gebe keine Portbeschränkungen, bedeutet meist, dass der Tarif sie nicht auflistet. Keine dieser Wendungen beantwortet die anderen.
Wählen Sie einen konkreten Fluss und schreiben Sie ihn als Satz: Initiator, Transport, Port, Adressfamilie, Richtung. Ein nächtlicher Backup-Client, der zu einem entfernten Host hochlädt, ist nur ausgehend. Ein Spielserver auf Ihrem Schreibtisch, dem Freunde beitreten, ist eingehend. Beide durch einen Tunnel laufen zu lassen heißt, dass das Blatt beide Zeilen braucht, keinen Kompromiss zwischen ihnen.
Ausgehender Zugriff scheitert an der Zielrichtlinie, nicht am Tunnel
Ausgehender Verkehr durch ein übersetzendes Gateway erzeugt Zustand. Das erste Paket von einer internen Adresse und einem Port baut einen Übersetzungseintrag auf, und Antworten passen dazu, was dem in RFC 3022 beschriebenen Mapping-Verhalten entspricht. Dieser Mechanismus ist der Grund, warum ein Browser-Tab meist ganz ohne Portanfrage funktioniert.
Zwei Dinge brechen das weiterhin. Der Exit-Knoten kann Ziele oder Portnummern filtern, die er für missbrauchsfähig hält, und die Anwendung kann auf einem Port lauschen, den die Exit-Richtlinie nie erwartet hat. Fragen Sie nach dem Zielpaar statt nach eingehenden Regeln und rechnen Sie mit unterschiedlichen Antworten für TCP und UDP.
Messen Sie, bevor Sie argumentieren. Führen Sie dies auf dem Rechner aus, der hinter dem Tunnel stehen wird, einmal mit abgeschaltetem und einmal mit eingeschaltetem Tunnel:
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
Dieselben Befehle, dasselbe Ziel, zwei Tunnelzustände liefern einem Betreiber einen Vorher-Nachher-Vergleich, auf den er reagieren kann. Ersetzen Sie die Dokumentationsadresse durch den Host, den Sie tatsächlich brauchen; wichtig ist, dass sich der Vergleich wiederholt, nicht dass eine Zahl beeindruckend aussieht.
Eingehendes Veröffentlichen braucht ein Mapping, eine Adresse und eine Lebensdauer
Nichts von außen kann eine Verbindung zu Ihrem Listener aufbauen, es sei denn, etwas auf der öffentlichen Seite weiß, wohin es sie liefern soll. Eine statische Portreservierung des Betreibers, ein vom Client angefordertes Mapping über UPnP, NAT-PMP oder PCP und eine geroutete öffentliche Adresse sind drei verschiedene Produkte mit drei verschiedenen Grenzen.
Stellen Sie fünf Fragen zu jedem davon: welches Protokoll, welcher externe Port, ob der externe Port vom lokalen abweichen darf, welche Adressfamilie er abdeckt und wie lange das Mapping einen Neuverbindung übersteht. Eine an eine aktive Sitzung gebundene Reservierung verschwindet, wenn diese Sitzung endet, was auch immer die Tarifseite sagt.
Bestätigen Sie zuerst die lokale Hälfte, denn ein toter Listener und ein blockierter eingehender Weg sehen von außen gleich aus:
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
Wenn die lokale Anfrage 200 zurückgibt und eine Anfrage aus einem Netz, das Sie nicht kontrollieren, weiterhin in die Zeitüberschreitung läuft, sitzt die Lücke auf der öffentlichen Seite. Das ist der Moment, dem Betreiber Protokoll und externen Port zu nennen, statt die App beim Namen zu beschreiben.
Der eigene Transport des Tunnels ist eine separate Frage
Trägerports sind der kleinste Teil des Problems und der am leichtesten nachzuschlagende. Die Standardwerte unterscheiden sich je nach Protokoll, und was der Client aushandeln kann, zählt mehr als jede Tarifbeschreibung.
| 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 |
Ein Netz, das ausgehendes UDP verwirft, akzeptiert einen TCP-443-Tunnel und lehnt einen UDP-Tunnel ab, deshalb gehört ein Ausweichmodus auf das Anforderungsblatt. Den Träger zu wechseln verschiebt keinen Anwendungsport innerhalb des Tunnels und erweitert keine Zielrichtlinie; die bleiben in ihren eigenen Zeilen.
Fragmentierung verdient eine Probe, solange Sie dort sind, denn ein Tunnel, der sich verbindet und dann bei großen Übertragungen stockt, hat meist die falsche MTU statt eines geschlossenen Ports:
ping -M do -s 1400 203.0.113.10 ping -M do -s 1372 203.0.113.10
Unter Windows ist dieselbe Probe ping -f -l 1400 203.0.113.10. Setzen Sie die MTU des Tunnels unter die größte Größe, die durchgeht, und testen Sie dann die fehlgeschlagene Übertragung erneut.
Prüfen Sie die drei Zeilen, bevor Sie für einen Tarif zahlen
Legen Sie die drei Zeilen auf eine Seite und füllen Sie jede Zelle mit einem gemessenen Ergebnis statt mit einem Versprechen. Diese Befehle erzeugen die lokale Hälfte dieser Seite in etwa einer Minute:
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
Lesen Sie die Ausgabe als Checkliste. Ausgehend funktioniert, wenn das Ziel bei aktivem Tunnel antwortet. Eingehend funktioniert nur, wenn ein Host außerhalb Ihres Netzes den Listener am externen Port erreicht. Der Träger funktioniert, wenn der Handshake über ein Protokoll abgeschlossen wird, das Ihr Zugangsnetz zulässt.
Zwei Gewohnheiten halten das Blatt ehrlich. Notieren Sie Datum und Clientversion neben jedem Ergebnis, denn Anbieterrichtlinien und Client-Standardwerte bewegen sich beide. Bitten Sie dann um das engste Mapping, das dem Fluss dient, denn eine Anfrage, alles zu öffnen, erntet meist eine Ablehnung oder einen Zusatzverkauf statt einer technischen Antwort.