Aqui estão as etapas para o ubuntu 18.04. É um pouco longo, já systemd-resolvedque não toca muito bem NetworkManagerquando configurado com dnsmasq.
No entanto, eu ainda recomendo começar dnsmasqa partir NetworkManager, porque as mudanças de conectividade de rede (Wi-Fi, com fios, ...) serão tratadas de forma transparente.
Habilitar dnsmasq no NetworkManager
Edite o arquivo /etc/NetworkManager/NetworkManager.confe adicione a linha dns=dnsmasqà [main]seção, ela ficará assim:
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=false
[device]
wifi.scan-rand-mac-address=no
Deixe o NetworkManager gerenciar /etc/resolv.conf
sudo rm /etc/resolv.conf ; sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf
Configurar example.com
echo 'address=/.example.com/127.0.0.1' | sudo tee /etc/NetworkManager/dnsmasq.d/example.com-wildcard.conf
Recarregar NetworkManagere testar
O NetworkManager deve ser recarregado para que as alterações entrem em vigor.
sudo systemctl reload NetworkManager
Em seguida, podemos verificar se podemos acessar algum site comum:
dig askubuntu.com +short
151.101.129.69
151.101.65.69
151.101.1.69
151.101.193.69
E, finalmente, verifique se os example.comsubdomínios e são resolvidos como 127.0.0.1:
dig example.com askubuntu.example.com a.b.c.d.example.com +short
127.0.0.1
127.0.0.1
127.0.0.1