Comment désactiver systemd-Ubuntu?

88

Comment puis-je désactiver la résolution de systemd dans Ubuntu 17.04?

La désactivation avec systemctl disablen'a pas fonctionné, le service semble être redémarré (par Networkmanager?)

Bastian Voigt
la source
10
systemd-resolution n'est pas simplement énorme, il casse également le fonctionnement de la résolution DNS en ne tentant pas toujours de résoudre dans l'ordre indiqué par le serveur DNS dans la configuration client. Lorsqu'un serveur ne résout pas un domaine, le prochain de la liste est placé en haut (Poettering appelle cela 'mémoire'). Voir ce fil pour les détails.
LifeBoy
7
il contourne également les règles iptables, ce qui est une idée terrible.
Spongman

Réponses:

152

Cette méthode fonctionne sur les versions Ubuntu 17.04 (Zesty), 17.10 (Artful), 18.04 (Bionic), 18.10 (Cosmic) et 19.04 (Disco):

Désactivez et arrêtez le service résolu par systemd:

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

Ensuite, mettez la ligne suivante dans la [main]section de votre /etc/NetworkManager/NetworkManager.conf:

dns=default

Supprimer le lien symbolique /etc/resolv.conf

rm /etc/resolv.conf

Redémarrez NetworkManager

sudo systemctl restart NetworkManager

Sachez également que la désactivation de systemd-resolvd peut empêcher la résolution de noms dans le VPN pour certains utilisateurs. Voir ce bug sur le tableau de bord (Merci, Vincent).

Bastian Voigt
la source
4
cela ne semble pas fonctionner sur Ubuntu 17.04. Alsi, le fichier de configuration est /etc/NetworkManager/NetworkManager.conf. La résolution du nom est interrompue lorsque je fais ce qui précède. résolus par systemd, ça craint beaucoup, maintenant, la résolution DNS VPN ne fonctionne pas du tout correctement pour moi. La progression des bogues peut être trouvée ici: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
Vincent Gerris Le
5
Je pense que vous devriez ajouter à la réponse ci-dessus que "apt-get install dnsmasq" devrait être effectué une fois que la résolution de systemd a été désactivée.
LifeBoy
5
@ LifeBoy Je n'utilise pas Dnsmasq. Je n'utilise aucun serveur de noms local, je ne vois pas la valeur de cela.
Bastian Voigt
9
Pour Ubuntu 18.04, il suffit d’exécuter les commandes sudo systemctl disable systemd-resol.service et du service sudo stop systemd-resolution. Cela a fonctionné pour moi.
Daniel Eagle
12
Je vous remercie. SystemD détruit Linux, en passant de quelque chose de fiable et compréhensible à quelque chose qui fonctionne par magie.
Forbesmyester
18

Je suis récemment passé à (k) Ubuntu 17.04 et je suis également tombé sur le changement de systemd.

Ma configuration est assez typique, je pense, dans la mesure où j'ai un fournisseur DNS dans mon concentrateur haut débit et c'est ma principale source d'informations pour tous les périphériques de mon réseau (parmi lesquels j'en ai quelques-uns).

Il y a une certaine beauté dans systemd, tout n'est pas mauvais, mais ce qui est vraiment mauvais, c'est la documentation, le manque de communication de la part de l'équipe Ubuntu et la mentalité gung-ho "Changeons-le bien malgré tout pour tout le monde".

La solution pour moi après avoir arraché quelques cheveux était d’éditer /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

Après ne pas avoir compris pourquoi cela ne fonctionnerait pas, j’ai compris qu’il était également nécessaire de passer de /etc/resolv.conf à celui fourni par systemd. Ce n'est pas le cas dans une installation prête à l'emploi (pour des raisons que je ne connais pas).

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

Le serveur DNS local n'est alors pas utilisé et toutes les demandes DNS sont envoyées à mon hub.

Je pense que c'est une bien meilleure solution que de découper et d'ajouter une autre solution puisque systemd-resolv est désormais la solution par défaut.

Un problème connexe est que le fichier /etc/nsswitch.conf est neutralisé.

Il devrait lire:

hôtes: fichiers mdns4_minimal dns [NOTFOUND = return] résoudre [! UNAVAIL = return] dns

Cette configuration est source de confusion car [NOTFOUND = return] signifie que le traitement se termine là. Les entrées qui suivront ne seront jamais utilisées.

utilisateur2427436
la source
1
Et puis je dois changer l'adresse du routeur dans la configuration chaque fois que je me connecte à un nouveau WIFI? U sérieux? -1
Bastian Voigt le
Je n'avais pas réalisé que tu errais avec ça. Si tel est le cas, laissez les éléments de configuration commentés. Vous devriez alors obtenir un fichier /etc/resolv.conf qui dit: serveur de noms 8.8.8.8 serveur de noms 8.8.4.4
user2427436
1
Je ne pense pas qu'il soit nécessaire de modifier resol.conf si vous configurez correctement netplan. c'est-à-dire que netplan écrit les valeurs correctes dans le fichier lié symboliquement ... PS SYSTEMD SUCKS!
g33kz0r
3

Si vous rencontrez des problèmes de fuites avec votre VPN et que vous ne savez pas comment configurer systemd (comme moi), vous pouvez le supprimer de la manière décrite dans la première réponse, mais n'ajoutez pas la dns=defaultligne car elle activera le serveur de noms 127.0. .0.1. Pour définir le routeur en tant que DNS, créez le fichier "tail" dans votre /etc/resolvconf/resolv.conf.d/ dossier en ajoutant la lignenameserser 192.168.1.1

faire ln -sf /var/run/resolved/resolv.conf /etc/resolv.confsi vous aviez foiré avec ce fichier.

Yvain
la source
1
Vraiment? Pour moi, cela fonctionne exactement comme décrit dans ma réponse. Ne pas utiliser le serveur de noms 127.0.0.1. Je pense aussi qu'il n'est pas très pratique de coder en dur l'adresse IP de votre serveur de noms dans un fichier de configuration. Au moins, je change de réseau assez souvent et chaque wifi a un serveur de noms différent
Bastian Voigt
oui 'default' active 127.0.0.1 en tant que dns
Yvain