resolv.confの設定方法

resolv.confの設定方法

最近私が記録した明らかなDNS解決の問題が発生しました。こここれにより、/etc/resolv.confをさらに調査することになりました。

私のLinux Mintシステムでは、これは/run/systemd/resolve/stub-resolv.confを指すシンボリックリンクです。

nameserver 127.0.0.53
options edns0 trust-ad

ファイルには実際にはより多くのコメント付きの行が含まれており、管理者は内容を変更しないように勧められました(元の問題を解決するために最終的に変更する必要がありました)。

少しの研究の後、私は最新のLinuxシステムが新しいresolveconfパッケージを使用していることを理解したと思います。とても混乱しているsudo apt changelog resolvconf最新バージョンの1.82不安定な

私の理解は、127.0.0.53がDNS要求を必要な検索を実行するverifyconfにリダイレクトすることです。 誰でもこれを確認できますか?

この投稿代替DNSサーバーを使用すると主張するファイルを生成し、/etc/ sudo resolvconf -uresolv.confを更新します。さて、このコマンドはバージョン1.82には存在しません。man resolvconf最も近いものが表示されますが、resolvectlページにはそのような-uオプションは表示されず、提案されたデフォルトファイルも言及されません。 状況はまた変わりましたか?それとも、その記事のコメントは単に間違っていますか?

私の一時的なショートカットはシンボリックリンクを削除し、/etc/resolv.conf同じ名前と私が選択したDNSサーバーを持つファイルを作成することでしたが、これはsolvconfパッケージが完全に役に立たなくなり、他の悪影響を及ぼす可能性があると思います。だから私はやるべきことが終わるとすぐにハッキングを再開します。その間、私はより明確な説明を探しており、誰かがここについて明らかにできることを願っています。

答え1

resolvconf/etc/resolv.conf異なるソースからの干渉なしに各ソースから設定を復元できるように、複数のソース(たとえば、DHCP、システム管理者の静的構成、VPNクライアント、ローカルDNSサーバーのインストールなど)のファイルを更新できるように設計されたツールでした。 。 。さらに、3つ以上の候補DNSサーバーがある場合は、最初の3つの候補のみが選択されるように、各DNS構成ソースの優先順位を設定できます。

(DNSタイムアウトをデフォルト値で調整しない限り、クエリタイムアウトの前に3回だけクエリを試すことができるため、3つ以上のDNSサーバーを構成することは一般的に/etc/resolv.conf役に立ちません。)

systemd-resolvedしかし、UbuntuとMintは、classic .netの代わりにglibcDNSリゾルバを使用するように移行したと思います。hosts:の行の代わりにまたは前に/etc/nsswitch.confある場合、resolveこれは正しいものですdns。この設定は、検証なしでglibcのホスト名解決APIを使用して実行されたすべてのDNSクエリを直接ルーティングしますsystemd-resolved/etc/resolv.conf(技術的にはlibnss_resolve.so代わりに使用してくださいlibnss_dns.so。)

ただし、システムには使用されていないいくつかの従来のアプリケーションや独自のDNSクエリを実装するglibcDNS診断(nslookupなど)があるかもしれませんが、使用するプライマリDNSサーバーを学ぶために読んでください。したがって、DNSサーバーに似たインターフェイスがデフォルトで提供され(この互換性インターフェイスが無効になっていない限り)、1行で構成されているため、特別な場合でも最終的に使用されます。dig/etc/resolv.confsystemd-resolved127.0.0.53:53/etc/resolv.confnameserver 127.0.0.53systemd-resolved

resolvectl主に管理ツールであり、systemd-resolvedその機能は(クラシックlibnss_dns.soパーサーライブラリ+)resolvconfの親セットです。このresolvectlコマンドはと互換性がありますが、resolvconf互換性は完全ではありません。既存のファイルを変更するか/etc/resolvconf/resolv.conf.d/、新しいファイルを追加して[/var]/run/resolvconf/interface/実行する代わりにresolvconf -uresolvectl dns <interface name> 1.1.1.1 8.8.8.8resolvectl domain <interface name> domain.name.example

resolvconfとすべてがインストールされているように見えるので、systemd-resolvedDebian 11と同じ状況を体験できます。互換性情報を含むman resolvconfマニュアルページが実際に表示されます。resolvectl実際のマニュアルページを表示するには、resolvconfを入力する必要がありますman 8 resolvconf

出力の「不安定」は、sudo apt changelog resolvconfバージョンが不安定であるという意味ではありません。:その意味は変更するときこのバージョンはDebianにありますunstable。セキュリティバグ修正の場合、<releasename>-security変更unstableログは個々のパッケージ履歴の一部です。パッケージがDebianの不安定からベータへ、または不安定/ベータからUbuntu、Mint、またはその他のDebianから派生した場合。ディストリビューションは再構築されません。

答え2

以下を試すことができますsystemd-resolved

  • 不足しているネームサーバーを次に追加してください。/etc/systemd/resolved.conf
  • 構文解析の削除
  • シンボリックリンクを/run/systemd/resolve/stub-resolv.confそのままにしてください。

resolvectl statusDNSサーバーを使用または確認し、systemd-resolve --statusテスト名解決を使用しますsystemd-resolve NAME

関連情報