Ubuntu 17.04: DNS mit dnsmasq statt systemd

Ab Ubuntu 17.04 übernimmt systemd-resolved die Auflösung von DNS-Anfragen. Manchmal möchte man ein bißchen mehr vom lokalen DNS-Server. Vielleicht möchte man zum Beispiel alle auf .dev endenden Domains auf lokale Verzeichnisse umleiten (siehe dazu hier). Hier kommt man mit systemd-resolved nicht mehr weiter.

In Vorgänger-Versionen von Ubuntu konnte man noch dnsmasq nutzen, meist im Zusammenspiel mit dem NetworkManager. Dies wird nun verhindert, bzw. die Konfiguration ist so komplex, dass ich die systemd-Komponente lieber deaktiviere. Dazu muss man sowohl systemd-resolved, wie auch dnsmasq stoppen und deaktivieren. Die dnsmasq-Funktionalität wird danach vom NetworkManager angeboten. Damit das klappt muss der auch wieder die /etc/resolv.conf stellen. Hier ein bißchen Copy-Pasta:

sudo systemctl stop systemd-resolved.service
sudo systemctl disable systemd-resolved.service
sudo systemctl stop dnsmasq.service
sudo systemctl disable dnsmasq.service
sudo mv /etc/resolv.conf{,.bak}
sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf
echo -e "[main]\ndns=dnsmasq\n" | sudo tee /etc/NetworkManager/conf.d/enable-dnsmasq.conf
sudo systemctl restart NetworkManager.service

Jetzt sollte man kurz prüfen, ob Domains weiterhin aufgelöst werden. Wenn ja, ist man wieder mit dem guten alten dnsmasq unterwegs. Nur der Vollständigkeit halber hier die Befehle, um das ganze wieder rückgängig zu machen.

sudo rm /etc/NetworkManager/conf.d/enable-dnsmasq.conf
sudo rm /etc/resolv.conf
sudo mv /etc/resolv.conf{.bak,}
sudo systemctl enable systemd-resolved.service
sudo systemctl start systemd-resolved.service
sudo systemctl enable dnsmasq.service
sudo systemctl start dnsmasq.service
sudo systemctl restart NetworkManager.service

Jetzt kann man sich für lokale Entwicklung von PHP-Projekten (Symfony, Drupal, WordPress, Laravel, Magento, u.v.m) sehr einfach Laravel Valet installieren. Wie dies geht habe ich im folgenden Artikel beschrieben.

Ein Gedanke zu „Ubuntu 17.04: DNS mit dnsmasq statt systemd

  1. Pingback: Lokale PHP-Entwicklungsumgebung mit Laravel Valet | YuMDaP.net Blog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.