Файл hosts, похоже, игнорируется

У меня почти свежая настольная коробка Ubuntu. ОС была установлена ​​две недели назад и обновлена ​​из репозиториев karmic. На прошлой неделе у меня не было проблем с DNS. Но на этой неделе что-то изменилось. Я не уверен, что и когда, и не уверен, изменил ли я какие-либо конфиги.

Так что теперь у меня действительно странная ситуация. По логам разрешение имен должно работать нормально.

/ и т.д. / хосты

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

Но если факт, это не так.

user @ test ~> ping test

PING localhost (127.0.0.1) 56(84) bytes of data.
[skip]

Пинг в порядке.

user @ test ~> host test

test.mydomain.com has address xx.xxx.161.201

Я подозреваю, что NetworkManager может вызвать это неправильное поведение, но не знаю, с чего начать, чтобы проверить это. Есть мысли, предложения?

4 ответа

С этой конфигурацией большинство приложений будут успешно работать с вашей записью из /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. Файл должен быть доступен для чтения всем.

В настоящее время (2021 г.) Firefox использует DNS через HTTPS, который вам необходимо отключить, чтобы он учитывал ваш файл хостов. Я думаю, что это имеет некоторые последствия для конфиденциальности, поэтому получите информацию, прежде чем делать это.

Зайдите в настройки Firefox, найдите DNS. Нажмитеsettingsрядом сConfigure how firefox connects to the internet. Внизу снимите флажокEnable DNS over HTTPS

Другие вопросы по тегам