2010-09-15 24 views
7

¿Cómo redirecciono una solicitud entrante en el puerto xxx a localhost: yyy en Windows 7?Reenvío de puertos en Windows 7

El Servidor de Desarrollo (frente a 2008) solo permite el acceso desde el servidor local, lo cual no es suficiente. Necesito probar mi aplicación desde varias computadoras.

Respuesta

6

Gracias por las sugerencias chicos, aunque yo mismo encontré la respuesta.

Descargué la versión 3 de Microsoft SOAP Toolkit e inicié MSSoapT, creé un rastreo de formateo escuchando en el puerto 8080, reenviando al host: puerto 127.0.0.1: 3804. Mi problema fue que usé "localhost" y no "127.0.0.1" .

Ahora cada solicitud hecha a mi máquina de desarrollo desde otras computadoras a través del puerto 8080 será redirigida al puerto 3804 donde ASP.NET Development Server está configurado estáticamente para escuchar al depurar VS.NET webapps.

+0

@: muchas gracias. realmente bueno, resolvió mi problema también ... :) –

0

No estoy seguro de lo que está buscando. Sin embargo, el reenvío de puertos será relevante cuando tenga un enrutador en su lugar y deba reenviar explícitamente una solicitud en un puerto de enrutador específico a una IP y puerto específicos en una computadora con LAN. Si desea acceder al servidor web desde otras computadoras LAN en la misma red, entonces http://ip-address debería funcionar bien. También asegúrese de que su servidor web esté escuchando en la IP LAN y no solo esté vinculado a localhost.

+0

Decir que tengo una aplicación web desarrollada en VS.NET se ejecuta en modo de depuración. Esto iniciará una aplicación en Windows llamada ASP.NET Development Server y escuchará, por ejemplo, el puerto 3804. Ahora necesito una herramienta proxy/reenvío de puertos de algún tipo para aceptar solicitudes entrantes en un puerto diferente, digamos 8080 - y disparar la solicitud contra "localhost: 3804". Esto forzará a Development Server a 'pensar' que la solicitud provino de localhost y no de una máquina remota. El problema es que ASP.NET Development Server solo permite solicitudes que se originaron desde la misma máquina que se está ejecutando. – user448787

+1

¿No puedes usar simplemente ejecutar tu aplicación web en IIS? –

+0

Si no puede instalar IIS en Windows 7, entonces probablemente sería más fácil instalar Apache y ejecutarlo en modo proxy. Donde Apache serviría el contenido de http: // localhost: 3804. Puede configurar fácilmente Apache en la ventana y luego buscar en el módulo mod_proxy. –

1

Si esto realmente es para algunas pruebas, puede crear un servidor que escuche en un puerto, y cuando recibe una conexión entrante genera un hilo que abre una conexión al servidor local real, y luego solo espera datos para ven en cada extremo y baraja hacia el otro extremo. Si cualquiera de las tomas se cierra, la cadena de trabajo terminaría. Evidentemente, esto no es una solución escalable, pero para las pruebas debería ser el truco.

+0

Sí, pero como desarrollador soy flojo.Así que me preguntaba quién escribió esa herramienta y dónde puedo encontrarla ;-) – user448787

0

Estoy usando Windows 7 de 64 bits y no pude conseguir que Microsoft SOAP Toolkit funcionara en mi máquina para el reenvío de puertos y no me gustó el software gratuito de reenvío de puertos que encontré, así que cambié mi VS 2010 aplicación web para usar iis locales, sé que esto no ayuda a las personas que corren 2008, pero funciona si tiene 2010 ... Aquí hay una captura de pantalla de mi cambio: estoy haciendo esto para probar en el iPad ...

enter image description here

6

En el símbolo del sistema.

$> netsh 
$> interface portproxy 
$> add v4tov4 listenport=xxx connectaddress=127.0.0.1 connectport=yyy protocol=tcp 

Ver: http://technet.microsoft.com/en-us/library/cc776297%28WS.10%29.aspx#BKMK_1

+0

pequeño error ortográfico. debería leer 'interface portproxy' – nicholas

+0

¡Esto funciona perfecto y no requiere la instalación de ningún software adicional! Supongo, sin embargo, que se restablece cuando el sistema se reinicia. Puedes hacer esto en una sola línea (para un script de inicio de sesión) como esta 'netsh interface portproxy add v4tov4 ...' pero no soy lo suficientemente bueno con Windows para saber cómo hacer que sea un sistema predeterminado antes de iniciar sesión (y ejecutar StartUp guiones). –

+0

Esto no funciona en mi sistema Win7 con localhost; funciona si no especifico el connectaddress, o uso la ip pública como el conecteddress. Pero al especificar 127.0.0.1 no se devuelve ningún error, sin embargo, la compilación no está escuchando en el puerto especificado. –

Cuestiones relacionadas