У меня есть пара локальных доменов, разрешенных к 127.0.0.1 в моем /etc/hosts файле. И все было в порядке в течение некоторого времени, но теперь, когда я запускаю:
nslookup test.local
Это приводит к:
Server: 192.168.1.3
Address: 192.168.1.3#53
** server can't find test.local: NXDOMAIN
192.168.1.3 - это наш сетевой DNS, и это не должен знать мой локальный домен test.local. После нескольких поисков я обнаружил, что файл /etc/nsswitch.conf содержит информацию о приоритете источников DNS для запроса. Но там не было проблем! Вот мой:
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Так кто-нибудь знает, почему мой файл hosts не включен в поиск DNS?
Я предполагаю, что вам требуется разрешение имен из файла /etc/hosts для определенного хоста (mysite.com).
Еще одна распространенная проблема, которая может вызвать такое поведение, состоит в том, что у вас может быть много записей на /etc/hosts для одного и того же IP, например:
1.1.1.1 host1.domain1.com
1.1.1.1 host2.domain2.com
В некоторых реализациях это может привести к тому, что разрешение имен будет передано DNS. Быстрое исправление, группируйте все в 1 строку
1.1.1.1 host1.domain1.com host2.domain2.com
Еще одна распространенная вещь, которую я вижу, - это то, что кто-то (обычно меня) меняет IP-адрес с именем хоста в /etc/hosts - например:
mysite.com 10.2.3.4
На первый взгляд это выглядит нормально ... Вот мое решение примерно в 50% случаев:
10.2.3.4 mysite.com