/etc/resolv.conf.dで/etc/resolv.confの変更を実装する「正しい方法」とは何ですか?

/etc/resolv.conf.dで/etc/resolv.confの変更を実装する「正しい方法」とは何ですか?

過去にはresolv.conf静的なファイルを使って直接編集しました。

後で、DHCPクライアントはいくつかの静的エントリとDHCPリースから得られたエントリを使用してそれを書き換えます。

最近、私のディストリビューション(Linux Mint 18.1)など、いくつかのディストリビューションにはいくつかのスクリプトサブ/etc/resolv.conf.dディレクトリを持つメカニズムがあります。

もしそうなら、正しいアプローチは何ですか...

  • DHCPリースで取得したDNSサーバーを使用するかどうかを表示しますか?
  • 常にresolv.confに固定項目を追加しますか、それともネームサーバーがDHCPリースを取得できない場合は代替ですか?
  • ファイルの相対順序を決定しますか?

必要に応じていくつかのスクリプトを直接書くのは大丈夫です。既存のメカニズムを「破壊」したり、重複したタスクを実行したくありません。

答え1

答えは簡単です。resolv.conf.dフォルダは /etc/resolvconf/ にあり、head/base/original と tail ファイルが含まれています。それぞれ変更すると更新されますresolv.confファイルは/ etc /にあります。

/etc/の先頭にいくつかの静的DNSアドレスを追加するとしますresolv.conf(再起動するたびに自動的にデフォルト設定にリセットされるため)、以下を編集する必要があります。headファイルを/etc/resolvconf/resolv.conf.d/ 作成し、たとえば、次のように入力します。

nameserver 1.1.1.1
nameserver 1.0.0.1

次に、次のコマンドを使用して resolvconf サービスを再起動します。

sudo service resolvconf restart

今猫resolv.conf/etc/で新しい変更を見ることができます。

ファイルの一番下に何かを入れるには、同じ内容が適用されます。tail変えるhead/etc/resolvconf/resolv.conf.d/から

PS:これは100%テストされ、UbuntuとDebianで動作します。

編集:あなたの質問に関する最後の2つの主要なエントリに答え、DHCPが提供するDNSアドレスを使用しない方法を議論する最初の主要なエントリに達しました。これは実際にインストールしたDNSソフトウェア/パッケージによって異なりますので、以下を確認することをお勧めします。郵便はがき、次の内容もお読みください(ある場合)dnsmasq

答え2

ここ数年、solv.conf と同様のメカニズムがありました。このファイルを処理dhclientするコマンドラインがありますが、resolvconf近年、LinuxではNetworkManagerを構成する新しいインターフェースが導入されました。ナミクリー。これは、永続的なネットワーク構成(ランタイムではない)を管理する豊富なコマンドです。次のようなものを使用できます。

$ nmcli connection modify eth0 ipv4.dns 8.8.8.8

resolv.confこのコマンドはファイルを上書きします。 RHCA では resolv.conf を手動で編集し、そのコマンドを使用しないことをお勧めします。前述のresolvconfディレクトリに関しては、一部のサービスには独自のDNS構成がある可能性があるため、OpenVpnなどの独自の構成を使用していると言うことができます。/etc/nsswitch解析に関する情報については、マニュアルを確認することもできます。

関連情報