En Windows, necesito asignar todo el tráfico de una dirección IP (por ejemplo, 10.255.255.255) a otra (por ejemplo, 127.0.0.1).
Me encontré con netsh interface portproxy y lo probé.
netsh interface portproxy add v4tov4 listenaddress=10.255.255.255 listenport=7073 connectaddress=127.0.0.1 connectport=7071
El objetivo es que si un usuario envía cualquier paquete es 10.255.255.255:7073
como si ella enviara los paquetes a127.0.0.1:7071
netsh interface portproxy show all
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
10.255.255.255 7073 127.0.0.1 7071
También agregué la regla de firewall para el puerto 7073.
netsh advfirewall firewall add rule name="7073 port" protocol=TCP dir=in localport=7073 action=allow
Esto es en Windows 11.
Los resultados de netstat -na|find "7073" están vacíos y el mismo resultado para 7071 es el siguiente
netstat -na|find "7071"
TCP 0.0.0.0:7071 0.0.0.0:0 LISTENING
En mi aplicación, primero intenté desde el cartero enviar la solicitud a 10.255.255.255:7073 y se me agotó el tiempo de espera. La misma solicitud se puede enviar correctamente a 127.0.0.1:7071.
Si hago telnet al 7073, no puedo conectarme.
telnet 10.255.255.255 7073
Connecting To 10.255.255.255...Could not open connection to the host, on port 7073: Connect failed
He comprobado que IP Helper
el servicio también se está ejecutando.
Mi intención es que si los usuarios ya pueden enviar solicitudes a 127.0.0.1:7071
, después del reenvío de puertos, pueden enviar solicitudes 10.255.255.255:7073
y ver el mismo comportamiento. Mi aplicación realmente envía solicitudes HTTP.
Tenga en cuenta que NINGÚN servicio está realmente escuchando 7073
cuál es el tráfico entrante. Pero ese es el punto, quiero que cualquiera que envíe algo a este puerto (aunque nadie esté escuchando en él), el tráfico se dirija 7071
(al cual alguien esté escuchando en él).
Con respecto al mapeo de una IP: puerto a otro para reenviar todo el tráfico de red de ida y vuelta desde la IP de origen a la IP de destino, ¿es correcto mi enfoque?
En caso afirmativo, ¿qué podría estar mal aquí?
Gracias
Respuesta1
El problema con el netsh
comando es al especificar los parámetros de listenaddress
y connectaddress
, que son para
una dirección IP específica, no para un rango de direcciones.
Por lo tanto, la sintaxis 10.255.255.255
que utilizó especifica esta dirección IP exacta y no todo el rango de 10.*
direcciones.
La documentación para Comandos portproxy de la interfaz Netsh: agregar v4tov4 dice esto:
dirección de conexión
Especifica eldirección IPv4al que conectarse. Los valores aceptables son la dirección IP, el nombre NetBIOS de la computadora o el nombre DNS de la computadora. Si no se especifica una dirección, el valor predeterminado es la computadora local.
dirección de escucha
Especifica eldirección IPv4por el cual escuchar. Los valores aceptables son la dirección IP, el nombre NetBIOS de la computadora o el nombre DNS de la computadora. Si no se especifica una dirección, el valor predeterminado es la computadora local.
Si desea recrear el portproxy, primero deberá eliminar el que creó usando eliminar v4tov4.