De repente me siento testarudo porque mi subdominio en localhost no funciona. Mi /etc/hosts
archivo se ve así:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 develop2win.de
127.0.0.1 develop2win.de
127.0.0.1 alomvar.localhost
Poner todos los nombres de host para una IP en una línea como esta tampoco funciona:
127.0.0.1 localhost alomvar.localhost develop2win.de www.develop2win.de
También reinicié el solucionador de DNS apropiado para OS X 10.9 Mavericks con el siguiente comando:
dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Pero la emisión nslookup alomvar.localhost
en la terminal produce lo siguiente:
Server: 192.168.178.1
Address: 192.168.178.1#53
** server can't find alomvar.localhost: NXDOMAIN
Esa es la IP del enrutador en mi red local. Parece que en este caso se omite el archivo de hosts localhost para su resolución. Antes, el proceso develop2win.de
se resolvió con éxito y apuntó a un host virtual Apache local. Pero ahora ni siquiera eso funciona, el mismo error que el anterior (¿WTF?). Sin embargo, mirar hacia arriba localhost
funciona bien, aún así:
Server: 192.168.178.1
Address: 192.168.178.1#53
Name: localhost
Address: 127.0.0.1
Actualización 1: También reinicié, sin ningún cambio. Parece que las consultas de DNS no se resuelven localmente, sino que se envían a mi enrutador.
¿Qué me estoy perdiendo? ¿Alguien más intentó configurar un subdominio para localhost en OS X Mavericks? Ni siquiera se trata de Apache, sólo del DNS.
Aquí hay uncaptura de pantalla de mi configuración de DNS en las preferencias del sistema, por cierto. Como todavía no tengo suficiente reputación para insertar imágenes, este es un enlace a un sitio externo.
Actualización 2: Realicé comprobaciones host
y ping
comandos en la terminal, como señaló dave_thompson_085. Para localhost funciona bien:
$ host localhost
localhost has address 127.0.0.1
Pero para el subdominio no:
$ host alomvar.localhost
Host alomvar.localhost not found: 3(NXDOMAIN)
Hacer ping a localhost también funciona bien:
$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.048 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.085 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.076 ms
^C
--- localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.048/0.072/0.085/0.014 ms
Y ahora, irritantemente, funciona también para el subdominio:
$ ping alomvar.localhost
PING alomvar.localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.091 ms
^C
--- alomvar.localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.039/0.062/0.091/0.022 ms
¿Cómo puedo hacer ping sin problemas pero no resolver el subdominio? Aparentemente debería funcionar así, cuando veo cómo lo hicieron otras personas en Internet. No soy un crack en lo que a networking se refiere. Probablemente rompí algo más que lo que se necesita directamente para configurar esto.
También ejecuté dig
en localhost y el subdominio. El resultado es bastante largo y creo que esta pregunta ya está bastante confusa. VerEste archivopara salida de excavación.
Actualización 3: Al desconectar mi Mac de la red (deshabilitando el adaptador de red Ethernet) dig
y host
tampoco puedo buscar localhost.
Actualización 4: Descubrí que funciona dentro de los navegadores para mostrar el host virtual Apache escuchando al host llamado. No es una solución al problema, sino una circunstancia con la que puedo vivir y trabajar. Sin embargo, todavía estoy interesado en resolver el problema. Si alguien tiene alguna idea más, dígame.
Respuesta1
dig
, host
y nslookup
todos omiten el solucionador de nombres del sistema y consultan DNS directamente. Por lo tanto, no verán los nombres definidos en /etc/hosts (a menos que esténtambiéndefinido en el servicio DNS), o cualquier mDNS (también conocido como Bonjour). Nombres locales, o entradas de computadora en servicios de directorio, o...
Si desea ver lo que ve el solucionador del sistema, la mejor herramienta es dscacheutil
. Desafortunadamente, su sintaxis es bastante torpe ( dscacheutil -q host -a name alomvar.localhost
), por lo que generalmente es más rápido usar algo como ping
eso que usa el solucionador de nombres del sistema. Pero si desea obtener detalles completos (por ejemplo, si un nombre se resuelve en varias direcciones), dscacheutil
este es el camino a seguir.