Не работает dns через vpn linux

OpenVPN не меняет DNS на клиенте

В конфиге сервера (Lubuntu 16.04) прописано:

push «redirect-gateway def1 bypass-dhcp»

push «dhcp-option DNS 208.67.222.222»

push «dhcp-option DNS 208.67.220.220»

На клиенте (Ubuntu 18.04) УТЕЧКА DNS УСТРАНЕНА (DNS теперь не идёт через моего провайдера при конекте к VPN), но при подключении к серверу, DNS меняется не на OpenDNS (те, что в конфиге сервера), а на DNS провайдера сервера. При подключении с Android всё ок, https://www.dnsleaktest.com показывает сервера OpenDNS.

Могу приложить конфиги сервера и клиента.

Скажи спасибо systemd, который всё делает через жопу и сует свои поганые шупальца куда не просят, и иди его настраивать.

А поподробнее можно? Или ссылку

В твоей вселенной гугл не изобрели еще?
openvpn dns systemd

Читай новости украины. Гугла в России блокирует розкомнадзор. Недоступен, короче, гугл во вселенной России.

Не, пока вы тут его сравнивали с землей, мне было странно, но когда он отказывался запускать мой postges в режиме восстановления, я стал его недолюбливать.

Удалил openresolv, поставил openvpn-systemd-resolved. Сейчас в конце конфигурации записано следующее:

Подключай клиент не через NetworkManager, а отдельно сервисом openvpn, это он (NM) сливает DNS, недавно кучу времени убил.

Вот пример моего конфига клиента /etc/openvpn/client.conf:

Предварительно конечно же нужно поставить сам openvpn.

Кстати, NM выпиливать не обязательно, основное соединение может устанавливаться через него.

Внимательнее

Я же в сообщении выше написал, что запускаю через команду в терминале.

Re: Внимательнее

dpkg -l | grep resolvconf

если не стоит, ставишь пакет. Добавляешь в конфиг клиента:

Вы совершенно не поняли сути проблемы.

Я уже пробовал и resolvconf и openresolv. Сейчас у меня стоит openvpn-systemd-resolved. Они все работаю примерно одинаково. И мне нужно НЕ чтобы OpenDNS прописывались в /etc/resolv.conf, а чтобы чапросы шли через VPN тунель на сервер, а от туда на OpenDNS. Если DNS запросы будут идти через моего провайдера, я потеряю половину смысла от личного VPN-сервера.

OpenVPN не меняет DNS на клиенте
push «dhcp-option DNS 208.67.222.222»
push «dhcp-option DNS 208.67.220.220»

И мне нужно НЕ чтобы OpenDNS прописывались в /etc/resolv.conf

Вы уж определитесь что вам нужно.

В последнем ответе я изложил хотелку: DNS запросы идут через VPN на сервер, а от туда на выбранный мною DNS.

А можно прописать в DNS на клиенте адрес сервера и «научить» сервер перенаправлять запросы на нужный мне DNS? Если да, то как это реализовать

Точнее не внешний адрес сервера, а внутренний, который используется для VPN тунеля

На сервере поставить dnsmasq и его адрес прописать клиенту.
Только не понятно зачем вам это.

Так мне же надо, чтобы запросы не шли через моего провайдера.

И мне нужно НЕ чтобы OpenDNS прописывались в /etc/resolv.conf

Это кто написал?

Есть еще один вектор атаки. Практически везде на линуксах, в роутерах и т.д. используется dnsmasq — кеширующий dns сервер. У каждого резолва есть TTL несколько минут, если dns’ы гугла отдают ip по геопривязки, то в принципе они могут задетектить, что даже если ip из страны Х, то запрос пришел на сервер для станы Y (потому что dnsmasq вернул закешированный адрес).

Читайте также:  Windows 10 последняя винда

Перепутал, хотел ответить в теме «Утечка DNS на уровне роутера? » 🙂

