Debian 11、resolv.confはネームサーバー設定を永久に保存しません。

Debian 11、resolv.confはネームサーバー設定を永久に保存しません。

Debian 11、インターネット接続が利用できず、pingがドメイン名を解決できないという問題があります。この/etc/resolv.confファイルはNetworkManagerによって継続的に上書きされ、再起動後に次のものが含まれます。

# Generated by NetworkManager
nameserver ::1 

resolv.confエントリを追加してファイルを編集します。

# Generated by NetworkManager
nameserver 8.8.8.8 

ただし、この変更は継続されず、再起動すると消えます。過去にはこの問題は発生せず、VPNとTORブラウザを使用した後に発生すると思います。この問題をどのように解決しますか?

resolvconf編集:ツールをインストールして再起動しましたが、変更はありません。

~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "resolvectl status" to see details about the actual nameservers.

nameserver ::1

~$ resolvectl status
Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.

編集2:2つのアクティブなネットワーク接続があります。 1つはルータで、2つ目はVPNサービスから来たようです。

~$ nmcli c show TRENDnet752 | grep -i -e name_servers -e dns
connection.mdns:                        -1 (default)
ipv4.dns:                               8.8.8.8
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.ignore-auto-dns:                   yes
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.ignore-auto-dns:                   no
IP4.DNS[1]:                             8.8.8.8
~$ nmcli c show pvpn-ipv6leak-protection | grep -i -e name_servers -e dns
connection.mdns:                        -1 (default)
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.ignore-auto-dns:                   no
ipv6.dns:                               ::1
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      -1400
ipv6.ignore-auto-dns:                   yes
IP6.DNS[1]:                             ::1

編集 3. 次の手順で問題を解決しました。

sudo systemctl status resolvconf.service
(“Active: active (exited)” message)

Opened the head file:
sudo nano /etc/resolvconf/resolv.conf.d/head

Entered nameservers and saved:

nameserver 8.8.8.8
nameserver 8.8.4.4

Then updated resolv.conf to use the new nameservers:

sudo resolvconf --enable-updates
sudo resolvconf -u

答え1

すべてのDNS設定情報は明らかにNetworkManagerによって提供されるので、次のステップはNetworkManager設定を調査することです。

まず、nmcli cc「connection / s」の略語)を使用して設定された接続のリストを表示します。カラー端末がある場合は、アクティブな接続が緑色で表示されます。アクティブな接続の名前を書き留めます。

次に、各アクティブ接続に対して次を実行します。

nmcli c show <connection name here> | grep -i -e name_servers -e dns

<connection name here>アクティブ接続の名前に変更します(複数のアクティブ接続がある場合は一度に1つ)。各接続に関連するすべてのDNS関連設定が表示されます。そこに表示する必要があります::1。小文字の名前を持つ設定はNetworkManager設定から取得する必要があり、大文字の名前を持つ設定はDHCPまたは他の自動設定メカニズム(たとえば、IPv6ルータアドバイザリパケットのオプションの追加のDNSリゾルバ情報)を介して作成する必要があります。

値を持つNetworkManager DNS設定の正確な名前を知ることで、::1その設定が実際にどこから来たのかを判断するのに役立ちます。

Debian では、NetworkManager は 3 か所でローカル設定を取得できます。

  • クラシック Debian では読み取り専用/etc/network/interfaces
  • ファイルから/etc/NetworkManager/system-connections
  • ユーザー固有の設定によるデスクトップ環境固有の保存方法。

自動構成メカニズムによって指定されている場合::1(たとえば、次の行が見つかった場合IP6.DNS[1]: ::1)、次のようにそれをオーバーライドできます。

nmcli c modify <connection name here> ipv6.ignore-auto-dns yes

これにより、この接続でDHCPv6およびルーターアドバイザリベースのIPv6 DNSリゾルバの自動設定が無効になります。その後、次のコマンドを使用して目的のDNSサーバーを構成できます。

nmcli c modify <connection name here> +ipv4.dns 8.8.8.8

そして/または

nmcli c modify <connection name here> +ipv6.dns 2001:4860:4860::8888

または、既存の方法を使用してNetworkManagerをDNS解決設定から完全に遠ざけたい場合は、次の/etc/NetworkManager/conf.d/DontTouchDNSResolution.conf名前のファイルを追加できます。

[main]
dns=none
systemd-resolved=false

/etc/resolv.confその後、手動で設定できます(必ず設定する必要があります)。

答え2

Debian 11 で ProtonVPN クライアントを使用した後、上記の問題が発生しました。問題は、再起動後も/etc/NetworkManager/system-connections/ファイルがpvpn-ipv6leak-protection.nmconnection残っていることです。このファイルを削除してネットワークを再起動すると、問題が解決しました。

クライアントへのVPN接続を開き、インターフェイスからVPNトンネルの接続を明示的に切断せずにクライアントを閉じてから、ホストを再起動して問題を再現できました。

関連情報