Portweiterleitung in Windows

262

Ich habe zwei Netzwerkkarten in meinem PC:

Die Haupt-IP hat die lokale IP -> 192.168.1.111 Die sekundäre hat die lokale IP -> 192.168.0.200

Das Hauptgerät verfügt über eine Internetverbindung und das zweite ist mit einem Gerät mit der IP-Adresse 192.168.0.33 verbunden. Es verfügt über einen http-Server in Port 80.

Ich habe einen Apache-Server in der Hauptverbindung (Port 4422) und kann von überall aus darauf zugreifen. Wenn ich jetzt eine Verbindung von 4422 erkenne, möchte ich diese Verbindung auf 192.168.2.33:80 umleiten

Wie kann ich das mit Windows machen?

user1256477
quelle
Weitere Informationen finden Sie hier. technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx
Shankar Damodaran

Antworten:

507

Ich habe es gelöst, es kann ausgeführt werden:

netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33

So entfernen Sie die Weiterleitung:

netsh interface portproxy delete v4tov4 listenport=4422 listenaddress=192.168.1.111

Offizielle Dokumente

user1256477
quelle
21
Stellen Sie nur sicher, dass IPv6 installiert ist. Entsprechend diesem MS KB-Artikel benötigt netsh einige IPv6-Bibliotheken, um die Port-Proxy-Funktion zu konfigurieren.
Renan Mozone
10
Sie können auch mit netsh interface portproxy resetoder netsh interface portproxy delete
patrikbeno
7
Ich habe versucht, diese Technik anzuwenden, und obwohl sie funktionierte, war sie extrem langsam. Stattdessen. Ich habe ein Dienstprogramm namens PassPort ( sourceforge.net/projects/pjs-passport ) gefunden, das dieselbe Art der Portweiterleitung ausführt , die an eine bestimmte Netzwerkkarte gebunden ist, jedoch nicht die Leistungsprobleme von aufweist netsh. Es wird unter Win2008SvrR2 installiert und läuft gut.
James L.
14
Der obige Befehl funktionierte weder unter Windows7 noch unter Windows Server 2003. Ich musste auch den Parameter protocol = tcp angeben . Voller Befehl:netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33 protocol=tcp
immer
3
HINWEIS: Dies funktioniert nur unter TCP. Sie haben also kein Glück, wenn Sie UDP-Verkehr weiterleiten möchten.
user276648
14

nginx ist nützlich für die Weiterleitung von HTTP auf vielen Plattformen, einschließlich Windows. Mit der erweiterten Konfiguration ist es einfach einzurichten und zu erweitern. Eine Grundkonfiguration könnte ungefähr so ​​aussehen:

events {}

http {
     server {

        listen 192.168.1.111:4422;

        location / {
            proxy_pass http://192.168.2.33:80/;
        }
     }
}
Jonas Lundgren
quelle
14
Dies ist eine gute Lösung für die HTTP-Weiterleitung, jedoch nur für die HTTP-Weiterleitung (mit all ihren Einschränkungen, z. B. benötigen Websockets zusätzliche Konfiguration). Für die HTTPS-Weiterleitung oder andere beliebige Protokolle (z. B. RDP) ist dies meistens nutzlos.
Uli Köhler
2
Das heißt, es ist eine unglaublich gute Lösung für die HTTP-Weiterleitung, daher bin ich froh, dass sie hier ist.
Casey
Warum ist das so? Sie können weiterleiten, was Sie
möchten
@uli über welche Einstellungen tolking Sie ... Es wird nützlich sein, zu teilen
user3787216
1
@ UliKöhler Nginx ist ein Tool zum Entkoppeln von TCP-Verbindungen. Sie können es für HTTP, HTTPS, AMQP, WebSockets usw. verwenden. Es wird intern von Tools auf der ganzen Welt verwendet, um die allgemeine TCP-Konnektivität umzuleiten und zu verwalten. Das ist also die richtige Lösung. Siehe auch netfxharmonics.com/2016/03/nginx
David Betz
1

Ich habe dieses kleine Dienstprogramm bei Bedarf verwendet: http://www.analogx.com/contents/download/network/pmapper/freeware.htm

Das letzte Mal, dass dieses Dienstprogramm aktualisiert wurde, war im Jahr 2009. Ich habe festgestellt, dass es auf meinem Win10-Computer einige Sekunden lang hängt, wenn manchmal neue Fenster geöffnet werden. Abgesehen von diesem UI-Fehler macht es seine Arbeit immer noch gut.

voon
quelle