DNS, не работающий после перезагрузки

После начальной загрузки Ubuntu 18.10 я не могу разрешить доменные имена и мой /etc/resolv.conf файл похож на это:

# Generated by NetworkManager
nameserver 127.0.0.53

$ nslookup google.com - 127.0.0.53 команда ничего не возвращает также.

Это стало проблемой после установки этого сценария для поддержки DNS в OpenVPN: https://github.com/masterkorp/openvpn-update-resolv-conf

Я думаю, что установил openresolv пакет, но я не уверен, как настроить все для сотрудничества.

Прямо сейчас я просто должен вручную обновить /etc/resolv.conf с серверами Google DNS каждый раз после начальной загрузки. Однако VPN хорошо работает, таким образом, похоже, что это обновляет DNS для этого.

Что могло быть сделано, чтобы заставить его работать после перезагрузки ПК и после установления туннеля VPN с OpenVPN?

Любые предложения будут высоко цениться.


Команды требует @heynnema:

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

$ cat /etc/issue
Ubuntu 18.10

$ uname -a
Linux destiny 4.18.0-13-generic #14-Ubuntu SMP Wed Dec 5 09:04:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ ls -al /etc/resolv.conf
-rw-r--r-- 1 root root 52 янв 21 21:20 /etc/resolv.conf

$ ps auxc | grep -i dns

$ host 8.8.8.8
;; connection timed out; no servers could be reached

$ host www.ebay.com
;; connection timed out; no servers could be reached

$ ps auxc | grep -i resolv

$ cat /run/resolvconf/resolv.conf
cat: /run/resolvconf/resolv.conf: No such file or directory

$ cat /run/systemd/resolve/resolv.conf
cat: /run/systemd/resolve/resolv.conf: No such file or directory

$ ls -al /etc/openvpn
total 36
drwxr-xr-x   5 root root  4096 янв 15 14:54 .
drwxr-xr-x 139 root root 12288 янв 21 23:43 ..
drwxr-xr-x   2 root root  4096 сен  3 11:57 client
drwxr-xr-x   2 root root  4096 янв 15 14:25 scripts
drwxr-xr-x   2 root root  4096 сен  3 11:57 server
-rwxr-xr-x   1 root root  1468 сен  3 11:57 update-resolv-conf
-rwxr-xr-x   1 root root  2152 янв 15 14:54 update-resolv-conf.sh

# openvpn --version
OpenVPN 2.4.6 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep  3 2018
library versions: OpenSSL 1.1.1  11 Sep 2018, LZO 2.10
Originally developed by James Yonan
Copyright (C) 2002-2018 OpenVPN Inc <sales@openvpn.net>
Compile time defines: enable_async_push=no enable_comp_stub=no enable_crypto=yes enable_crypto_ofb_cfb=yes enable_debug=yes enable_def_auth=yes enable_dependency_tracking=no enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown enable_fast_install=needless enable_fragment=yes enable_iproute2=yes enable_libtool_lock=yes enable_lz4=yes enable_lzo=yes enable_maintainer_mode=no enable_management=yes enable_multihome=yes enable_pam_dlopen=no enable_pedantic=no enable_pf=yes enable_pkcs11=yes enable_plugin_auth_pam=yes enable_plugin_down_root=yes enable_plugins=yes enable_port_share=yes enable_selinux=no enable_server=yes enable_shared=yes enable_shared_with_static_runtimes=no enable_silent_rules=no enable_small=no enable_static=yes enable_strict=no enable_strict_options=no enable_systemd=yes enable_werror=no enable_win32_dll=yes enable_x509_alt_username=yes with_aix_soname=aix with_crypto_library=openssl with_gnu_ld=yes with_mem_check=no with_sysroot=no

$ systemctl status | head -n 6

● destiny
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Tue 2019-01-22 17:33:01 MSK; 1min 29s ago
   CGroup: /

$ systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution
   Loaded: loaded (/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:systemd-resolved.service(8)
           https://www.freedesktop.org/wiki/Software/systemd/resolved
           https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
           https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
1
задан 22 January 2019 в 17:38

1 ответ

Примечание: DNS прерван 18.xx, с/без VPN.


Проблемы...

  • Ваш /etc/resolv.conf зашитый файл и должна быть символьная ссылка
  • Ваш /run/resolvconf/resolv.conf и /run/systemd/resolve/resolv.conf не становятся заполненными
  • Вы установили openresolv
  • Вы следовали двухлетнему сценарию от GitHub (+ для попытки хотя)
  • systemd-resolved отключен и не выполнение
  • Вы скучаете по некоторым требуемым network-manager пакеты

Так... только для запуска...

  • удаление openresolv
  • удалите все модификации на основе ссылки GitHub

  • повторно включите и перезапустите systemd-resolved

sudo systemctl enable systemd-resolved # повторно включите systemd-разрешенный

sudo systemctl start systemd-resolved # запустите systemd-разрешенный

sudo systemctl status systemd-resolved # проверьте состояние

  • воссоздайте /etc/resolv.conf символьная ссылка

sudo rm -i /etc/resolv.conf # удалите зашитый файл

sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf # воссоздайте символьную ссылку

sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf # воссоздайте символьную ссылку

reboot # перезагрузите систему

после перезагрузки...

cat /etc/resolv.conf # проверьте содержание/etc/resolv.conf

и подтвердите, что это содержит что-то как 192.168.x.1 или IP-адрес восходящего сервера DNS.


Мы изменим Ваши .ovpn сценарии, импортируем их в NetworkManager и протестируем VPN позже. Одной вещью отметить является то использование sudo openvpn script_name.ovpn может привести к различным результатам, чем импорт .ovpn файла в NetworkManager.

Для Ваших .ovpn файлов...

Добавьте следующее в конце файла (попробуйте это только одним из Ваших .ovpn файлов).

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

затем попробуйте...

sudo openvpn script_name.ovpn # подключение через cli

cat /etc/resolv.conf # перепроверьте содержание и подтвердите изменения

resolvectl # проверьте, что серверы DNS становятся присвоенными tap0

Проверьте на утечки DNS по http://dnsleak.com


Обновление № 1:

Я передумал (по крайней мере временно) и решил измениться, символьная ссылка на шаге "воссоздают /etc/resolv.conf символьная ссылка"...

  • воссоздайте /etc/resolv.conf символьная ссылка

sudo rm -i /etc/resolv.conf # удалите символьную ссылку

sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf # воссоздайте символьную ссылку

sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf # воссоздайте символьную ссылку

  • resolvectl может не показать ожидаемый результат для устройства tap0 с VPN

Обновление № 2:

Теперь мы импортируем измененный .ovpn файл в NetworkManager.

  • откройтесь Network панель настроек
  • найдите раздел VPN и нажмите "+" значок для добавления соединения
  • выбрать Import from file
  • найдите свой измененный .ovpn и импортируйте его
  • после того, как импортированный, нажмите кнопку "ADD"
  • используйте меню NetworkManager's VPN для соединения с Сервером VPN с помощью импортированного .ovpn
  • проверьте на утечки DNS по http://dnsleak.com

  • resolvectl должен показать ожидаемый результат для устройства tap0 с VPN

Обновление № 3:

  • установленные недостающие пакеты...

network-manager-openvpn

network-manager-openvpn-gnome

network-manager-vpnc

  • должен проверить на них (dpkg -l *resolv* | grep ii)...

resolvconf

libnss-resolve

Обновление № 4:

Вот является снимок экрана "Проводного соединения" сценарием NM, о котором я говорю... можно установить DNS там (не забудьте устанавливать DNS, АВТОМАТИЧЕСКИЙ на ПРОЧЬ и затем вводить разделенные от запятой IP-адреса DNS)... или редактирование /etc/systemd/resolved.conf и редактирование #DNS= строка... однако любой из них мог бы переопределить автоматическую обработку DNS с VPN, что мы пытаемся достигнуть 100%.

Помните то использование sudo openvpn client.ovpn приводит к немного отличающимся результатам, чем инициирование соединение VPN от NetworkManager с импортированным .ovpn сценарием. В любом случае Вы захотите контролировать два resolv.conf, к которым у нас есть symlinked /etc/resolv.conf и посмотрите, какой соответственно показывает серверы DNS или от Вашей локальной сети или от сети VPN, но обычно не оба... затем корректируют символьную ссылку при необходимости. (отметьте: нам, вероятно, придется также отредактировать /etc/nsswitch.conf... больше на этом позже).

Помните, что я сказал, что DNS довольно странен в 18.xx :-) Я наконец получил горные выработки вполне прилично, но они заняли время.

enter image description here


Обновление № 5:

Что-то для попытки... Я не играл с этим сам..., так сообщите со своими результатами.

Править /etc/nsswitch.conf и временно прокомментируйте:

hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns

и положенный это на его место:

hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns myhostname

Обновление № 6:

Если это сбивает с толку... помнят, что я сказал, что это могло бы быть...

Вот тест для Вас для выполнения... делают тщательные заметки, поскольку легко понять его превратно из памяти... Я знаю, что сделал...

Давайте просто просто посмотрим на вывод resolvectl. Существует 3 различных места, которые мы должны надеяться видеть, работает ли это на самом деле правильно.

Global
       LLMNR setting: no
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
  Current DNS Server: 10.200.0.1 <--note
         DNS Servers: 10.200.0.1 <--note

и...

Link 5 (tun0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
  Current DNS Server: 10.200.0.1 <--note
         DNS Servers: 10.200.0.1 <--note
          DNS Domain: ~.

и...

Link 2 (eth0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
  Current DNS Server: 192.168.0.1 <--note
         DNS Servers: 192.168.0.1 <--note
          DNS Domain: ~

Запустите два отдельных теста...

Тест № 1...

  • используйте CLI, sudo openvpn client.ovpn
  • отметьте, с помощью вышеупомянутых 3 примеров, если DNS VPN обнаруживается где-нибудь
  • перейдите в http://dnsleak.com и проверьте на IP VPN и на утечки DNS

Тест № 2...

  • используйте интерфейс NM для соединения использования импортированного .ovpn файла
  • отметьте, с помощью вышеупомянутых 3 примеров, если DNS VPN обнаруживается где-нибудь
  • перейдите в http://dnsleak.com и проверьте на IP VPN и на утечки DNS
2
ответ дан 7 December 2019 в 13:19

Другие вопросы по тегам:

Похожие вопросы: