Windows: Zuordnen des Netzwerkverkehrs einer IP und eines Ports zu einer anderen IP und einem anderen Port auf dem lokalen Computer

Windows: Zuordnen des Netzwerkverkehrs einer IP und eines Ports zu einer anderen IP und einem anderen Port auf dem lokalen Computer

Unter Windows muss ich den gesamten Datenverkehr einer IP-Adresse (z. B. 10.255.255.255) einer anderen (z. B. 127.0.0.1) zuordnen.

Ich bin auf die Netsh-Schnittstelle Portproxy gestoßen und habe es ausprobiert.

netsh interface portproxy add v4tov4 listenaddress=10.255.255.255 listenport=7073 connectaddress=127.0.0.1 connectport=7071

Das Ziel ist, wenn ein Benutzer ein Paket an sendet, 10.255.255.255:7073ist es so, als ob er die Pakete an sendet127.0.0.1:7071

netsh interface portproxy show all

Listen on ipv4:             Connect to ipv4:

Address         Port        Address         Port
--------------- ----------  --------------- ----------
10.255.255.255  7073        127.0.0.1         7071

Ich habe auch die Firewall-Regel für den Port 7073 hinzugefügt.

netsh advfirewall firewall add rule name="7073 port" protocol=TCP dir=in localport=7073 action=allow

Dies ist unter Windows 11.

Die Ergebnisse von netstat -na|find "7073" sind leer und das gleiche Ergebnis für 7071 lautet wie folgt

netstat -na|find "7071"
  TCP    0.0.0.0:7071           0.0.0.0:0              LISTENING

In meiner Anwendung habe ich zuerst versucht, die Anfrage per Postman an 10.255.255.255:7073 zu senden, und es kam zu einem Timeout. Die gleiche Anfrage kann erfolgreich an 127.0.0.1:7071 gesendet werden.

Wenn ich per Telnet eine Verbindung zur 7073 herstelle, kann keine Verbindung hergestellt werden.

telnet 10.255.255.255 7073
Connecting To 10.255.255.255...Could not open connection to the host, on port 7073: Connect failed

Ich habe überprüft, IP Helperob der Dienst auch läuft.

Meine Absicht ist, dass Benutzer, die bereits Anfragen an senden konnten 127.0.0.1:7071, nach der Portweiterleitung Anfragen an senden können 10.255.255.255:7073und dasselbe Verhalten sehen. Meine Anwendung sendet tatsächlich HTTP-Anfragen.

Beachten Sie, dass KEIN Dienst tatsächlich den eingehenden Datenverkehr abhört 7073. Aber darum geht es ja: Ich möchte, dass jeder, der etwas an diesen Port sendet (auch wenn niemand darauf lauscht), den Datenverkehr dorthin schickt 7071(an den jemand darauf lauscht).

Ist mein Ansatz hinsichtlich der Zuordnung einer IP:Port zu einer anderen, um den gesamten Netzwerkverkehr hin und her von der Quell-IP zur Ziel-IP weiterzuleiten, richtig?

Wenn ja, was könnte hier falsch sein?

Danke

Antwort1

Das Problem mit dem netshBefehl besteht darin, die Parameter von listenaddressund anzugeben connectaddress, die für eine bestimmte IP-Adresse, nicht für einen Adressbereich.

10.255.255.255Die von Ihnen verwendete Syntax gibt daher genau diese IP-Adresse und nicht den gesamten Adressbereich an 10.* .

Die Dokumentation für Netsh-Schnittstellen-Portproxy-Befehle – v4tov4 hinzufügen sagt dies:

Verbindungsadresse

Gibt dieIPv4-Adressemit dem eine Verbindung hergestellt werden soll. Gültige Werte sind IP-Adresse, NetBIOS-Name des Computers oder DNS-Name des Computers. Wenn keine Adresse angegeben ist, ist die Standardadresse der lokale Computer.

Listenadresse

Gibt dieIPv4-Adresseauf die gewartet werden soll. Gültige Werte sind IP-Adresse, NetBIOS-Name des Computers oder DNS-Name des Computers. Wenn keine Adresse angegeben ist, ist die Standardadresse der lokale Computer.

Wenn Sie den Portproxy neu erstellen möchten, müssen Sie zuerst den von Ihnen erstellten Portproxy löschen mit v4tov4 löschen.

verwandte Informationen