Espero que localhost se resuelva a 127.0.0.1, pero recibo NXDOMAIN. Los comandos dig y host también devuelven resolución fallida de DNS. ¿Por qué debería localhost ir a DNS?
nslookup localhost
Servidor: 8.8.8.8
Dirección: 8.8.8.8#53
** el servidor no puede encontrar localhost: NXDOMAIN
Usar el resolver de macOS produce el resultado esperado:
dscacheutil -q host -a name localhost
nombre: localhost
dirección ipv6: ::1
nombre: localhost
dirección ip: 127.0.0.1
Ping localhost
funciona. También funciona traceroute
:
PING localhost (127.0.0.1): 56 bytes de datos
64 bytes desde 127.0.0.1: icmp_seq=0 ttl=64 tiempo=0.073 ms
64 bytes desde 127.0.0.1: icmp_seq=1 ttl=64 tiempo=0.127 ms
64 bytes desde 127.0.0.1: icmp_seq=2 ttl=64 tiempo=0.110 ms
^C
--- estadísticas de ping de localhost ---
3 paquetes transmitidos, 3 paquetes recibidos, 0.0% de pérdida de paquetes
tiempo de ida y vuelta min/avg/max/stddev = 0.073/0.103/0.127/0.023 ms
traceroute a localhost (127.0.0.1), 64 saltos máximos, 40 bytes de paquetes
1 localhost (127.0.0.1) 0.371 ms 0.078 ms 0.059 ms
usar curl para http://localhost:5000
no devuelve nada, ni siquiera un error. Usar curl http://127.0.0.1:5000
se conecta como se espera. curl a una dirección que no se resuelve resulta en un error de resolución. curl a http://localhost
resulta en un:
error "no se pudo conectar al puerto 80".
curl http://127.0.0.1:5000
¡Hola, Mundo!%
curl http://sdfjasldkfjsalkdfj.com
curl: (6) No se pudo resolver el host: sdfjasldkfjsalkdfj.com
curl http://localhost
curl: (7) Error al conectar al puerto 80 de localhost después de 0 ms: No se pudo conectar al servidor
Para constancia, /etc/hosts
y /private/etc/hosts
son idénticos como se muestra aquí:
##
# Base de datos de host
#
# localhost se utiliza para configurar la interfaz de bucle local
# cuando el sistema se está iniciando. No cambie esta entrada.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
Por qué me preocupa esto: Estoy desarrollando una aplicación Flask en un devcontainer usando VSCode. Cuando configuro el reenvío de puertos para el puerto 5000
desde el devcontainer a mi máquina local, VSCode construye URI en forma de http://localhost:5000
que no funcionan ni en safari ni en Firefox, ni en el "navegador simple" de VSCode porque localhost
no se resuelve. Tengo que cambiarlo a http://127.0.0.1:5000
.
No he descubierto una forma de hacer que VSCode construya URI utilizando la dirección IP de bucle local en su lugar.
¿Qué está pasando con esto?