Вопрос или проблема
Мой Mullvad VPN работал, затем я обновился до 18.10.
Теперь, когда я использую их клиентский интерфейс, он подключается нормально, но DNS не работает.
Я могу пинговать google.com по IP, но не по google.com.
Я могу решить это, указав интерфейс:
>resolvectl query google.com
google.com: resolve call failed: Все попытки связаться с серверами имен или сетями не удались
>resolvectl -i tun0 query google.com
google.com: 216.58.212.174
-- Информация получена через протокол DNS за 1.1ms.
-- Данные аутентифицированы: нет
В man странице для resolvectl говорится следующее об опции -i:
Учтите, что эта опция не действует, если системная конфигурация DNS (как настроено в /etc/resolv.conf или /etc/systemd/resolve.conf) используется вместо конфигурации по каждой ссылке
Итак, моя система использует конфигурацию по каждой ссылке? Как я могу это проверить?
Дополнительная информация:
>ls -ld /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Oct 28 10:10 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
>cat /run/resolvconf/resolv.conf
# Динамический файл resolv.conf(5) для резолвера glibc(3), сгенерированный resolvconf(8)
# НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ ВРУЧНУЮ -- ВАШИ ИЗМЕНЕНИЯ БУДУТ ПЕРЕПИСАНЫ
# 127.0.0.53 — заглушка резолвера systemd-resolved.
# выполните команду "systemd-resolve --status", чтобы увидеть детали о действительных серверах имен.
nameserver 127.0.0.53
Дополнительная информация по запросу:
Используется openvpn 2.4.6-1ubuntu2
Вывод из systemd-resolve –status (когда vpn подключен):
Global
LLMNR настройка: нет
MulticastDNS настройка: нет
DNSOverTLS настройка: нет
DNSSEC настройка: нет
DNSSEC поддерживается: нет
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 6 (tun0)
Текущие области: DNS
LLMNR настройка: да
MulticastDNS настройка: нет
DNSOverTLS настройка: нет
DNSSEC настройка: нет
DNSSEC поддерживается: нет
Текущий DNS сервер: 10.9.0.1
DNS сервера: 10.9.0.1
Link 3 (wlp1s0)
Текущие области: DNS
LLMNR настройка: да
MulticastDNS настройка: нет
DNSOverTLS настройка: нет
DNSSEC настройка: нет
DNSSEC поддерживается: нет
Текущий DNS сервер: 192.168.0.1
DNS сервера: 192.168.0.1
DNS домен: ~.
Link 2 (eno1)
Текущие области: DNS
LLMNR настройка: да
MulticastDNS настройка: нет
DNSOverTLS настройка: нет
DNSSEC настройка: нет
DNSSEC поддерживается: нет
Текущий DNS сервер: 192.168.0.1
DNS сервера: 192.168.0.1
DNS домен: ~.
ps auxc | grep dns возвращает ничего
>ps auxc | grep resolv возвращает:
systemd+ 557 0.0 0.1 55480 9236 ? Ss Oct28 0:06 systemd-resolve
Я отправил электронное письмо в службу поддержки Mullvad, и они посоветовали мне просто использовать openvpn, то есть тот же ответ, что и у Coffee_Mug в:
Mullvad vpn не подключается на Ubuntu 18.04
На одном компьютере я использовал старый клиент Mullvad через “env MULLVAD_USE_GTK3=yes mullvad”, но на другом получил ту же ошибку, что и amicose в
Mullvad VPN Client не запускается на 18.04
Для этого второго компьютера я отказался разбираться, почему он не работает, и просто настроил openvpn для подключения к одному серверу.
Версия 2018.6 приложения Mullvad работает отлично
Ответ или решение
Проблема с DNS при использовании Mullvad VPN на Ubuntu 18.10
Фон проблемы
Ваш VPN-клиент Mullvad корректно подключался до обновления системы до Ubuntu версии 18.10. После обновления вы столкнулись с проблемами разрешения DNS: несмотря на успешное подключение клиента, имена доменов не разрешаются. Пинг по IP адресу работает, например, ping google.com
по IP проходит, но по доменному имени—нет.
Описание проблемы
Использование команды resolvectl
показывает, что проблема возникает в системе разрешения DNS:
- Команда
resolvectl query google.com
возвращает ошибку: "All attempts to contact name servers or networks failed". - При этом команда
resolvectl -i tun0 query google.com
успешно разрешает доменное имя.
Это указывает на потенциальные проблемы в конфигурации DNS, которая не учитывает настройки VPN-интерфейса tun0
.
Анализ конфигурации
- Ваш файл
/etc/resolv.conf
является символической ссылкой на/run/resolvconf/resolv.conf
, что указывает на использованиеresolvconf
для управления DNS-конфигурацией. - Как видно из вывода
systemd-resolve --status
, множественные интерфейсы, такие какtun0
,wlp1s0
, иeno1
, имеют свои собственные DNS настройки.
Потенциальные решения
-
Переконфигурация systemd-resolved:
- Убедитесь, что
systemd-resolved
корректно работает с вашимtun0
интерфейсом. Это может включать модификацию/etc/systemd/resolved.conf
для указания правильных серверов DNS. - Перезагрузите
systemd-resolved
с помощью команды:sudo systemctl restart systemd-resolved
- Убедитесь, что
-
Изменение статуса по умолчанию для
resolvectl
:- Система, скорее всего, не использует конфигурации per-link по умолчанию, поэтому явное указание интерфейса (
-i tun0
) необходимо для разрешения DNS-запросов.
- Система, скорее всего, не использует конфигурации per-link по умолчанию, поэтому явное указание интерфейса (
-
Альтернативное использование OpenVPN:
- Mullvad предложил использование OpenVPN, что может быть более стабильным решением.
- Установите и настройте OpenVPN с необходимыми конфигурациями Mullvad.
-
Отключение использования
systemd-resolved
:- При необходимости, можно вообще отключить
systemd-resolved
, и напрямую использовать конфигурации в/etc/resolv.conf
. Однако это может вызвать другие системные проблемы.
- При необходимости, можно вообще отключить
-
Альтернативные клиенты Mullvad:
- Использование ранее работающих версий клиента Mullvad, например, версии 2018.6, может удалить проблему.
Заключение
Проблемы с DNS часто являются комплексными и могут требовать ряда изменений для стабильного решения. Однако использование вышеописанных методов может направить вас к успешной настройке Mullvad VPN. Если проблема сохраняется, рекомендуется поддерживать связь с технической поддержкой Mullvad для получения самых актуальных рекомендаций.