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
注:DNSは18.xxでは、VPNあり/なしで壊れています。
問題...
/etc/resolv.conf
はハードワイヤードファイルであり、シンボリックリンクである必要があります/run/resolvconf/resolv.conf
と/run/systemd/resolve/resolv.conf
にデータが入力されていませんopenresolv
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
設定パネルを開くImport from file
を選択します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はちょっと厄介だと言ったことを思い出してください:-)ようやくうまく動作しましたが、しばらく時間がかかりました。
アップデート#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 ...
Sudo openvpn client.ovpn
http://dnsleak.com
に移動し、VPN IPとDNSリークを確認しますテスト#2 ...
http://dnsleak.com
に移動し、VPN IPとDNSリークを確認します