web-dev-qa-db-ja.com

Ubuntuでsystemd-resolvedを無効にする方法は?

Ubuntu 17.04でsystemd-resolvedを無効にするにはどうすればよいですか?

systemctl disableで無効化しても機能しなかったため、サービスは(Networkmanagerによって)再起動されたようです。

83
Bastian Voigt

このメソッドは、Ubuntuリリースで動作します17.04(Zasty)17.10(Artful)18.04(バイオニック)18.10(コスミック)および19.04(ディスコ)

Systemdで解決されたサービスを無効にして停止します。

Sudo systemctl disable systemd-resolved.service
Sudo systemctl stop systemd-resolved

次に、[main]/etc/NetworkManager/NetworkManager.confセクションに次の行を追加します。

dns=default

シンボリックリンクを削除/etc/resolv.conf

rm /etc/resolv.conf

NetworkManagerを再起動します

Sudo systemctl restart NetworkManager

また、systemd-resolvdを無効にすると、一部のユーザーのVPNでの名前解決が壊れることがあることに注意してください。 launchpadのこのバグ (Vincentに感謝)を参照してください。

142
Bastian Voigt

私は最近(k)Ubuntu 17.04にアップグレードしましたが、systemdへの変更につまずきました。

私のセットアップは、ブロードバンドHUBにDNSプロバイダーがあり、これがネットワーク上のすべてのデバイスの主要な情報源であるという点で、かなり典型的であると思います(いくつかあります)。

Systemdにはいくつかの美しさがありますが、それはすべて悪いわけではありませんが、ドキュメント、Ubuntuチームからのコミュニケーションの欠如、そして「誰にとっても壊れているにもかかわらずそれを変えましょう」という考え方は本当に悪いことです。

いくつかの髪を引き裂いた後の私のための解決策は、/ etc/systemd/resolved.confを編集することでした:

[Resolve]
DNS=192.168.1.254   # <-- change to your router address
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Domains=lan         # <-- change to your localdomain name (maybe .local)
#LLMNR=yes  <-- I dabbled with this for a while but it doesn't matter
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp

なぜこれが機能しないのか理解できなかったので、/ etc/resolv.confをsystemdが提供するものに切り替えることも必要であることがわかりました。すぐに使えるインストールの場合はそうではありません(理由は不明です)。

Sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

ローカルDNSサーバーは使用されず、すべてのDNS要求は私のHUBに送信されます。

Systemd-resolvがデフォルトで使用されるようになったため、他のソリューションを切り取って配置するよりもはるかに優れたソリューションだと思います。

関連する問題は、/ etc/nsswitch.confが削除されていることです。

次のようになります。

ホスト:ファイルmdns4_minimal dns [NOTFOUND = return] resolve [!UNAVAIL = return] dns

[NOTFOUND = return]は処理がそこで終了することを意味するため、これは紛らわしい構成です。それ以降のエントリは使用されません。

16
user2427436

VPNでリークの問題が発生し、systemd(私のような)のセットアップ方法がわからない場合は、最初の回答で説明した方法で削除できますが、dns=default行を追加しないでください。ネームサーバー127.0.0.1をアクティブにします。ルーターをdnsとして設定するには、/etc/resolvconf/resolv.conf.d/フォルダーにnameserser 192.168.1.1行を追加して "tail"ファイルを作成します

このファイルを台無しにした場合は、ln -sf /var/run/resolved/resolv.conf /etc/resolv.confを実行します。

2
Yvain