/etc/resolv.conf
に検索行を追加しようとしています
/etc/dhcp/dhclient.conf
のappend
コマンドとして、および/etc/netplan/50-cloud-init.yaml
のnameservers
ブロックとして、直接追加しました。
約1時間後、dhcpおよびnetplanファイルは変更されていませんが、resolv.confは検索を行わない状態に戻りました。
「/etc/network/interfaces
」を変更していないのは、「このシステムでifupdownがnetplan(5)に置き換えられた」ためです。
これら2つのこと以外に、/ etc/resolv.confを上書きする可能性があることについて何か考えはありますか?
これはEC2のubuntu 18.04です。
resolv.conf
ファイルを制御するための複雑な戦いがあります。これは古い戦いです。
resolv.conf
を書き込もうとする候補は、resolvconf、dhcp、interfaces、ネットワークマネージャー、最近systemd-resolved。他のプログラムもdnsmasqのようにresolv.conf
を使用する場合があります。
したがって、単純な解決策がすべての場合に機能するわけではありません。
resolvconfプログラム(主な目的はresolv.conf
ファイルの所有権を取得すること)がインストールされている場合は、アンインストールします。
システムがDHCPを使用して動作しているIPを取得している場合(ほとんどの場合はそうです)、約1時間ごと(システム構成によって異なります)にIPが更新され、resolv.conf
が書き換えられます。これが問題の原因であるかどうかを検出します。
ファイル/etc/interfaces
を使用して、resolv.conf
構成を変更できます。あるかどうかを調べます(そして消去します)。
Network Manager
は、resolv.conf
の動作を変更するように構成できます。その場合は検出(および消去)します。
Systemd-resolved
は、sym-linkを介してresolv.conf
を制御するように設定できます。リンクが存在する場合は削除します。
一部の人はresolv.conf
を変更できないようにすることをお勧めします(これは解決策よりも問題だと思います)存在する場合は削除してください。
上記のすべてを削除した後:DHCP
が新しいDHCPリースを取得したときにファイルを更新する必要があることを理解して、誰がresolv.conf
ファイルの制御を維持するかを決定します。
必要に応じて、さらに助けを求めてください。
/etc/resolv.conf
は、resolvconfプロセスによって生成される動的構成ファイルです。
$ head /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
nameserver 127.0.1.1
このファイルは、/etc/resolvconf/resolv.conf.d/
の下にあるファイルから生成されます。 /etc/resolv.conf
の内容に独自の変更を書き込むには、通常resolv.conf
ファイルではなく/etc/resolvconf/resolv.conf.d/base
ファイルに追加する行を追加するだけです。