У меня почти свежий настольный компьютер Ubuntu. ОС была установлена две недели назад и обновлена из кармических репозиториев. На прошлой неделе проблем с DNS не было. Но на этой неделе что-то изменилось. Я не уверен, что и когда, и не уверен, менял ли я какие-то конфиги.
Так что теперь у меня действительно странная ситуация. Судя по журналам, разрешение имен должно работать нормально.
/ etc / hosts
127.0.0.1 localhost test
127.0.1.1 desktop
/etc/host.conf
order hosts,bind
multi on
/etc/resolv.conf
# Generated by NetworkManager
search search servers obtained via DHCP
nameserver 192.168.0.3
/etc/nsswitch.conf
passwd: compat
group: compat
shadow: compat
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Но если на самом деле это не так.
пользователь @ test ~> тест ping
PING localhost (127.0.0.1) 56(84) bytes of data.
[skip]
Пинг в порядке.
пользователь @ test ~> host test
test.mydomain.com has address xx.xxx.161.201
Я подозреваю, что NetworkManager может вызвать это неправильное поведение, но не знаю, с чего начать его проверку. Есть мысли, предложения?
С этой конфигурацией большинство приложений будут работать с вашей записью из /etc/hosts
.
тем не мение host
не смотрит на /etc/nsswitch.conf
. Это сделано намеренно, а не случайно, поскольку host
является конкретно программа поиска DNS. /etc/hosts
это не DNS, это (в основном) то, что мы использовали перед у нас был DNS.
То же самое верно и для dig
и nslookup
- они тоже специфичны для DNS.
В host
команда (вместе с dig
и nslookup
) является частью bind
Утилиты DNS. Как утилита преобразования DNS, она выполняет только разрешение DNS.
Если вы хотите получить запись из любого libnss
хранилище данных, вы можете использовать getent
программа. Например, чтобы получить запись hosts, используйте ее так:
getent hosts google.com
Это соответствует порядку разрешения, изложенному в hosts:
в /etc/nsswitch.conf
по порядку, который включает /etc/hosts
если "файлы" указаны как одна из опций.
Для меня эта проблема возникла из-за неправильных прав доступа к файлам. Только root может читать / etc / hosts. Файл должен быть доступен для чтения всем.