Ubuntu 17.04でsystemd-resolvedを無効にするにはどうすればよいですか?
systemctl disable
で無効化しても機能しなかったため、サービスは(Networkmanagerによって)再起動されたようです。
このメソッドは、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に感謝)を参照してください。
私は最近(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]は処理がそこで終了することを意味するため、これは紛らわしい構成です。それ以降のエントリは使用されません。
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
を実行します。