Как настроить локальный поиск DNS в Ubuntu 16.10?

Я недавно установил Ubuntu 16.10 и rsync сделал резервную копию моего предыдущего домашнего каталога с kubuntu 16.04 до моей новой установки. Все работает хорошо, но мне не удалось разрешить локальные адреса, несмотря на большое количество проб и ошибок.

Кажется, что все сети работают безупречно. Просмотр интернета, поиск DNS внешних адресов, ssh и т. Д. - это здорово. Локально, я могу получить доступ к машинам через ssh с их адресами, но не с их именами. В nautilus/samba все работает нормально, то есть WINS работает. Единственная проблема, по-видимому, заключается в локальной сети DNS. Я установил и запустил avahi-daemon, как это было в Ubuntu.

Я включил некоторые способы устранения неполадок, используя <<>> для сокращения избыточных или правильно работающих частей.

$ nmcli g
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled 

$ ping tendril8 << or tendril8.local >>
ping: tendril8: Name or service not known

$ ping gateway
PING gateway (192.168.1.1) 56(84) bytes of data.
64 bytes from gateway (192.168.1.1): icmp_seq=1 ttl=64 time=4.16 ms

$ ping Ask-ubuntu.ru
PING Ask-ubuntu.ru (151.101.129.69) 56(84) bytes of data.
64 bytes from 151.101.129.69 (151.101.129.69): icmp_seq=1 ttl=49 time=43.0 ms

$ nslookup Ask-ubuntu.ru
Server:     127.0.1.1
Address:    127.0.0.1#53
<< followed by several IP addresses >>

$ nslookup tendril8 << or tendril8.local >>
Server:     127.0.1.1
Address:    127.0.0.1#53
** server can't find tendril8: NXDOMAIN

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

$ ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Oct 15 19:30 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

$ cat /etc/nsswitch.conf
# /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
gshadow:        files

hosts:          files resolve [!UNAVAIL=return] mdns4_minimal dns [NOTFOUND=return]
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Примечание: я потратил много времени на поиск "старых" решений до перехода Ubuntu на systemd.resolved в 16.10. Они не сработали для меня, и я не считаю, что это будет дубликат вопроса к аналогичным с предыдущими конфигурациями Ubuntu.

3 ответа

Решение

Если я правильно понимаю ваш вопрос, вы не сможете разрешить свои локальные имена хостов.

При этом у меня была та же проблема со свежей установкой 16.10, и она оказалась известной проблемой ( https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624071), связанной с libnss. -решить в systemd.

Решение в моем случае состояло в том, чтобы просмотреть ваш файл /etc/nsswitch.conf и обратить особое внимание на то, как NSS разрешает ваши хосты:

hosts: files resolve [!UNAVAIL=return] mdns4_minimal [NOTFOUND=return] dns myhostname

Эта логика, по-видимому, не может разрешить имя хоста, даже не добравшись до mDNS.

Редактирование строки хостов до выпуска до 16.10 исправляет эту очевидную логическую ошибку:

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

Включенная ссылка на сообщение об ошибке предполагает, что будущий выпуск пакета systemd может в конечном итоге решить эту проблему.

Богатые

Альтернативное решение, которое автоматически редактирует /etc/nsswitch.conf удаляет [править и переустанавливать] libnss-resolve:

sudo apt purge libnss-resolve
sudo apt install libnss-resolve

У меня была эта проблема со свежей установкой Ubuntu 17.04. Я решил переключиться с использования systemd-resolved на dnsmasq на своем ноутбуке (сервер имен также использует dnsmasq). Я следовал инструкциям в разделе Как отключить systemd-resolved и разрешить DNS с помощью dnsmasq?

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