Windows 7 avec redirection de port interne, est-ce possible?

9

J'ai reçu une demande de l'un de nos développeurs que j'ai du mal à résoudre.

Ici, au bureau, ils utilisent des bureaux Linux et je peux transmettre le localhost: 80 via un nat iptables à localhost: 8080. Ce qu'ils veulent, c'est la même chose à la maison dans Windows 7.

J'ai ce que je pense être deux façons de procéder. Un pour reconfigurer le serveur web jboss et toutes les URL des webapps (en désordre). L'autre est de trouver un moyen de rediriger / nat le port localhost 8080 vers le port 80. Bien que dans Windows 7, je ne sais pas comment procéder.

Quelqu'un a des idées sur la façon de faire la seconde?

bdavenport
la source

Réponses:

6

AFAIK, Win7 n'a pas d'équivalent iptables. Écrire un serveur qui fait ce que vous voulez (écoute sur un port, copie tout vers / depuis un autre) devrait être assez facile. Vous pouvez en trouver un à cette URL: http://www.quantumg.net/portforward.php (non testé). L'utilisation d'un proxy inverse (Google est votre ami) peut correspondre à la facture pour le trafic de type http. Consultez également cet article: /programming/3721000/port-forwarding-on-windows-7

Forme de vie extraterrestre
la source
Doh, je me sens comme un mannequin maintenant, oubliant le terme proxy inverse. Dès que je pourrai voter, je le ferai pour vous.
bdavenport
12

Oui, Windows a un équivalent iptables, c'est via l'outil netsh et l'interface portproxy .

La commande pour faire ce que vous voulez serait

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

Notez que cela ne fera que des connexions IPv4, si vous souhaitez également transférer des connexions IPv6, vous devrez également le faire

netsh interface portproxy add v6tov6 listenaddress=YOUR_IP_HERE listenport=8080 connectaddress=YOUR_IP_HERE connectport=80
Scott Chamberlain
la source
Cela persistera-t-il lors des redémarrages? De plus, les commandes ne sont pas valides, car j'obtiens une erreur: "un ou plusieurs paramètres essentiels n'ont pas été définis"
sorin
@sorin ça persiste, je l'utilise dans un système où je redirige RDP du port standard vers un port non standard et je n'ai besoin d'exécuter cette commande qu'une seule fois lorsque je configure une nouvelle machine virtuelle. Quant à l'erreur, vous avez raison j'ai oublié un paramètre pour l'adresse (que je vous vois corrigé, merci!)
Scott Chamberlain
J'ai plutôt utilisé add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080En supposant que vous vouliez écouter sur le port 80 et rediriger vers un serveur non élevé fonctionnant sur 8080, vous devez changer les ports d'écoute et de connexion. Si vous souhaitez répondre à la fois aux demandes IP du réseau et aux hôtes locaux, supprimez l'adresse d'écoute. Et vous pouvez rediriger vers 127.0.0.1 pour éviter de coder en dur votre adresse IP.
Carl Walsh
D'autres commandes utiles sont décrites dans les documents Microsoft: docs.microsoft.com/en-us/windows-server/networking/technologies/… par exemple, pour répertorier les portproxies actuels ( netsh interface portproxy show v4tov4) ou pour supprimer un postproxy ( netsh interface portproxy delete v4tov4 listenaddress=localhost listenport=80)
neXus
0

Je pense que Windows n'a pas d'équivalent iptables. Commander

netsh interface portproxy ...

faire un proxy de port mais pas de transfert de paquets. La principale différence est

Nous utilisions cette technique pour rediriger les ports mais après ces résultats, nous avons dû utiliser des règles supplémentaires sur le pare-feu réseau pour éviter l'utilisation de netsh.

Martin
la source