Können Sie einen Port nach vorne zwingen, ohne den Router und UPNP wahrscheinlich ausgeschaltet zu haben?

StackOverflow https://stackoverflow.com/questions/19836475

  •  25-07-2022
  •  | 
  •  

Frage

Ich möchte einen Port für meinen Webserver auf einem Router weiterleiten, auf den ich keinen Zugriff habe. Ich bezweifle sehr, dass UPNP aktiviert ist.

War es hilfreich?

Lösung

Eigentlich können Sie (irgendwie)

Es ist ein bisschen kompliziert und funktioniert nicht die ganze Zeit, aber hier ist das Kern der Funktionsweise:

Gegeben:

Routera mit öffentlichem IP 1.2.3.4

PC1 mit privatem IP ABCD (hinter Router a)

Routerb mit öffentlichem IP 5.6.7.8

PC2 mit privatem IP -EFGH (hinter Router B)

Nun eine ideale Lösung (dh kein Pat) ...

Schritt a:

Senden Sie eine Nachricht von PC1 an einem Port (10000 für dieses Beispiel) an die öffentliche IP für Routerb (4.5.6.7). Dadurch wird ABCD: 10000 -> 4.5.6.7:10000 auf der NAT und PAT für Routera registriert. Routerb wird dieses Paket verwerfen (wie erwartet, weil es nicht angefordert wurde).

Schritt B: Senden Sie gleichzeitig kontinuierlich ein Paket von PC2 an die öffentliche IP von Router A (1.2.3.4) am selben Port (10000). Dies wird EGFH: 10000 -> 1.2.3.4:10000 auf Routerbs Nat und Pat.

Schritt C:

Hier passiert hier die Magie:

PC2 sendet ständig das Paket an Routera, so dass das 'Loch' in Routerb offen hält, damit eine Antwort zurückkommt. Wenn PC1 das einzelne Paket an Routerb senden, scheint es Routerb als Antwort zu sein und wird daher an PC2 weitergeleitet. Sobald PC2 diese "Antwort" empfängt, stellen Sie sicher, dass ein weiteres Paket ausgeht und nicht mehr kontinuierliche Pakete senden. Dieses letzte Paket fungiert als "Antwort" auf PC1 und durchläuft das in Schritt A und Voila geschaffene "Loch"! Sie haben jetzt Nat Transversal. Sie müssen nur eine einzelne Paket oder so beide Richtungen senden, um das "Loch" offen zu halten.

HINWEIS: Dies funktioniert nur mit UDP, da es verbindungslos ist (fallengelassene Pakete sind in Ordnung).

Jetzt verwenden fast alle Router Pat, also müssen Sie raten, welchen Port auf die meisten Router reagiert, um +-10 (IEAABCD: 10000 -> 5.6.7.8:10010) durchzuführen.

Versuchen Sie einfach ein paar in diesem Bereich (-10 bis +10, bis Sie eine Antwort erhalten)

Der Rest der Router ist zufällig auf ihrem Pat. Wenn ja, sind Sie verschraubt ... probieren Sie die andere Richtung aus (dh die Verbindung in die andere Richtung). Wenn das fehlschlägt, können Sie keine Verbindung herstellen ... Entschuldigung)

Andere Tipps

Nach dem, was ich verstehe, haben Sie einen Webserver, auf dem die Dinge weitergeleitet werden müssen, und einen Router -Port, auf den Sie keinen Zugriff haben. Und Sie möchten diese beiden verbinden.

Ich bezweifle sehr, dass es Möglichkeiten gibt, dies zu tun. Wenn Sie nur sudo zugreifen würden, können Sie Iptables verwenden, um sich umzuleiten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top