Ist Windows 7 mit interner Portumleitung möglich?

9

Ich habe eine Anfrage von einem unserer Entwickler erhalten, dass ich Probleme beim Lösen habe.

Hier im Büro verwenden sie Linux-Desktops und ich kann den localhost: 80 über ein iptables nat an localhost: 8080 weiterleiten. Was sie wollen, ist dasselbe zu Hause in Windows 7.

Ich habe zwei Möglichkeiten, dies zu tun. Eine, um den jboss-Webserver und alle Webapps-URLs neu zu konfigurieren (chaotisch). Die andere Möglichkeit besteht darin, den lokalen Host-Port 8080 auf Port 80 umzuleiten / zu natieren. In Windows 7 bin ich mir jedoch nicht sicher, wie ich dies tun soll.

Hat jemand Ideen, wie man das zweite macht?

bdavenport
quelle

Antworten:

6

AFAIK, Win7 hat kein iptables-Äquivalent. Das Schreiben eines Servers, der das tut, was Sie wollen (lauscht an einem Port, kopiert alles auf / von einem anderen), sollte einfach genug sein. Sie finden eine unter dieser URL: http://www.quantumg.net/portforward.php (ungetestet). Die Verwendung eines Reverse-Proxys (Google ist Ihr Freund) passt möglicherweise zur Rechnung für http-ähnlichen Datenverkehr. Überprüfen Sie auch diesen Beitrag: /programming/3721000/port-forwarding-on-windows-7

Alien Lebensform
quelle
Doh, ich fühle mich jetzt wie ein Dummy und vergesse den Begriff Reverse Proxy. Sobald ich abstimmen kann, werde ich für Sie.
Bdavenport
12

Ja, Windows hat ein iptables-Äquivalent, es ist über das Tool netsh und die Portproxy-Schnittstelle .

Der Befehl zu tun, was Sie wollen, wäre

netsh interface portproxy add v4tov4 listenaddress=YOUR_IP_HERE listenport=8080 connectaddress=YOUR_IP_HERE connectport=80 

Beachten Sie, dass dies nur IPv4-Verbindungen ermöglicht. Wenn Sie auch IPv6-Verbindungen weiterleiten möchten, müssen Sie dies auch tun

netsh interface portproxy add v6tov6 listenaddress=YOUR_IP_HERE listenport=8080 connectaddress=YOUR_IP_HERE connectport=80
Scott Chamberlain
quelle
Wird dies über Neustarts hinweg bestehen bleiben? Auch die Befehle sind ungültig, da ich eine Fehlermeldung erhalte: "Ein oder mehrere wesentliche Parameter wurden nicht definiert"
Sorin
@sorin es bleibt bestehen, ich verwende dies in einem System, in dem ich RDP vom Standardport auf einen nicht standardmäßigen Port umleite, und ich muss diesen Befehl nur einmal ausführen, wenn ich eine neue VM einrichte. Was den Fehler betrifft, sind Sie richtig. Ich habe einen Parameter für die Adresse vergessen (was ich sehe, dass Sie behoben sind, danke!)
Scott Chamberlain
Ich habe stattdessen verwendet. add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080Angenommen, Sie möchten Port 80 abhören und zu einem nicht erhöhten Server umleiten, der auf 8080 ausgeführt wird, müssen Sie die Abhör- und Verbindungsports umschalten. Wenn Sie sowohl auf Netzwerk-IP- als auch auf Localhost-Anforderungen antworten möchten, löschen Sie die Listenadresse. Sie können auch zu 127.0.0.1 umleiten, um eine Hardcodierung Ihrer IP-Adresse zu vermeiden.
Carl Walsh
Weitere nützliche Befehle sind in den Microsoft-Dokumenten beschrieben: docs.microsoft.com/en-us/windows-server/networking/technologies/… z. B. um aktuelle Portproxies ( netsh interface portproxy show v4tov4) aufzulisten oder einen Postproxy ( netsh interface portproxy delete v4tov4 listenaddress=localhost listenport=80) zu löschen
neXus
0

Ich denke, Windows hat kein Iptables-Äquivalent. Befehl

netsh interface portproxy ...

Port-Proxy, aber keine Paketweiterleitung. Der Hauptunterschied ist

  • Die Leistung ist viel schlechter als bei iptables (siehe https://plus.google.com/+OlafMonien/posts/fsjUjropYeR ).
  • Die Quell-IP-Adresse wird in localhost geändert (127.0.0.1 oder :: 1 hängt von der IP-Version ab). Sie verlieren die ursprüngliche Quell-IP-Adresse der Anforderung.

Wir hatten diese Technik für die Portweiterleitung verwendet, aber nach diesen Erkenntnissen mussten wir zusätzliche Regeln für die Netzwerkfirewall verwenden, um die Verwendung von Netsh zu vermeiden.

Martin
quelle