
No entiendo muy bien cómo se relaciona localhost con la IP privada asignada a cada máquina.
Si ejecuto un servidor en localhost:8080, ¿puedo ejecutar algo más en 192.168.xx:8080?
Más específicamente, si ejecuto un servidor Python Waitress en localhost:8080 y uso NGINX para invertir el proxy, ¿puedo hacer que NGINX escuche en el puerto 8080?
Respuesta1
Si ejecuto un servidor en localhost:8080, ¿puedo ejecutar algo más en 192.168.xx:8080?
Sí, puede haber diferentes sockets de escucha en el mismo puerto siempre que estén vinculados a diferentes direcciones locales (es decir, los sockets se rastrean según las combinaciones de dirección: puerto).
(Pero evite mezclar address:port
oyentes específicos con "cualquier dirección" 0.0.0.0:port
o [::]:port
oyente. Por lo general, eso también está permitido, pero tiene requisitos más estrictos; por ejemplo, creo que Linux no lo permite si los dos programas tienen UID diferentes).
No entiendo muy bien cómo se relaciona localhost con la IP privada asignada a cada máquina.
No es así. El nombre "localhost" se resuelve específicamente en las direcciones 127.0.0.1 y [::1], nada más. Nunca utiliza sus direcciones LAN reales.
Respuesta2
localhost
se traduce como 127.0.0.1
, entonces localhost:8080
y 127.0.0.1:8080
son lo mismo.
192.168.x.x
es una dirección IP diferente, por lo tanto se puede reutilizar el mismo puerto. Puede ejecutar diferentes servidores una 127.0.0.1:8080
y otra vez 192.168.0.1:8080
, y si tiene más direcciones IP, incluso puede continuar con, por ejemplo: 192.168.0.2:8080
y192.168.0.3:8080