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 c
(c
「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
その後、手動で設定できます(必ず設定する必要があります)。