Файл 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