Мой DNS-сервер есть 192.168.1.152
.
Этот DNS предоставляется клиентам по DHCP. Клиенты Windows в моей локальной сети правильно разрешают имена, используя этот DNS, а моя 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
?
источник
Известная ошибка systemd .
Временный обходной путь без необходимости перенастраивать при изменении IP-адреса DNS:
источник
/etc/resolv.conf
идет из/run/systemd/resolve/stub-resolv.conf
которых является bollox должно быть/run/systemd/resolve/resolv.conf
внимание , что на/etc/resolv.conf
самом деле не существует в любом случаеping
тогда работает?host
иnslookup
разрешать имена хостов иначе, чемping
илиwget
. Возможно, вам придется искать/etc/nsswitch.conf
решение.Я наконец-то получил решение этой проблемы для Ubuntu 17.10. По умолчанию эта версия Ubuntu использует
systemd-resolved
, что, я надеюсь, будет стабильным для следующих версий.Чтобы использовать пользовательские днс вместо локального системного кеша, выполните следующие действия:
добавить новые серверы имен. Отредактируйте файл
/etc/systemd/resolved.conf
как sudoer. Здесь я закомментировал запись 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
И теперь, если вы перейдете к имени, предоставленному вашим add dns, вы увидите, что запись разрешена
dig nexus.default.svc.cluster.mydomain
Последний шаг - обновить порядок разрешения
/etc/nsswitch.conf
, поместив dns перед mdns4_minimal.источник
Я собрал скрипт, который решает проблему Netplan, которая в настоящее время не поддерживает возможность заменять DNS-серверы, предоставляемые DHCP, и порядок поиска доменов. Он создает файл yaml Netplan и настраивает systemd-resolved для работы, как ожидается.
источник
Решение, которое сработало для меня, размещено здесь, в моем блоге.
Используйте редактор nano для редактирования этих 2 файлов
Добавьте DNS-серверы, которые вы хотите использовать
Затем перезапустите сервис
Окончательная проверка:
Сделать nslookup
Я просто использовал это, и это решило проблему на моем ноутбуке дома, но когда-нибудь в будущем, когда я буду вне моей домашней сети, я вижу, что это вызовет проблемы, потому что основной и дополнительный сервер DNS все еще будет моим домом серверы с их локальными адресами.
источник
/etc/resolv.conf
не работает, так как файл будет перезаписан во времяsystemd-resolved
перезапуска. Просто отредактируйте/etc/systemd/resolved.conf
. Смотрите мой ответ здесь: askubuntu.com/questions/977243/ubuntu-17-10-disable-netplan/…Ваш
/etc/resolv.conf
проблема не в этом.systemd-resolved
просто по умолчанию не настроен, поэтому он не сможет выполнить все поиски. Не стесняйтесь разглагольствовать о Unconfigured vs A Reasonable Default.Вручную добавить сервер имен
systemd-resolved
. (редактирование на комментарий OLORIN в ниже , чтобы добавитьmkdir
, правильный путь/etc
не для/lib
того, чтобы выжить обновления системы)Добавлять:
Затем...
systemd-resolved
это умно, но, несмотря на то, что сопровождающие его не настроены, они просто выглядят глупо, потому что сопровождающие не верят в разумное значение по умолчанию. Мы можем разместить там 13 корневых серверов в Интернете, иначе говоря, «путь djb», или 10 серверов opennic: https://pastebin.com/JBfYVVtG, или три самых быстрых сервера opennic, согласно namebench. Плюс провайдеры имен провайдеров, конечно. Плюс Google, конечно.systemd-resolved
это не проблема. Я проблема.источник
/usr/lib
- они, вероятно, будут перезаписаны при обновлении пакета. Я думаю, что соответствующий файл где-то в/etc/systemd
пути (он уже должен быть/etc/systemd/resolved.conf
готов для редактирования администраторами).В моей системе я обнаружил плохую символическую ссылку:
/etc/resolv.conf
была символическая ссылка, которая указывает на/run/systemd/resolve/stub-resolv.conf
Этот файл содержит только одну строку:
В результате поиск DNS в локальной сети часто отсутствовал.
Итак, вместо этого я изменился
/etc/reolv.conf
чтобы указать на/run/systemd/resolve/resolv.conf
и теперь работает правильно.
источник
Странно, но единственное решение, которое сработало для меня в Ubuntu 18.04, было тем, которое я нашел здесь :
Сначала измените
/etc/resolv.conf
, установив желаемый сервер имен :Установите, например,
А потом делай
Это защищает
/etc/resolv.conf
файл, так что никто не может изменить его, включая пользователя root.источник
У меня та же проблема. Каждая перезагрузка ничего не решит. Я удалил все и переустановил это уже около 50 раз. Это просто сломано.
так что исправление .... «просто применяйте несколько настроек каждый раз при загрузке вашего компьютера, что позволяет разрешать 90% имен хостов, но обновления и обновления wget и apt-get будут происходить случайно безо всякой причины»
cat /etc/systemd/resolved.conf
При использовании Ubuntu 17.10 Desktop вы должны отредактировать один файл с надписью НЕ РЕДАКТИРОВАТЬ ДАННЫЙ ФАЙЛ BLAH BLAH BLAH
ну, это единственный способ, которым это работает ~!
Поэтому удалите IP-адрес 127.0.0.53 в качестве сервера имен и введите другой, например, Google. Похоже, мой фактический IP-адрес DNS также не разрешает имена хостов (хотя он работает на 10 других машинах и устройствах в доме), но Google работает нормально.
источник