После обновления моей 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 host.customer.tld возвращает хороший ответ с ОТВЕТНОЙ СЕКЦИЕЙ, показывающей ip запрошенного хоста, и он ссылается на сервер DNS, добавленный в /etc/resolv.conf клиентом vpn как SERVER. Когда соединение vpn отключено, я не получаю ответа. То есть добавляет строку в '/etc/resolv.conf'.
Браузер, с другой стороны, не попадает в / etc / resolv.conf и не может разрешить имя хоста. Кстати, и ping / curl.
Я нашел систему systemd-resolve и попытался запустить
nmcli device show | grep IP4.DNS
, но в нем нет dns для устройства cscotun0. (Это также не в 16.04). Кроме того, nmcli перечисляет мой сервер dhcp (мой маршрутизатор) в качестве узла IP4.DNS для моих соединений eth / wlan. Использование dig @192.168.0.1 xxx для любого общедоступного домена отлично работает.
В моем /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-службу всем локальным приложениям, но, видимо, там есть что-то еще, выполняющее эту работу.
Поведение DNS во время соединения OpenVPN сразу улучшилось, когда я последовал предложению на ubuntuforums:
Откройте /etc/NetworkManager/NetworkManager.conf в редакторе с правами root. Удалите (или запишите с хешем #) строку, которая читает dns=dnsmasq Перезапустите NetworkManager через sudo service NetworkManager restartИди в эту же проблему. Как-то я должен был установить DNSmasq с некоторым приложением. Простое удаление dnsmasq решило проблему для меня.
sudo apt-get remove dnsmasq
С тех пор больше нет разъединений или некоторых сайтов, которые больше не могут загружаться (у меня была проблема с загрузкой gmail, то есть все это было неожиданно не удалось подключиться к gmail, хотя другие сайты работали).
Измените /etc/nsswitch.conf и измените
hosts: files mdns4_minimal [NOTFOUND=return] dns
на
hosts: files dns mdns4_minimal [NOTFOUND=return]
Изменить:
У меня были те же проблемы в течение довольно долгого времени. Я смог разрешить доменные имена из vpn, но я не смог выполнить ping или скручивать их или использовать их в других приложениях. Описанное выше изменение решило это для меня.