Re: Вы совершенно не поняли сути проблемы.

Да это ты не понимаешь чего хочешь.

DNS запросы идут через VPN на сервер, а от туда на выбранный мною DNS.

Они и так идут через туннель, в случае opendns. А так, поднимай unbound, dnsmasq, etc . И пушь этот локальный адрес. Он пропишется на клиенте. Да и мозгоеб, закрой уже тему.

Я хз, как это делать, иначе не лез бы на форумы.И DNS-запросы не идут через тунель.

Источник

Устраняем утечку DNS при использовании OpenVPN в GNU/Linux

В дистрибутивах GNU/Linux, использующих новые версии системы инициализации systemd, можно встретить проблему утечки DNS. А при использовании некоторых VPN-сервисов, например Антизапрет, можно столкнутся с проблемой отсутствия разблокирования сайтов, т.к для разблокировки активно используется DNS внутри туннеля OpenVPN.

Примечание

Если у вас нет проблемы с утечкой DNS в работе OpenVPN, то выполнять следующие решения вам не стоит.

В сети можно встретить различные решения данной проблемы, например список вариантов на сайте ArchLinux. Мне же помогло следующее решение:

1. Устанавливаем пакет openresolv:

для дистрибутивов Ubuntu и подобных:

для дистрибутивов Arch и подобных:

2. Отключаем systemd-resolved:

Редактируем файл NetworkManager.conf

Сразу под Main дописываем строчку:

Сохраняем изменения с помощью комбинации клавиш Ctrl + O и Ctrl + X .

3. Перезагружаем систему и выполняем следующие команды. Так как на resolv.conf создан симлинк, то мы его удаляем:

И создаём новый:

Отобразится терминал с пустым файлом. Дописываем (можно указать любой DNS-сервер):

Сохраняем изменения с помощью комбинации клавиш Ctrl + O и Ctrl + X .

4. Устанавливаем скрипт:

5. Редактируем конфигурационный файл клиента с расширением .ovpn . Для редактирования файла нужно открыть его в любом текстовом редакторе.

Добавляем в файл следующие команды:

Примечание

Вполне возможно, что данные команды уже присутствуют в конфигурационном файле, и скорее всего они закомментированы. В таком случае достаточно снять комментирование, т.е убрать значок # перед файлами.

Дополнительно отмечу, что в последнее время можно встретить проблему с неработающим OpenVPN клиентом через менеджер сети (NetworkManager). В таком случае запустить vpn соединение можно через терминал, миную менеджер сети. Запускаем следующим образом:

Остановить соединение можно с помощью прерывания процесса через комбинацию клавиш Ctrl + C .

Источник

Почему после подключения по VPN проблема с DNS?

Не могу подключится по OpenVPN, вохникает ошибка DNS

This site can’t be reached

whoer.net’s server DNS address could not be found.
Try:
Checking the proxy, firewall, and DNS configuration
DNS_PROBE_FINISHED_BAD_CONFIG

Как это исправить? Убунта 16.04, VPS на Амазоне, тоже Убунта.

  • Вопрос задан более трёх лет назад
  • 2754 просмотра

Вероятно, вы забыли что-то добавить в конфиг, всегда есть возможность установить dns-ы индивидуально локально.

Перезагружаем
sudo service network-manager restart

Вроде оно. Если ошибка повторяется, то можно добавить влоб

Есть вариант поставить dnsmasq

По аналогии перезагрузить и пользоваться.
sudo service dnsmasq restart

А вот тут есть маленькая статья, которая помогла бы избежать этого всего https://habrahabr.ru/post/318694/

Читайте также:  Как убрать запуск двух windows

cat /etc/resolv.conf
это не помогло, ДНС остался только nameserver 127.0.1.1

а этого файла у меня НЕТУ ВООБЩЕ /etc/dhcp/dhclient.d/mydns.conf

Есть вариант поставить dnsmasq

