For years it’s been simple to set up DNS on a Linux machine. Just add a couple of entries to /etc/resolv.conf
and you’re done.
# Use Google's public DNS servers.
nameserver 8.8.4.4
nameserver 8.8.8.8
But things change and now it’s not that simple. If you now edit /etc/resolv.conf
on Ubuntu you’ll find that the edits are ephemeral. If you restart (or even hibernate) your machine then they’ll be overwritten by default content.
nameserver 127.0.0.53
search Home
Option 1: Embracing resolvconf
The first approach is to go all in with resolvconf
.
-
Install the
resolvconf
package.sudo apt install resolvconf
-
Enable updates.
# Enable updates. sudo resolvconf --enable-updates # Check that updates are enabled. resolvconf --updates-are-enabled echo $?
The result should be a
0
. -
Edit
/etc/resolvconf/resolv.conf.d/head
and add the following:nameserver 8.8.4.4 nameserver 8.8.8.8
I’m using the Google name servers here, but you can replace them with your preferred servers.
-
Restart the
resolvconf
service.sudo service resolvconf restart
Fix should be permanent.
Option 2: Removing resolvconf
If the above approach doesn’t work for you then an alternative is to remove the resolvconf
package and manage /etc/resolv.conf
manually (the old way).
-
Remove the
resolvconf
package.sudo apt purge resolvconf
-
Delete
/etc/resolv.conf
(it’s probably a symlink to another file). -
Edit
/etc/resolv.conf
and add the following:nameserver 8.8.4.4 nameserver 8.8.8.8