redirection de port dans windows

262

J'ai deux cartes réseau dans mon PC:

Le principal a l'ip local -> 192.168.1.111 Les secondaires ont l'ip local -> 192.168.0.200

Le principal a une connexion Internet et le second est connecté à un appareil avec l'IP 192.168.0.33, il a un serveur http dans le port 80.

J'ai un serveur apache dans la connexion principale (port 4422), et je peux accéder de n'importe où, ce que je veux maintenant, c'est quand je détecte une connexion à partir de 4422, je veux rediriger cette connexion vers 192.168.2.33:80

Comment faire cela avec Windows?

user1256477
la source
Plus d'informations peuvent être trouvées ici. technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx
Shankar Damodaran

Réponses:

507

Je l'ai résolu, cela peut être fait en exécutant:

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

Pour supprimer le transfert:

netsh interface portproxy delete v4tov4 listenport=4422 listenaddress=192.168.1.111

Documents officiels

user1256477
la source
21
Assurez-vous simplement d'avoir installé IPv6. Conformément à cet article MS KB , netsh a besoin de bibliothèques IPv6 pour configurer la fonction de proxy de port.
Renan Mozone
10
En outre, vous pouvez effectuer le nettoyage à l'aide de netsh interface portproxy resetou netsh interface portproxy delete
patrikbeno
7
J'ai essayé d'utiliser cette technique, et même si cela a fonctionné, c'était extrêmement lent. Au lieu. J'ai trouvé un utilitaire appelé PassPort ( sourceforge.net/projects/pjs-passport ) qui fait le même type de redirection de port lié à une carte réseau spécifique, mais n'a pas les problèmes de performances de netsh. Il s'installe et fonctionne bien sur Win2008SvrR2.
James L.
14
La commande ci-dessus n'a pas fonctionné pour moi sur Windows7 ni sur Windows Server 2003. J'ai dû également spécifier le paramètre protocol = tcp . Commande complète:netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33 protocol=tcp
alwi
3
Notez que cela ne fonctionne que sur TCP , donc pas de chance si vous vouliez transférer le trafic UDP.
user276648
14

nginx est utile pour transférer HTTP sur de nombreuses plates-formes, y compris Windows. Il est facile à installer et à étendre avec une configuration plus avancée. Une configuration de base pourrait ressembler à ceci:

events {}

http {
     server {

        listen 192.168.1.111:4422;

        location / {
            proxy_pass http://192.168.2.33:80/;
        }
     }
}
Jonas Lundgren
la source
14
C'est une bonne solution pour le transfert HTTP, mais uniquement pour le transfert HTTP (avec toutes ses mises en garde, par exemple, les websockets nécessitent une configuration supplémentaire). Pour le transfert HTTPS ou d'autres protocoles arbitraires (par exemple RDP), c'est surtout inutile.
Uli Köhler
2
Cela dit, c'est une très bonne solution pour le transfert HTTP, donc je suis content qu'elle soit là.
Casey
Pourquoi donc? Vous pouvez diffuser en continu ce que vous voulez, y compris https
user1156544
@uli quels paramètres tolérez-vous ... Il sera utile de partager
user3787216
1
@ UliKöhler Nginx est un outil pour découpler les connexions TCP. Vous pouvez l'utiliser pour HTTP, HTTPS, AMQP, WebSockets, peu importe. Il est utilisé en interne par des outils partout pour rediriger et gérer la connectivité TCP générale. C'est donc la bonne solution. Voir aussi netfxharmonics.com/2016/03/nginx
David Betz
1

J'ai utilisé ce petit utilitaire chaque fois que le besoin s'en fait sentir: http://www.analogx.com/contents/download/network/pmapper/freeware.htm

La dernière fois que cet utilitaire a été mis à jour, c'était en 2009. J'ai remarqué sur ma machine Win10, il se bloque pendant quelques secondes lors de l'ouverture de nouvelles fenêtres parfois. Autre que ce problème d'interface utilisateur, il fait toujours bien son travail.

voon
la source