Неправильный сервер имен установлен resolvconf и NetworkManager

Мой сервер DNS 192.168.1.152.

Этот DNS предоставляется клиентам DHCP. Клиенты окон на моей LAN разрешают имена правильно использование, что DNS, но мой VM Ubuntu не делает.

VM настраивается с сетями моста и правильно обеспечивается сервер DNS, но мои локальные имена хостов не разрешаются nslookup или браузерами.

Вот nslookup из одного из моих локальных доменов:

# nslookup unraid.local
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find unraid.local: SERVFAIL

Вот то, что это должно разрешить при помощи моего сервера DNS:

# nslookup unraid.local 192.168.1.152
Server:     192.168.1.152
Address:    192.168.1.152#53

Name:   unraid.local
Address: 192.168.1.152

/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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

Я выполнил ту команду. Под DNS-серверами, смутно, это указывает корректный сервер (и мой шлюз по умолчанию).

root@ubuntu:~# systemd-resolve --status
Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 2 (ens33)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.152
                      192.168.1.1

Я не хочу к "твердому коду" IP сервера DNS в файле конфигурации, потому что я не смогу разрешить, когда я изменю сети.

Как я могу заставить resolvconf и NetworkManager автоматически устанавливать IP сервера DHCP в /etc/resolv.conf?

34
задан 14 February 2018 в 14:10

10 ответов

Попытайтесь редактировать /etc/systemd/resolved.conf, добавление Вашего желаемого сервера DNS:

измените это:

[Resolve]
#DNS=

к этому (но использование то Вы хотите - это - пример):

[Resolve]
DNS=192.168.1.152

после этого перезапустите сервис:

service systemd-resolved restart

И когда Вы проверяете состояние, необходимо видеть

$ systemd-resolve --status
Global
         DNS Servers: 192.168.1.152

      DNSSEC NTA: 10.in-addr.arpa
                  16.172.in-addr.arpa
                  168.192.in-addr.arpa
                  17.172.in-addr.arpa
                  18.172.in-addr.arpa
                  19.172.in-addr.arpa
37
ответ дан 23 November 2019 в 00:27

Известная systemd ошибка.

Временное обходное решение без потребности реконфигурировать, если изменения IP DNS:

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
reboot
34
ответ дан 23 November 2019 в 00:27

Я наконец получил решение для этой проблемы для человечности 17.10. По умолчанию эта версия использования Ubuntu systemd-resolved, то, которое я надеюсь, будет стабильным для следующих версий.

Для использования пользовательского DNS вместо локального systemd-разрешенного кэша сделайте следующее:

  1. добавьте новые серверы имен. Отредактируйте файл в /etc/systemd/resolved.conf как sudoer. Здесь я прокомментировал запись DNS и поместил мой DNS [Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4

  2. отмените фактическую символьную ссылку на /etc/resolv.conf

  3. создайте новую символьную ссылку sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  4. перезапустите сервис sudo service systemd-resolved restart
  5. перезапустите администратора сети sudo systemctl restart networking

И теперь если Вы роете к имени, обеспеченному Вашим добавлять DNS, необходимо видеть разрешенную запись dig nexus.default.svc.cluster.mydomain

Последний шаг должен обновить порядок разрешения в /etc/nsswitch.conf, путем размещения DNS перед mdns4_minimal

hosts           files dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] myhostname
9
ответ дан 23 November 2019 в 00:27

Решение, которое работало на меня, здесь размещено в моем блоге

Используйте нано редактора для редактирования этих 2 файлов

nano /etc/resolv.conf
nano /etc/resolvconf/resolv.conf.d/head

Добавьте серверы DNS, которые Вы хотите использовать

nameserver 9.9.9.9
nameserver 127.0.0.1

Затем перезапустите сервис

service systemd-resolved restart

Последняя проверка:

cat /etc/resolv.conf

Сделайте nslookup

nslookup google.com 

я просто использовал это, и это решило проблему на моем ноутбуке дома, но некоторое время в будущем, когда я вне своей домашней сети I, видит, что вызовет проблемы, потому что основной и вторичный сервер DNS все еще будет моими домашними серверами с их адресами локальной сети.

1
ответ дан 23 November 2019 в 00:27

У меня есть та же проблема. Каждая перезагрузка, ничто не решит. Я удалил все и уже переустановил его приблизительно 50 раз. Это просто просто повреждается.

таким образом, фиксация...., "просто применяют несколько настроек каждый раз, когда Вы загружаете свой ПК, который позволяет 90% имен хостов решать, но wget и склонный - получают обновления, и обновления не перестанут работать случайным образом ни по какой причине"

кошка/etc/systemd/resolved.conf

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=yes
#MulticastDNS=yes
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp

При использовании Рабочего стола Ubuntu 17.10 необходимо отредактировать один файл, который говорит, что DO НЕ РЕДАКТИРУЕТ ЭТОТ ФАЙЛ И ТОМУ ПОДОБНОЕ

хорошо это - ЕДИНСТВЕННЫЙ способ, которым это работает ~!

root@nas:~# cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 8.8.8.8

