Quiero especificar nombres de host con dos puertos diferentes en el hosts
archivo de Windows .
¿Hay una manera de hacerlo? ¿O no está permitido por el propio Windows?
He estado perdiendo el tiempo buscando la solución durante las últimas 8 horas.
¿Es posible especificar puertos en el archivo host hosts
? Por ejemplo: 127.0.0.1:80
y127.0.0.1:9211
windows
ip-address
localhost
Peter Mortensen
fuente
fuente
Respuestas:
Simplemente use direcciones IP sin puertos. Ejemplo:
Luego, para acceder a 192.168.2.50:5555 desde su navegador (u otro programa):
El
hosts
archivo se puede encontrar en:Linux
/etc/hosts
Ventanas :
C:\Windows\System32\drivers\etc\hosts
fuente
C:\Windows\System32\drivers\etc\hosts
?No puede asociar un número de puerto con un nombre de host asignado a una IP en el archivo de hosts. Puede lograr esto con Fiddler utilizando FiddlerScript:
fuente
hosts
archivo es solo para resolución de nombre de host<hostname>:<port>
, valores por defecto al puerto80
Escenario de problema típico
127.0.0.1
también conocidalocalhost
(definida en el archivo hosts) .Para evitar la colisión entre posiblemente otros servidores existentes / en ejecución, la aplicación generalmente le permite cambiar el puerto, pero no la dirección IP.
2a. Si pudiera cambiar la dirección IP de los servidores a otra en el espacio de direcciones reservado de bucle invertido
127.0.0.0/8
, entonces probablemente no estaría intentando establecer puertos en el archivo de hosts.Solución posible
Puede solucionar esto utilizando la herramienta de red incluida en Windows
netsh
como proxy de puerto.Visión general
Comportamiento
localhost:8081
127.65.43.21 example.app
127.0.0.0/8
puede usar cualquier dirección libre en la red .127.65.43.21:80
no está ocupado por otro servicio.netstat -a -n -p TCP | grep "LISTENING"
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
Notas:
- Estas modificaciones de comandos / archivos deben ejecutarse con derechos de administrador
- netsh portproxy necesita bibliotecas de ipv6 incluso solo para usar v4tov4, por lo general, también se incluirán de forma predeterminada; de lo contrario, instálelas con el siguiente comando:
netsh interface ipv6 install
Puede ver la entrada que ha agregado con el comando:
netsh interface portproxy show v4tov4
Puede eliminar la entrada con el siguiente comando:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Enlaces a recursos:
Nota: esta respuesta es una duplicación de mi respuesta discutida en esta pregunta / respuesta similar en stackoverflow.
fuente