16.10 не удается разрешить DNS

После обновления моей 16.04-установки до 16.10 у меня возникают проблемы с DNS.

Сначала у меня возникли проблемы пару раз при подключении к WiFi, в то время как он работал в сети Ethernet. Теперь, похоже, он работает и на WiFi. Не знаю, почему, и если это каким-либо образом связано с проблемой, с которой я сталкиваюсь сейчас:

При подключении к хосту VPN с помощью Cisco Anyconnect VPN он добавляет строку в '/etc/resolv.conf' , Я понимаю, что Ubuntu теперь использует systemd-resolve, а на man-странице указано, что для обработки /etc/resolv.conf существует три разных режима. Мой /etc/resolv.conf не является символической ссылкой и не перечисляет 127.0.0.53 в качестве DNS-сервера, поэтому, насколько я понимаю, systemd-resol должен «читать его для данных конфигурации DNS».

dig

Странная вещь (для меня) заключается в том, что dig host.customer.tld возвращает хороший ответ с ОТВЕТНОЙ СЕКЦИЕЙ, показывающей ip запрошенного хоста, и он ссылается на сервер DNS, добавленный в /etc/resolv.conf клиентом vpn как SERVER. Когда соединение vpn отключено, я не получаю ответа. То есть добавляет строку в '/etc/resolv.conf'.

ping

Браузер, с другой стороны, не попадает в / etc / resolv.conf и не может разрешить имя хоста. Кстати, и ping / curl.

nmcli

Я нашел систему systemd-resolve и попытался запустить

nmcli device show  | grep IP4.DNS

, но в нем нет dns для устройства cscotun0. (Это также не в 16.04). Кроме того, nmcli перечисляет мой сервер dhcp (мой маршрутизатор) в качестве узла IP4.DNS для моих соединений eth / wlan. Использование dig @192.168.0.1 xxx для любого общедоступного домена отлично работает.

configuration

В моем /run/systemd/resolve/resolv.conf:

есть другие DNS-серверы,

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844

Они не обслуживаются моим DHCP-сервером. файл /etc/systemd/resolved.conf содержит только прокомментированные строки, за исключением заголовка раздела:

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

Страница руководства для Cisco Anyconnect VPN говорит, что

DNS = список адресов IPv4 и IPv6, разделенных пробелами, для использования в качестве системных DNS-серверов. ... По соображениям совместимости, если этот параметр не указан, вместо этого используются DNS-серверы, перечисленные в файле /etc/resolv.conf, если этот файл существует и все серверы настроены в нем. Этот параметр по умолчанию имеет пустой список. FallbackDNS = список адресов IPv4 и IPv6, разделенных пробелами, для использования в качестве резервных DNS-серверов. Любые DNS-серверы каждой линии связи, полученные из systemd-networkd.service (8), имеют приоритет над этим параметром, как и любые серверы, установленные через DNS = выше или /etc/resolv.conf. Поэтому этот параметр используется, только если информация о другом DNS-сервере не известна. Если этот параметр не задан, вместо него используется скомпилированный список DNS-серверов.

Кажется, что резервное копирование заканчивается в /run/systemd/resolve/resolv.conf в моем случае.

EDIT: Я не был уверен, в чем была проблема, и, если честно Я до сих пор не знаю, как это работает, но, по крайней мере, оказалось, что решение в моем случае состояло в отключении службы systemd-resolved. Я думал, что для этого требуется обслуживание, что именно компонент предоставил DNS-службу всем локальным приложениям, но, видимо, там есть что-то еще, выполняющее эту работу.

1
задан 13 April 2017 в 15:24

3 ответа

Поведение DNS во время соединения OpenVPN сразу улучшилось, когда я последовал предложению на ubuntuforums:

Откройте /etc/NetworkManager/NetworkManager.conf в редакторе с правами root. Удалите (или запишите с хешем #) строку, которая читает dns=dnsmasq Перезапустите NetworkManager через sudo service NetworkManager restart
32
ответ дан 23 May 2018 в 05:02
  • 1
    Благодарю. Пробовал это сейчас, но это не сработало. На самом деле DNS работает нормально, за исключением случаев, когда я запускаю клиент Cisco VPN, который заменяет символическую ссылку /etc/resolve.conf текстовым файлом. – aweibell 8 December 2016 в 16:28
  • 2
    Это исправление работало для меня, у меня были проблемы с DNS с помощью OpenVPN. После этого изменения изменился мой /etc/resolve.conf. Это очень странно, так как у меня даже нет dnsmasq. – postfuturist 12 December 2016 в 23:42
  • 3
    Это может работать для проблем с NM и openvpn, но по крайней мере это замедляет соединения. Как и предполагалось здесь . – BairDev 6 April 2017 в 10:25

Иди в эту же проблему. Как-то я должен был установить DNSmasq с некоторым приложением. Простое удаление dnsmasq решило проблему для меня.

sudo apt-get remove dnsmasq 

С тех пор больше нет разъединений или некоторых сайтов, которые больше не могут загружаться (у меня была проблема с загрузкой gmail, то есть все это было неожиданно не удалось подключиться к gmail, хотя другие сайты работали).

3
ответ дан 23 May 2018 в 05:02
  • 1
    При попытке удалить пакет dnsmasq-base aptitude сообщает мне, что это требуется network-manager и ubuntu-fan , и удаление его будет приводят к удалению множества дополнительных пакетов. – aweibell 8 December 2016 в 13:54
  • 2
    Что такое дистрибутив и версия? Я на Ubuntu 16.10 и никаких проблем не удалял. Else, я бы не опубликовал его :) – Nitai 8 December 2016 в 15:45
  • 3
    Я тоже на Ubuntu 16.10! Странный. apt remove dnsmasq-base ... The following packages will be REMOVED: account-plugin-ubuntuone checkbox-converged checkbox-gui dnsmasq-base indicator-network network-manager network-manager-gnome network-manager-openconnect network-manager-openconnect-gnome network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome network-manager-vpnc pay-service plainbox-provider-checkbox plainbox-provider-resource-generic ubuntu-desktop ubuntu-fan ubuntu-push-client .... – aweibell 8 December 2016 в 16:31
  • 4
    То же самое здесь с 16.10. Он также хочет удалить все эти другие пакеты. – Dave Kincaid 23 December 2016 в 07:30
  • 5
    На днях я просто отключился. Как-то одно приложение должно было снова установить dnsmasq. В любом случае, на этот раз я просто отключил его с помощью systemd. Пока он больше не работает, и я тоже не отключился. – Nitai 23 December 2016 в 09:12

Измените /etc/nsswitch.conf и измените

hosts:          files mdns4_minimal [NOTFOUND=return] dns

на

hosts:          files dns mdns4_minimal [NOTFOUND=return]

Изменить:

У меня были те же проблемы в течение довольно долгого времени. Я смог разрешить доменные имена из vpn, но я не смог выполнить ping или скручивать их или использовать их в других приложениях. Описанное выше изменение решило это для меня.

-1
ответ дан 23 May 2018 в 05:02

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

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