
Я использую соединение OpenVPN между моим ноутбуком и моим сервером. Конфигурация работала до сегодняшнего дня (я просто запустил apt update && apt upgrade
), но с тех пор мои настройки DNS стали "неправильными" после подключения к OpenVPN.
DNS Domain: ~.
После подключения к серверу OpenVPN в моей systemd-resolve
конфигурации есть две «перехватывающие» записи домена DNS ( ).
Вывод сокращен systemd-resolve --status
:
Link 11 (tun0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.X.Y
DNS Domain: ~.
Link 2 (enp0s25)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.16.X.Y
10.16.X.Y
DNS Domain: ~.
Поэтому DNS-запросы теперь не туннелируются через VPN, а могут передаваться через обычную сеть.
Это приводит к утечке DNS и даже хуже: внутренние имена хостов VPN не преобразуются правильно (время от времени).
Я знаю только варианты добавления DNS Domain: ~.
записи в tun0-Interface для разрешенного. Но как удалить уже существующую из реального интерфейса?
Я уже использую эту конфигурацию для обновления systemd-resolved в моем OpenVPN client.conf:
# Upate systemd-resolvd
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .
Есть у кого-нибудь идеи, как это решить?
// Обновление: Похоже, это давно известная проблема с NetworkManager, который начинает прикреплять корневой домен DNS к ссылкам наугад. Есть интересное обсуждение этого вПроблема с GitHubв репозитории разработчика скрипта update-systemd-resolved
.
// Вероятноэто совершитьк NetworkManager сломал его. Так как он ввел маршрут dns по умолчанию для всех интерфейсов поведения.
решение1
Добавьте в файл конфигурации клиента (файл с расширением .ovpn), загруженный с сервера OpenVPN, строку:
dhcp-option DOMAIN-ROUTE .
Как вы знаете, перед добавлением этой строки в Ubuntu 18.04 необходимо установить update-systemd-resolved
скрипты, как описано вhttps://github.com/jonathanio/update-systemd-resolved
Если это все еще не работает, возможно, вам следует добавить ваш внутренний DNS-сервер. Проверьте строки, которые вы добавляете в конце файла .ovpn, они выглядят так:
script-security 2
dhcp-option DNS 10.1.0.1 # replace this IP with your DNS server IP.
dhcp-option DOMAIN yourinternaldomain.local # replace this with your internal domain name.
dhcp-option DOMAIN-ROUTE .
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
Если вы используете пользовательский интерфейс (gnome) для подключения
Наконец, если вы используете значки пользовательского интерфейса VPN для подключения к VPN, вам необходимо повторно импортировать измененный файл .ovpn.
Для этого выполните в терминале:
sudo apt install openvpn openvpn-systemd-resolved resolvconf
sudo apt install network-manager-openvpn network-manager-openvpn-gnome
Нажмите в меню «Пуск» Ubuntu:
Введите слово "сеть" и нажмите на Сеть. Должно появиться что-то вроде:
Нажмите в "+" войдите в VPN и нажмите на опцию "импортировать из файла":
После импорта добавьте имя и нажмите кнопку «Добавить» в правом верхнем углу диалогового окна.
У вас все настроено!
Чтобы подключиться к VPN, щелкните значок сети, а затем значок замка.