sudo echo «server=8.8.8.8» >> /etc/dnsmasq.conf
sudo echo «server=8.8.4.4» >> /etc/dnsmasq.conf

НЕТУ У МЕНЯ ЭТИХ ФАЙЛОВ

nosazus:
Все делать на клиенте.
/etc/resolvconf/resolv.conf.d/base
/etc/resolvconf/resolv.conf.d/head
/etc/dhcp/dhclient.d/mydns.conf
должны создаться.

dnsmasq еще нужно установить.
apt-get install dnsmasq

Почему на этом Линуксе все через анус?

Потому что убунта.

Ставил бы сразу слаку — не видел бы проблем!

Спасибо вам за советы. Вчера ночью психанул и бросил. Сегодня проснулся, загрузил комп и в /etc/resolv.conf появился nameserver 8.8.4.4. Попробовал подключится к ВПН — и он заработал. Не знаю почему. Ничего не менял. Получается перезагрузка обяхательно нужна после этих манипуляций? Я перезагружал только NetworkManager вчера. Делал только это:

sudo echo «nameserver 8.8.8.8» > /etc/resolvconf/resolv.conf.d/base
sudo echo «nameserver 8.8.4.4» > /etc/resolvconf/resolv.conf.d/head

dummyman написал варианты решения проблемы но не написал причины, куда можно посмотреть повнимательнее :
Если до подключения интернет работает а после — нет, значит вы в конфигурации VPN при подключении отдаете неверные DNS сервера с VPN сервера на ваш клиент. Это первый вариант, который можно проверить.
Путь решения описал dummyman :
— Вписать гарантированно работающие DNS серверы в ваш resolv.conf
— использовать dnsmasq и резолвить DNSы только через него, игнорируя приходящие настройки (это, по сути, еще одна программная прослойка которую нужно корректно настроить, поэтому этот путь спорный)
Я бы добавил еще путь «проверить настройки на VPN сервере : что отдается клиенту при подключении в качестве настроек сети(dns серверы)

Второй вариант проблемы — используемые вами до подключения DNS серверы пытаются ходить в интернет через VPN, а VPN им не разрешает по какой-то причине. Здесь только проверка (tracepath до прописанного в конфиге DNS сервера) и после получения результата — корректная настройка того узла где трейс теряется. Или же добавление маршрутов к DNS серверам через ваше интернет подключение, чтобы не ходили DNSы через VPN.

P.S. прочитал комментарии к ответу:

ДНС остался только nameserver 127.0.1.1

Спасибо вам за советы. Вчера ночью психанул и бросил. Сегодня проснулся, загрузил комп и в /etc/resolv.conf появился nameserver 8.8.4.4. Попробовал подключится к ВПН — и он заработал. Не знаю почему. Ничего не менял. Получается перезагрузка обяхательно нужна после этих манипуляций? Я перезагружал только NetworkManager вчера. Делал только это:

sudo echo «nameserver 8.8.8.8» > /etc/resolvconf/resolv.conf.d/base
sudo echo «nameserver 8.8.4.4» > /etc/resolvconf/resolv.conf.d/head

yellowmew: Да тут вопрос не в эталонной настройке vpn. Автору бы сначала сделать чтобы работало хоть как то. Знаю как это выглядет. Сотни вкладок с форумами на слабеньком нетбуке. Дикая головная боль.

А с нынешним количеством гайдов по настройке openvpn сложно понять что именно было упущено. Там надо принимать во внимание и тонкости дистрибутивов и особенности хостера. Как бы, уже надо разбираться что и как. А в настройках локально сложно что-либо упустить.

Граммотная настройка vpn придет с количеством настроенных серверов. А для первых разов на какое-то время сойдет и так. Понятное дело, что это не совсем правильно, но ведь и автор вопроса занят личными или корпоративными задачами (делами), а не написанием гайда по настройкам.

Читайте также:  Как отключить композицию рабочего стола windows 10

