web-dev-qa-db-ja.com

再起動後にDNSが機能しない

Ubuntu 18.10を起動した後、ドメイン名を解決できず、/etc/resolv.confファイルは次のようになります。

# Generated by NetworkManager
nameserver 127.0.0.53

$ nslookup google.com - 127.0.0.53コマンドも何も返しません。

これは、OpenVPNでDNSサポート用のこのスクリプトをインストールした後に問題になりました: https://github.com/masterkorp/openvpn-update-resolv-conf

私はopenresolvパッケージをインストールしたと思いますが、すべてが連携するように構成する方法がわかりません。

現時点では、起動後に毎回Google DNSサーバーで/etc/resolv.confを手動で更新する必要があります。ただし、VPNは正常に機能しているため、このためにDNSを更新しているようです。

PCを再起動し、OpenVPNでVPNトンネルを確立した後、それを機能させるにはどうすればよいですか?

どんな提案も大歓迎です。


@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 <[email protected]>
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
Slava Fomin II

:DNSは18.xxでは、VPNあり/なしで壊れています。


問題...

  • /etc/resolv.confはハードワイヤードファイルであり、シンボリックリンクである必要があります
  • /run/resolvconf/resolv.conf/run/systemd/resolve/resolv.confにデータが入力されていません
  • あなたがインストールしたopenresolv
  • あなたはgithubから2年前のスクリプトをフォローしました(+を試してみました
  • systemd-resolvedは無効であり、実行されていません
  • 必要なnetwork-managerパッケージが不足しています

だから...ただ始めるだけ...

  • アンインストールopenresolv
  • githubリンクに基づいてすべてのmodを削除します

  • 再度有効にして再起動するsystemd-resolved

Sudo systemctl enable systemd-resolved#systemd-resolvedを再度有効化

Sudo systemctl start systemd-resolved#systemd-resolvedを開始

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のようなもの、または上流のDNSサーバーのIPアドレスが含まれていることを確認します。


.ovpnスクリプトを変更してNetworkManagerにインポートし、後でVPNをテストします。 Sudo openvpn script_name.ovpnを使用すると、.ovpnファイルをNetworkManagerにインポートする場合とは異なる結果が生じる可能性があることに注意してください。

。ovpnファイルの場合...

ファイルの最後に次を追加します(1つの.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に割り当てられていることを確認します

http://dnsleak.com でDNSリークを確認します


更新#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は、VPNがアップしているデバイスtap0の予想結果を表示しない場合があります

更新#2:

次に、変更した.ovpnファイルをNetworkManagerにインポートします。

  • Network設定パネルを開く
  • vPNセクションを見つけ、「+」アイコンをクリックして接続を追加します
  • Import from fileを選択します
  • 変更した.ovpnを見つけてインポートします
  • インポートしたら、「追加」ボタンをクリックします
  • networkManagerのVPNメニューを使用して、インポートした.ovpnを使用してVPNサーバーに接続します
  • http://dnsleak.com でDNSリークを確認します

  • resolvectlは、VPNがアップしているデバイスtap0の予想結果を表示する必要があります

更新#3:

  • 不足しているパッケージをインストールしました...

network-manager-openvpn

network-manager-openvpn-gnome

network-manager-vpnc

  • これらをチェックする必要があります(dpkg -l *resolv* | grep ii)...

resolvconf

libnss-resolve

アップデート#4:

これが「有線接続」のスクリーンショットですNMスクリプト... DNSをそこに設定できます(DNS AUTOをOFFに設定してから、カンマ区切りのDNSを入力してください) IPアドレス)...または/etc/systemd/resolved.confを編集して#DNS=行を編集します...ただし、これらのいずれかが、100%で取得しようとしているVPNでのDNSの自動処理を上書きする可能性があります。

Sudo openvpn client.ovpnを使用すると、インポートされた.ovpnスクリプトを使用してNetworkManagerからVPN接続を開始する場合とは少し異なる結果が生じることに注意してください。どちらの場合も、/etc/resolv.confにシンボリックリンクされた2つのresolv.confを監視して、ローカルネットワークまたはVPNネットワークのいずれかからDNSサーバーを適切に表示しますが、通常は両方を表示しないようにします。 ..次に、必要に応じてシンボリックリンクを調整します。 (注:/etc/nsswitch.conf...についても後で編集する必要がある場合があります)。

18.xxでDNSはちょっと厄介だと言ったことを思い出してください:-)ようやくうまく動作しましたが、しばらく時間がかかりました。

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: ~

2つの個別のテストを実行...

テスト#1 ...

  • cLIを使用する、Sudo openvpn client.ovpn
  • 上記の3つの例を使用して、VPN DNSがどこかに表示される場合
  • http://dnsleak.comに移動し、VPN IPとDNSリークを確認します

テスト#2 ...

  • NMインターフェイスを使用して、インポートした.ovpnファイルを使用して接続します
  • 上記の3つの例を使用して、VPN DNSがどこかに表示される場合
  • http://dnsleak.comに移動し、VPN IPとDNSリークを確認します
2
heynnema