Мой сервер 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
?
Попытайтесь редактировать /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
Временное обходное решение без потребности реконфигурировать, если изменения IP DNS:
sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
reboot
Я наконец получил решение для этой проблемы для человечности 17.10. По умолчанию эта версия использования Ubuntu systemd-resolved
, то, которое я надеюсь, будет стабильным для следующих версий.
Для использования пользовательского DNS вместо локального systemd-разрешенного кэша сделайте следующее:
добавьте новые серверы имен. Отредактируйте файл в /etc/systemd/resolved.conf
как sudoer. Здесь я прокомментировал запись DNS и поместил мой DNS [Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4
отмените фактическую символьную ссылку на /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo service systemd-resolved restart
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
Решение, которое работало на меня, здесь размещено в моем блоге
Используйте нано редактора для редактирования этих 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 все еще будет моими домашними серверами с их адресами локальной сети.
У меня есть та же проблема. Каждая перезагрузка, ничто не решит. Я удалил все и уже переустановил его приблизительно 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 хорошо работает.
Я соединил сценарий, который работает вокруг проблемы 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
Ваш /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
не проблема. Я - проблема.
В моей системе я нашел плохую символьную ссылку: /etc/resolv.conf
была символьная ссылка, которая указывает на /run/systemd/resolve/stub-resolv.conf
Этот файл содержит только одну строку:
nameserver 127.0.0.53#53
В результате поиск DNS локальной сети часто отсутствовал.
Так, вместо этого я изменился /etc/reolv.conf
указать на /run/systemd/resolve/resolv.conf
и теперь работы правильно.
Это странно, но единственным решением, которое работало на меня на Ubuntu 18.04, было то, которое я нашел здесь:
Во-первых, изменение /etc/resolv.conf
путем установки желаемого сервера имен:
# nano /etc/resolv.conf
Набор, например,
nameserver 8.8.8.8
И затем сделайте
# chattr +i /etc/resolv.conf
Это защищает /etc/resolv.conf
файл так, чтобы никто не мог изменить его включая пользователя root.
Я только что снова прошел через это на другом компьютере. Я решил жить с разрешенным 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-адрес сервера имен.