Несколько дней назад у меня начались проблемы с Ubuntu 18.04, хотя я не менял никаких сетевых настроек.
Проблема в том, что когда я подключаюсь к своему рабочему VPN (OpenVPN), я не могу разрешить ни одного DNS-имени в этой сети VPN, если я выбираю «Использовать это подключение только для ресурсов в этой сети». Если я отключаю эту опцию, то я могу разрешить DNS внутри сети, но, естественно, не могу подключиться ни к чему внешнему.
Вот вывод, systemd-resolve --status
если я ОТКЛЮЧУ «Использовать это подключение только для ресурсов в этой сети» и подключусь к VPN:
Link 10 (tun0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.xxx.xx.xx
DNS Domain: ~.
Так что на самом деле он показывает DNS-сервер. Но как только я переключаю "Использовать это подключение только для ресурсов в этой сети" обратно на ВКЛ:
Link 11 (tun1)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 10 (tun0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Я пробовал решения по этому вопросуUbuntu 18.04 нет разрешения DNS при подключении к openvpnно ничего не помогало.
Я также пробовал использовать unbound
пакет, но это тоже не помогло.
Нашел также этоВнезапно не удается получить доступ к ресурсам в сети VPN в Ubuntu 18.04?так что я, очевидно, не одинок в этом, но решения у этой проблемы нет.
Немного растерялся, что еще делать, не хочется из-за этого переустанавливать всю систему.
решение1
Возможно, я решил эту проблему с помощью этой команды:
nmcli c modify <vpn-settings-name> ipv4.dns-search '<domain>'
Они <vpn-settings-name>
должны быть такими же, как в настройках NetworkManager.
На данный момент, похоже, все работает, я ничего не менял после загрузки, кроме выполнения команды выше, и теперь systemd-resolve --status
показывает правильный DNS для сети VPN.
Хотел опубликовать решение на случай, если кто-то еще столкнется с той же проблемой.
решение2
Я обнаружил следующее.
При установке флажка «Использовать это подключение только для ресурсов в этой сети» у меня не было DNS, как и было указано в вопросе.
Если бы этот флажок не был установлен, у меня был бы дублирующийся маршрут по умолчанию, после удаления которого все работало бы, включая DNS.
Сравнивая результаты systemd-resolve --status
этих двух сценариев, я обнаружил следующее:
Если DNS работал, но параметры создавали дублирующий маршрут, то отображалось следующее:
DNS Domain: ~.
corporate-network.local
Когда DNS не работал, отображалось следующее:
DNS Domain: corporate-network.local
Поэтому решением будет установить флажок «Использовать это подключение только для ресурсов в этой сети» и ввести ~.
дополнительный домен DNS.
Теперь подключение работает напрямую из сетевого менеджера без необходимости удаления фиктивного шлюза по умолчанию и всех внутренних разрешений DNS.
решение3
Попробуйте повторно импортировать свой исходный файл .ovpn, если вы еще этого не сделали. У меня была похожая проблема, когда DNS-сервер моего VPN не отображался в systemd-resolve --status
, но как только я повторно импортировал свой файл .ovpn в Network Manager, проблема была решена.
решение4
Мне помог ввод nmcli c modify "Put your VPN Name Here" ipv4.dns-search ~.
командной строки и перезапуск VPN-подключения.