Просто пробую новейшую Ubuntu 19.04, и она имеет некоторые отличия с resolv.conf при локальном запуске моего связывания. Ранее, в 18.04, resolv.conf выглядел следующим образом
nameserver 127.0.0.1
nameserver 127.0.0.53
, в то время как в 19.04 он изменился на этот
nameserver 127.0.0.53
options edns0
Если я использую dig или nslookup для проверки поиска DNS, это не использовать конфигурацию локального связывания и получить не найден.
Если я поставлю
dig www.example.com @127.0.0.1
против стандартного раскопа www.example.com
dig www.example.com @127.0.0.53
, он будет работать и получит правильный ответ на поиск.
Я попытался добавить файл yaml netplan /etc/netplan/00-private-nameservers.yaml
network:
version: 2
ethernets:
enp0s3:
nameservers:
addresses:
- 127.0.0.1
- 1.1.1.1
- 1.0.0.1
- 8.8.8.8
- 4.4.4.4
#search: [ nyc3.example.com ]
, но он не изменяет resolv.conf для локального поиска, как мне кажется.
Эта версия нова для меня, и я не уверен, что это ошибка или что? Я снова запускаю связывание локально и ожидаю, что оно разрешит поиск доменов локально.
[Я добавил это в отношении комментария ниже.]
root@server:/tmp# systemd-resolve --status
Global
LLMNR setting: no
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
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 (enp0s3)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 127.0.0.1
1.1.1.1
1.0.0.1
8.8.8.8
4.4.4.4
192.168.2.1
2001:569:7552:3900:4a5f:38ee:fe29:130
Без частных серверов имен yaml показывает
Link 2 (enp0s3)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.2.1
2001:569:7552:3900:4a5f:38ee:fe29:130
Но в основном есть еще одно-еще одно-сумасшедшее системное устройство, называемое системно-разрешенным , которое связывает 127.0.0.53:53
как tcp, так и udp. Вот почему вы видите nameserver 127.0.0.53
в вашем /etc/resolv.conf
.
Более того /etc/resolv.conf
оставлено для совместимости системным разрешением как символическая ссылка на /run/systemd/resolve/stub-resolv.conf
.
И это та часть, которую я не до конца понимаю, но даже если я установлю свои DNS-серверы в /etc/systemd/resolved.conf
, который выглядит как системный файл конфигурации, некоторые программы просто не используют его. Зачем? Пока не имею понятия.
NetworkManager
. Затем с моими DNS-серверами, установленными внутри /etc/systemd/resolved.conf
и в NetworkManager
, я действительно настроил их.
Как насчет netplan.io
? Я еще не понял. Но когда дело доходит до DNS-серверов, мне кажется, что сейчас они ничего не делают.
Вы можете отредактировать /etc/systemd/resolved.conf
и установить DNS для локально работающего DNS-сервера bind aka через
[Resolve]
DNS=127.0.0.1
перезапустить с
systemctl restart systemd-resolved.service
и когда вы копаете (или ищите, как описано выше), вы действительно получаете (просто) www.example.com Запись с файлами зон локально обслуживаемого DNS, соответствующие IP-результату, но это не так отображать столько информации, сколько вы получаете, если добавляете @ 127.0.0.1 или в resolv.conf 127.0.0.1 опережает 127.0.0.53
Это частичный ответ, полученный из помощи в комментариях, и его следует сохранить и не удаляются, как и все другие ответы, которые я добавил, которые были удалены на том основании, что они не были объявлены, как этот, как действительный / полезный ответ или частичные ответы, но они, вероятно, были полезны для определенной ситуации. В моем случае я делаю DNSSEC и т. Д., И мне нужно увидеть более существенные результаты, такие как @ 127.0.0.1 или, по крайней мере, именно поэтому я не уточнил, насколько это правильно в некоторых случаях. Я, конечно, ожидал полного ответа, который вы получите, когда resolv.conf указывает непосредственно на DNS, работающий в системе на 127.0.0.1 и не прикованный через 127.0.0.53 к шлюзу маршрутизатора, предоставленному DHCP (обычно).
[Также обратите внимание, что скудных комментариев недостаточно, чтобы показать работу с блоками кода и результатами, поэтому важно не удалять обсуждение сообществ по совместному решению этих проблем. Пожалуйста, рассмотрите несколько пользовательских флагов для статуса удаления.]
Хорошо, хорошо, спасибо. Я сопротивлялся очевидному, потому что это не было включено. Я почти уверен, что это ошибка, но ожидания разработчиков ОС и предполагаемое использование должны отличаться или изменяться. Я думаю, что они думают, что если вы запускаете DNS, то, на мой взгляд, он ничего не ищет. Мне показалось странным, что они убрали способ, которым он работал раньше, и не покрыли свои базы должным образом. (Опять же, я попытаюсь сообщить об ошибке, так как может показаться недосмотр или расхождение во взглядах, пытаясь быть скудным и т. Д. Я надеялся (и есть еще шанс), что кто-то нашел лучший способ (и прокомментирует здесь), а затем восстановит предыдущий функционал вручную, так что он на самом деле работает. Во всяком случае, пока они снова не войдут в Ubuntu 20.04 или что-то еще, что делают это.
apt install resolvconf
затем отредактируйте или добавьте в файл conf службы демона resolvconf для указания на локальный ip 127.0 .0.1
pico /etc/resolvconf/resolv.conf.d/head
примерно так, он будет выглядеть
nameserver 127.0.0.1
, затем перезапустите эту часть
service resolvconf restart
и вуаля раскоп www.example.com вернется и /etc/resolve.conf будет восстановлен в соответствующее состояние
nameserver 127.0.0.1
nameserver 127.0.0.53
options edns0
. Ну, параметры edns0 недавно добавлены в Ubuntu 19.04, где, как этого не было в 18.04, и, как вы знаете, это так, как мы добавляем пакет bind9, поэтому я полагаю, что вам также нужно добавить / восстановить этот пакет resolconf, если вы хотите, чтобы локальный компьютер мог разрешать записи DNS, которые он предоставляет. Возможно, они правильно подключены к глобальной системе, и вам это может и не понадобиться, так что, может быть, вам / нам нужна вера больше, чем resolconf, но нужно проверить, работает ли он локально, я думаю, и я хочу, чтобы он работал локально, не сообщая каждой команде, как сначала найдите локальный сервер и т. д.
bind9
, netplan
и systemd-resolved
разрешить-рекурсию { localhost; };
(Также могут быть локальные сети
) См. https://kb.isc.org/docs/aa-00269nameserver 127.0.0.53
(systemd-resolved)DNS=127.0.0.1
systemd-resolve --status
Вам не нужен пакет resolveconf или NetworkManager.
Возможные команды, чтобы убедиться, что все работает:
host -tTXT askubuntu.com
dig A askubuntu.com
systemd-resolve query askubuntu.com
nslookup askubuntu.com