Windows 7 con redirección de puerto interno, ¿es posible?

9

Recibí una solicitud de uno de nuestros desarrolladores de que tengo problemas para resolver.

Aquí en la oficina usan escritorios Linux y puedo reenviar localhost: 80 a través de iptables nat a localhost: 8080. Lo que quieren es lo mismo en casa en Windows 7.

Tengo lo que creo que son dos formas de hacerlo. Uno para reconfigurar el servidor web jboss y todas las URL de webapps (desordenado). El otro es encontrar una forma de redirigir / nat el puerto localhost 8080 al puerto 80. Aunque en Windows 7 no estoy seguro de cómo hacerlo.

¿Alguien tiene alguna idea sobre cómo hacer el segundo?

bdavenport
fuente

Respuestas:

6

AFAIK, Win7 no tiene iptables equivalentes. Escribir un servidor que haga lo que quiere (escucha en un puerto, copia todo a / de otro) debería ser bastante fácil. Puede encontrar uno en esta URL: http://www.quantumg.net/portforward.php (no probado). El uso de un proxy inverso (Google es su amigo) puede ajustarse a la factura del tráfico similar a http. Consulte también esta publicación: /programming/3721000/port-forwarding-on-windows-7

Forma de vida alienígena
fuente
Doh, me siento como un muñeco ahora, olvidando el término proxy inverso. Tan pronto como pueda votar, lo haré por ti.
bdavenport
12

Sí, Windows tiene un equivalente de iptables, es a través de la herramienta netsh y la interfaz portproxy .

El comando para hacer lo que quieras sería

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

Tenga en cuenta que esto solo hará conexiones IPv4, si también desea reenviar conexiones IPv6, también deberá hacerlo

netsh interface portproxy add v6tov6 listenaddress=YOUR_IP_HERE listenport=8080 connectaddress=YOUR_IP_HERE connectport=80
Scott Chamberlain
fuente
¿Será esto persistente en todos los reinicios? Además, los comandos no son válidos, ya que aparece un error: "uno o más parámetros esenciales no se definieron"
sorin
@sorin persiste, lo uso en un sistema donde redirijo RDP desde el puerto estándar a un puerto no estándar y solo necesito ejecutar este comando una vez cuando estoy configurando una nueva VM. En cuanto al error, estás en lo cierto, olvidé un parámetro para la dirección (que veo arreglado, ¡gracias!)
Scott Chamberlain
En su lugar, utilicé add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080Suponiendo que desea escuchar en el puerto 80 y redirigir a un servidor no elevado que se ejecuta en 8080, debe cambiar los puertos de escucha y conexión. Si desea responder a las solicitudes de IP de red y localhost, suelte la dirección de escucha. Y puede redirigir a 127.0.0.1 para evitar codificar su dirección IP.
Carl Walsh
Otros comandos útiles se describen en los documentos de Microsoft: docs.microsoft.com/en-us/windows-server/networking/technologies/… por ejemplo, para enumerar los portproxies actuales ( netsh interface portproxy show v4tov4) o eliminar un postproxy ( netsh interface portproxy delete v4tov4 listenaddress=localhost listenport=80)
neXus
0

Creo que Windows no tiene iptables equivalentes. Mando

netsh interface portproxy ...

hacer proxy de puerto pero no reenvío de paquetes. La principal diferencia es

Habíamos estado usando esta técnica para el reenvío de puertos, pero después de esos hallazgos tuvimos que usar reglas adicionales en el firewall de la red para evitar el uso de netsh.

Martín
fuente