以下是ubuntu 18.04的步骤。这有点长,因为systemd-resolved
使用NetworkManager
进行配置时效果不佳dnsmasq
。
然而,我还是建议你从dnsmasq
从NetworkManager
,因为网络连接的变化(WIFI,有线,...)将被透明地处理。
在NetworkManager中启用dnsmasq
编辑文件/etc/NetworkManager/NetworkManager.conf
,然后将行添加dns=dnsmasq
到该[main]
部分,它将如下所示:
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=false
[device]
wifi.scan-rand-mac-address=no
让NetworkManager管理 /etc/resolv.conf
sudo rm /etc/resolv.conf ; sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf
配置 example.com
echo 'address=/.example.com/127.0.0.1' | sudo tee /etc/NetworkManager/dnsmasq.d/example.com-wildcard.conf
重新加载NetworkManager
和测试
应该重新加载NetworkManager才能使更改生效。
sudo systemctl reload NetworkManager
然后,我们可以验证是否可以到达一些常规站点:
dig askubuntu.com +short
151.101.129.69
151.101.65.69
151.101.1.69
151.101.193.69
最后,验证example.com
和的子域解析为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