Поэтому удалите 127.0.0.53 IP как сервер имен и введите другой, Google, например. Кажется, что мой фактический IP-адрес DNS не разрешает имена хостов ни один (даже при том, что это работает над 10 другими машинами и устройствами в доме), но Google хорошо работает.

-3
ответ дан 23 November 2019 в 00:27

Я соединил сценарий, который работает вокруг проблемы Netplan не в настоящее время, поддержка способности заменить DHCP предоставила серверы DNS и доменный поисковый порядок. Это создает файл Netplan yaml и настраивает systemd-разрешенный для работы как ожидалось.

################## Start Netplan config (renderer: NetworkManager)
#  Some useful commands for customisation
# NetConn=$(nmcli device show|grep GENERAL.CONNECTION|head -n1|awk '{print $2}')
# IP=$(nmcli device show|grep IP4.ADDRESS|head -n1|awk '{print $2}')
# GATEWAY=$(nmcli device show|grep IP4.GATEWAY|head -n1|awk '{print $2}')
# sed -i 's/renderer: networkd/renderer: NetworkManager/' //etc/netplan/01-netcfg.yaml
######################################
systemctl start NetworkManager
NIC=$(nmcli device show|grep GENERAL.DEVICE|head -n1|awk '{print $2}')

#####   create Netplan yaml config file
cat >/etc/netplan/01-netcfg.yaml <<EOF 
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
  network:
   version: 2
   renderer: NetworkManager
   ethernets:
EOF
echo "    ${NIC}:" >> /etc/netplan/01-netcfg.yaml
cat >>/etc/netplan/01-netcfg.yaml <<EOF
      dhcp4: yes
      nameservers:
        search: [abc.domain.edu, def.domain.edu]
        addresses: [10.10.11.22, 10.10.11.23]

EOF

#work around DNS resolv bug
systemctl stop systemd-resolved
sed -i 's/#DNS=/DNS=10.10.11.22 10.10.11.23/' /etc/systemd/resolved.conf
sed -i 's/#Domains=/Domains=abc.domain.edu def.domain.edu' /etc/systemd/resolved.conf
systemctl start systemd-resolved
systemctl restart NetworkManager
netplan apply
reboot
############### End Netplan Config
1
ответ дан 23 November 2019 в 00:27

Ваш /etc/resolv.conf не проблема. systemd-resolved просто значения по умолчанию к ненастроенному, таким образом, это приводит все поиски к сбою. Не стесняйтесь разглагольствовать о Ненастроенном по сравнению с Разумным Значением по умолчанию.

Вручную добавьте серверы имен к systemd-resolved. (редактирующий на комментарий Olorin ниже для добавления mkdir, корректный путь /etc нет /lib, для выживания системных обновлений),

sudo mkdir -p /etc/systemd/resolved.conf.d
sudo nano /etc/systemd/resolved.conf.d/00-my-dns-server-is.conf

Добавьте:

[Resolved]
Cache=yes
DNS=192.168.1.152

Затем...

sudo systemctl daemon-reload

systemd-resolved умно, но, ненастроенное, как это специалистами по обслуживанию пакета, это просто ВЫГЛЯДИТ глупым, потому что специалисты по обслуживанию пакета не верят в Разумное Значение по умолчанию. Мы можем поместить 13 интернет-корневых серверов там иначе "djb путь" или 10 opennic серверов: https://pastebin.com/JBfYVVtG или три самых быстрых opennic сервера, как измеряется namebench. Плюс серверы имен ISP, уверенные. Плюс Google, уверенный. systemd-resolved не проблема. Я - проблема.

1
ответ дан 23 November 2019 в 00:27

В моей системе я нашел плохую символьную ссылку: /etc/resolv.conf была символьная ссылка, которая указывает на /run/systemd/resolve/stub-resolv.conf

Этот файл содержит только одну строку:

nameserver 127.0.0.53#53

В результате поиск DNS локальной сети часто отсутствовал.

Так, вместо этого я изменился /etc/reolv.conf указать на /run/systemd/resolve/resolv.conf

и теперь работы правильно.

0
ответ дан 23 November 2019 в 00:27

Это странно, но единственным решением, которое работало на меня на Ubuntu 18.04, было то, которое я нашел здесь:

Во-первых, изменение /etc/resolv.conf путем установки желаемого сервера имен:

# nano /etc/resolv.conf

Набор, например,

nameserver 8.8.8.8

И затем сделайте

# chattr +i /etc/resolv.conf

Это защищает /etc/resolv.conf файл так, чтобы никто не мог изменить его включая пользователя root.

0
ответ дан 23 November 2019 в 00:27

Я только что снова прошел через это на другом компьютере. Я решил жить с разрешенным systemd и с networkmanager, отредактировав файл resolve.conf, /etc/systemd/resolved.conf и настроив networkmanager на использование одного и того же DNS-сервера. Остановите прослушиватель-заглушку от захвата dns:

/etc/systemd/resolved.conf:
[Resolve]
DNS=192.168.0.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
DNSStubListener=no

... затем войдите в NetworkManager и остановите nm от использования dhcp для получения IP-адреса сервера имен. Отключите автоматический для DNS, установите IP-адрес сервера имен.

0
ответ дан 1 December 2020 в 15:09

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

Похожие вопросы: