Пошук DNS Ubuntu 18.04 .local не працює


19

Я використовую Raspberry Pi 3 з Ubuntu 18.04. У моєї компанії у нас DNS-сервер і пара доменів з ".local". Я технічно знаю, що це неправильно, і натомість він повинен бути ".lan", тому що .local зарезервований для багатоадресної передачі даних. Але це так, і це неможливо легко змінити. Тому на своїй машині Windows я можу без проблем пінг і переглядати ці доменні імена. Однак на моєму Ubuntu я не можу.

Я не можу використовувати IP-адреси, оскільки деякі домени знаходяться на одній машині, а веб-сервер IIS розбирає речі, куди йде.

Я шукав, і він з'являється досить часто:

Однак зміна /etc/nsswitch.conf не робить для мене хитрості. я намагався

  • хости: файли mdns4_minimal [NOTFOUND = return] dns myhostname # за замовчуванням
  • хости: файли dns
  • хости: файли mdns4_minimal [NOTFOUND = продовження] dns myhostname
  • хости: файли mdns4 [NOTFOUND = return] dns myhostname
  • хости: файли mdns4 [NOTFOUND = продовження] dns myhostname
  • хости: файли dns mdsn4_minimal myhostname
  • господарі: dns
  • кілька інших

Жоден з яких не працював. Я спробував перезавантажити і після зміни. Я спробував сказати avahi, що доменне ім’я = alocal у /etc/avahi/avahi-daemon.conf не працює після перезавантаження служби, не працює після перезавантаження. Після цього це не спрацювало, я спробував повністю відключити послугу avahi-daemon.

sudo systemctl disable avahi-daemon

Після перезавантаження я знову спробував пару перестановок у /etc/nsswitch.conf, без ефекту.

з моїми поточними налаштуваннями в хостах (файли dns), я отримую цю відповідь:

dig login.name.local # not the actual name

; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33538
;; flags: qr rd ra; QUERY: 1, ANSWER:0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0     IN     A

;; Query time: 2msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE  rcvd: 56

Однак, коли я вказую dig запитувати сервер безпосередньо, я отримую правильну відповідь:

dig @dnsIP login.name.local
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57866
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0     IN     A

;; ANSWER SECTION:
login.name.local. 3600 IN    A        serverIP

;; Query time: 2msec
;; SERVER: dnsIP#53(dnsIP)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE  rcvd: 56

Ця версія Ubuntu використовує netplan разом із мережевим менеджером. Правильний IP-код DNS, безумовно, у списку. (насправді це основний DNS.) Також dnsIp - це те саме, що і серверIP, але це не повинно бути проблемою.

Пінг або підключення через браузер, і це, звичайно, не працює. Ніхто не використовує запит dns.

Я в збитках, що робити. Звичайно, ми не можемо перейти на інше доменне ім’я. Я помістив ім’я сервера в / etc / hosts, але це лише тимчасове рішення.


змінивши резолюцію.conf, як запропонував jeremfg, працював на мене після того, як кілька годин гнався за моїм хвостом. Tnx.
користувач3529828

Відповіді:


15

Я зіткнувся з дуже подібною проблемою (якщо не зовсім однаковою) в Linux Mint 19 (Tara). Мені вдалося вирішити це, поєднавши 3 різні відомості. Схоже, це пов'язано з останніми змінами, вирішеними системою.

По-перше, так, мені потрібно було налаштувати /etc/nsswitch.conf так, як ви це робили і очікували. Поки dns приходить до mdns, ви повинні бути хорошими. Я закінчився просто:

hosts:          files dns myhostname

посилання: /unix//a/457172/271210

Перед оновленням до цієї версії Монетного двору це єдине, що мені потрібно було зробити. Тепер я також вніс дві наступні зміни, щоб він працював ...


Після цього я налаштував свій пошуковий домен таким чином, щоб вирішено системою, працюватиме так, як я хотів. Тому я відредагував файл / etc/systemd/ разрешен.conf , налаштування доменів у розділі [вирішити] . У моєму випадку це виглядало так:

[Resolve]
#DNS=
#FallbackDNS=
Domains=trilliant.local
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes

посилання: /ubuntu//a/1031271/872881

Я також змінив конфігурацію avahi на щось інше ("mdns", якщо я пам'ятаю правильно, але це не має значення). Однак цього не слід вимагати від мого розуміння. Просто додавання для повноти.


Але нічого з цього не спрацювало, поки я не зателефонував так:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

посилання: /ubuntu//a/938703/872881

Після зателефонувавши до цього, все почало працювати ідеально і як очікувалося!

Тож можливо, мені не потрібно було змінювати файл /etc/systemd/Weather.conf, але я змінив цю зміну, оскільки це мало сенс і дозволяє мені лише вводити ім'я машини без повного FQDN, щоб DNS-рішення працювало .


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

@HongboZhu, якби я знав про факт, це єдина зміна, необхідна для роботи локальних доменів. Я впевнений, що ви все ще повинні віддавати перевагу dns над mdns у конфігурації резолюції. Я припускаю, що ваш коментар стосується конфігурації домену посередині? Якщо так, так, я думаю, я міг би поставити це в кінці як необов'язкові зміни. Але інші дві частини потрібні ІМХО.
jeremfg

1
У моїй новій установці 18.04.2 просто змініть замовлення "хостів" на nsswitch.conf вже працює.
Томофумі

17

Прийнята відповідь не вирішила мого питання. З avahi це не було нічого спільного - сервіс avahi у мене не був встановлений. У мене встановлена ​​система, щоб отримати його ip AND налаштування сервера dns від DHCP. Однак DNS-код, що постачається dhcp, не перевірявся на запити з використанням .local

Справжня проблема полягає в тому, що Ubuntu 18.4 має свою резолюцію.conf, пов'язану з файлом заглушки, який вказує на localhost для вирішення імен. Дозвіл імен Localhost dns означає, що система відмовляється перевіряти наданий DNS-сервер на .local імена, вважаючи (неправильно), що такі імена недійсні. Це налаштування за замовчуванням /etc/resolv.conf:

ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Jan 22 13:26 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

вміст файлу заглушки (коментарі видалено):

 cat /run/systemd/resolve/stub-resolv.conf
 .. removed comments..  
nameserver 127.0.0.53
    search reddog.microsoft.com

'справжній' конфіденційний конфлікт має налаштування 'правильного' dns (від dhcp):

cat /run/systemd/resolve/resolv.conf

..removed comments..
nameserver 10.168.200.250 # This is my server that can resolve .local
nameserver 208.67.220.220 # these are optional, fallback dns servers
nameserver 208.67.222.222
# Too many DNS servers configured, the following entries may be ignored.
nameserver 8.8.8.8
search reddog.microsoft.com

Для того щоб змусити систему використовувати вибраний DNS-рішальник замість localhost, ви зміните симпосилання на /run/systemd/resolve/resolv.conf замість /run/systemd/resolve/stub-resolv.conf:

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

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


Я видалив Avahi, а потім пішов за вашими кроками. Це зробило це для мене. Спасибі пане. (Використання робочого столу Ubuntu 18.04).
Хосе Л.

Дякую. Це була відповідь для мене. Чому це "просто не виходить" з коробки?
adampski

яка різниця між вашим рішенням та прийнятою відповіддю? Для обох можна пропустити перші 2/3 відповіді - навіть те саме :-)
HongboZhu

Це єдина відповідь, яку я бачив досі, яка повторює поведінку в попередніх версіях Ubuntu (та інших Linux), тобто список серверів DNS надається DHCP, а роздільна здатність адреси ніколи не кешується локально.
Відрізаний

3

Для мене робочим способом для Ubuntu 18.04 є:

Редагувати avahi conf:

sudo vim /etc/avahi/avahi-daemon.conf

і змінити .local до .alocal:

[server]
domain-name=.alocal

потім, відкрити разрешено.conf:

sudo vim /etc/systemd/resolved.conf

та відміняйте та редагуйте домени:

[Resolve]
...
Domains=yourdomain.local
...

і нарешті перезапустити служби:

sudo service systemd-resolved restart
sudo service avahi-daemon restart

У моєму випадку я тільки потрібно змінити Domainsв /etc/systemd/resolved.conf(і перезапустити службу).
токош

2
Це не зробило це для мене. все ще нічого
FalcoGer

Та ж версія Ubuntu. Використання openvpn. Це рішення добре працює з VPN на багатьох машинах моєї команди.
разваноне

2

Для мене працювало додавання локального DNS як сервера імен /etc/resolvconf/resolv.conf.d/head(як описано тут ).

  1. Встановіть пакет Resolvconf.

    sudo apt install resolvconf
    
  2. Відредагуйте /etc/resolvconf/resolv.conf.d/headта додайте наступне:

    nameserver 8.8.4.4  
    nameserver 8.8.8.8  
    
  3. Перезапустіть службу resoluvconf.

    sudo service resolvconf restart
    

Виправлення має бути постійним.


Головний файл містить застереження не редагувати файл, тому що він генерується резолюцієюconf?
Джон Мей

@JohnMee headФайл - це джерело, яке використовується для створення /run/resolvconf/resolv.conf. Однак я також не редагував би цей файл.
Мелебій

0

Моя ситуація була схожа, але дещо інша: ми використовуємо імена серверів, як myserverу Windows, але це не працювало на Ubuntu 16.04, і мені довелося використовувати myserver.mycompany.local. Після оновлення до 18.04 я проявив таку поведінку:

$ ping myserver.mycompany.local
ping: myserver.mycompany.local: Name or service not known

$ ping myserver
PING myserver.mycompany.local (192.168.x.y) 56(84) bytes of data.
64 bytes from myserver.mycompany.local (192.168.x.y): icmp_seq=1 ttl=62 time=3.05 ms
...

Я просто повинен був замінити myserver.mycompany.localз myserverв своїх додатках.

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