Источник

Ubuntu 18.04 без разрешения DNS при подключении к openvpn

Когда я подключаюсь к сети VPN через Gnome Network-manager, я теряю разрешение DNS и на практике не могу получить доступ к ресурсам внутри сети VPN или за ее пределами.

Когда я использовал Ubuntu 16.04 и использовал VPN, /etc/resolv.conf/ файл » » содержал DNS-серверы сети (VPN), которую я подключил. Теперь он всегда содержит следующие записи:

Из того, что я понял, 127.0.0.53 является адрес заглушки DNS, используемый system-resolved .

Я подозреваю, что это ошибка, потому что VPN работал нормально на Ubuntu 16.04. Можно ли как-то настроить DNS-серверы моей сети, когда я использую службу VPN?

Обновить:

Я попытался соединиться с сетью OpenVPN с файлом конфигурации, приложенным в конце сообщения, но я получаю следующую ошибку:

Я проверил, что сервер использует сжатие lzo, и я также включил его. Соединение остается активным, но я не могу перейти ни на одну страницу внутри или за пределами VPN.

В файле конфигурации, указанном ниже, я включил решения, опубликованные в ответах

Я нашел решение в этом сообщении в блоге . Хотя упомянуто два решения, я предпочитаю использовать второе, потому что оно означает, что мой DNS установлен сервером OpenVPN (первое решение означает, что я использую те же DNS-серверы, независимо от того, подключен я к серверу OpenVPN или нет).

  • sudo mkdir -p /etc/openvpn/scripts
  • sudo wget https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/master/update-systemd-resolved -P /etc/openvpn/scripts/
  • sudo chmod +x /etc/openvpn/scripts/update-systemd-resolved

Затем отредактируйте файл клиента OpenVPN (например, client.ovpn), изменив сценарии вверх / вниз на:

(Я закомментировал исходные настройки вверх / вниз).

проблема

Файл /etc/resolv.conf не обновляется /etc/openvpn/update-resolv-conf сценарием, поскольку resolvconf по умолчанию не установлен в Ubuntu 18.04.

Фактически, одна из первых строк этого скрипта проверяет наличие /sbin/resolvconf исполняемого файла:

Установка resolvconf через apt-get не является решением, так как /etc/openvpn/update-resolv-conf скрипт обновляет /etc/resolv.conf файл с введенной записью DNS, но устройство tun, кажется, игнорирует его.

Решение

Ubuntu 18.04 использует systemd-resolved , поэтому все, что вам нужно сделать, это установить вспомогательный скрипт openvpn для systemd-resolved через

Обновите ваш config.ovpn файл, добавив следующие строки:

Это вместо того, чтобы добавить и вниз /etc/openvpn/update-resolv-conf к конф.

Чтобы предотвратить утечку DNS, вы должны добавить эту строку в конец config.ovpn файла (согласно этому комментарию к выпуску systemd ):

На самом деле, есть гораздо более простое решение этой проблемы. Проблема в DNS-трафике и в том, как это делает Ubuntu 18. По умолчанию переадресация IP отключена, что необходимо OpenVPN для обеспечения правильной работы сети. Все, что вам нужно сделать, это запустить следующую команду:

Когда вы откроете этот файл, найдите строку, в которой он содержится net.ipv4.ip_forward . Если эта строка закомментирована, удалите знак # в начале строки (если она не закомментирована, у вас есть другая проблема). Сохраните файл и перезапустите ваш экземпляр сервера OpenVPN.

Это исправление не требует внесения каких-либо изменений в код клиента или OpenVPN после обновления до Ubuntu 18. Протестировано и подтверждено, что оно работает.

Однако это, очевидно, требует от вас администрирования сервера. И, к сожалению, ошибка существует для многих, кто просто подключается с 18.04 к серверу OpenVPN, который администрируется кем-то другим .

Источник

Оцените статью