Estoy ejecutando Ubuntu 10.04.2 LTS Desktop. Siendo un desarrollador web, naturalmente creé un "me.com" en mi /etc/hosts
archivo. Desafortunadamente, mi resolución de nombre está yendo al DNS antes de verificar primero mi entrada de hosts locales y no puedo entender por qué.
El resultado final es que si mi /etc/resolv.conf contiene nameserver 127.0.0.1
allí primero, entonces recibo una respuesta en mi navegador web de me.com (local) en menos de un segundo. Pero si no tengo esa entrada, entonces mi respuesta tarda a veces hasta 5 segundos si mi ISP es un poco lento.
El problema era tan problemático que en realidad tuve que presentar una pregunta aquí (y alguien lo resolvió) sobre cómo insertar automáticamente esa entrada /etc/resolv.conf
. Pero uno de los usuarios (@shellholic) aquí recomendó encarecidamente (y comentó conmigo una y otra vez al respecto) que debía presentar esta pregunta.
¿Sabes por qué la resolución de nombre de mi estación de trabajo tiene que afectar primero al servidor DNS antes de presionar mi /etc/hosts
entrada de archivo? Por ahora, estoy usando el truco resolv.conf .
fuente
/etc/nsswitch.conf
. Las entradas en mi sistema son un poco no obvias, pero puedes probar las búsquedas solofiles
como una opción y ver si eso marcó la diferencia.cat /etc/nsswitch.conf
ycat /etc/host.conf
? Además: ¿cómo está probando esto (mediante ping, navegador, rastreo de paquetes, etc.)?time getent hosts me.com; hostname --fqdn; grep 'me.com' /etc/hosts; grep hosts /etc/nsswitch.conf; netstat -uln | grep ':53'; cat /etc/host.conf; wc -l /etc/hosts
. No dudes en ofuscar la racionalidad.Respuestas:
El archivo
/etc/nsswitch.conf
le permitirá reconfigurar el orden de la resolución del nombre. Por defecto, el archivo de host es el primero, luego el DNS configurado. Podría haber más opciones.El archivo
/etc/hosts
solo enumera las direcciones IP y los nombres de host (múltiples nombres para una IP si lo desea)El archivo
/etc/resolv.conf
enumerará los dominios de búsqueda predeterminados y también enumerará en secuencia los servidores de nombres a utilizar.fuente
nscd
puede almacenar en caché las consultas de resolución de nombres, pero no respeta ttl (y, por lo tanto, el almacenamiento en caché de hosts está deshabilitado de forma predeterminada).systemd-resolved
también almacenará en caché las entradas. Si ninguno de estos está configurado, los hosts de Linux no almacenan en caché las respuestas DNS . (Los navegadores probablemente lo hagan en la capa de aplicación)