Як налаштувати локальний пошук DNS в Ubuntu 16.10?


9

Я щойно встановив Ubuntu 16.10 і rsync'd створив резервну копію попереднього домашнього каталогу з 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 askubuntu.com
PING askubuntu.com (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 askubuntu.com
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. разрешено в 16.10. Вони не працювали для мене, і я не вважаю, що це повторне запитання до аналогічних з попередніми конфігураціями Ubuntu.


1
Це трапляється і в оновлених системах ... Я думаю, що це питання буде дуже багато відвідувань за дні :)
Michele d'Amico

Я ненавиджу питання мереж, вони найгірші. І ця мене кусає важко, але дещо по-іншому. Відповідь мені це не зафіксували. Дивіться моє запитання щодо моїх деталей.
moodboom

Відповіді:


18

Якщо я правильно розумію ваше запитання, ви не можете вирішити свої локальні імена хостів.

З цим у мене виникла така ж проблема зі свіжою установкою 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

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

Багатий


1
Фантастична відповідь і з посиланням, і з прикладами! Я розігрувався з вашою пропозицією і виявив, що поки я перемістив "mdns4_minimal" до "[NOTFOUND = return]" і "[! UNAVAIL = return]", це спрацювало. Мені все ще потрібен суфікс .local для локальних адрес.
Могутній

1
Існує більш конкретна помилка для вирішення лібнів і mdns на сторінці bugs.launchpad.net/ubuntu/+source/systemd/+bug/1641328
азот

7

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

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

+1. Це чудове рішення для тих із нас, хто любить зберігати конфігурацію системи недоторканою для тих пакетів, з якими ми не спілкувалися. Це повинно бути зроблено інструментом оновлення / інсталятора, хоча ... 16.10 вже деякий час.
eskhool

1

У мене була ця проблема із новою установкою Ubuntu 17.04. Я вирішив перейти з використання системного рішення на dnsmasq на своєму ноутбуці (сервер імен також використовує dnsmasq). Я дотримувався кроків у розділі Як відключити системне рішення та вирішити DNS за допомогою dnsmasq?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.