最近私が記録した明らかな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 -u
resolv.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の代わりにglibc
DNSリゾルバを使用するように移行したと思います。hosts:
の行の代わりにまたは前に/etc/nsswitch.conf
ある場合、resolve
これは正しいものですdns
。この設定は、検証なしでglibcのホスト名解決APIを使用して実行されたすべてのDNSクエリを直接ルーティングしますsystemd-resolved
。/etc/resolv.conf
(技術的にはlibnss_resolve.so
代わりに使用してくださいlibnss_dns.so
。)
ただし、システムには使用されていないいくつかの従来のアプリケーションや独自のDNSクエリを実装するglibc
DNS診断(nslookup
など)があるかもしれませんが、使用するプライマリDNSサーバーを学ぶために読んでください。したがって、DNSサーバーに似たインターフェイスがデフォルトで提供され(この互換性インターフェイスが無効になっていない限り)、1行で構成されているため、特別な場合でも最終的に使用されます。dig
/etc/resolv.conf
systemd-resolved
127.0.0.53:53
/etc/resolv.conf
nameserver 127.0.0.53
systemd-resolved
resolvectl
主に管理ツールであり、systemd-resolved
その機能は(クラシックlibnss_dns.so
パーサーライブラリ+)resolvconf
の親セットです。このresolvectl
コマンドはと互換性がありますが、resolvconf
互換性は完全ではありません。既存のファイルを変更するか/etc/resolvconf/resolv.conf.d/
、新しいファイルを追加して[/var]/run/resolvconf/interface/
実行する代わりにresolvconf -u
resolvectl dns <interface name> 1.1.1.1 8.8.8.8
resolvectl domain <interface name> domain.name.example
resolvconf
とすべてがインストールされているように見えるので、systemd-resolved
Debian 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 status
DNSサーバーを使用または確認し、systemd-resolve --status
テスト名解決を使用しますsystemd-resolve NAME
。