User Tools

Site Tools


ubuntu:networking:dns:etc_resolv.conf

Ubuntu - Networking - DNS - /etc/resolv.conf

DANGER: Do not manually make changes to /etc/resolv.conf.

  • Any changes will be overridden, since Ubuntu 12.04.
  • /etc/resolv.conf is nowadays maintained by systemd.
  • If DNS resolver changes are needed then do this through systemd.

List /etc/resolv.conf

ls -al /etc/resolv.conf

returns:

lrwxrwxrwx 1 root root 32 Jan 10 18:50 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf

NOTE: This shows that /etc/resolv.conf is a symlink to /run/systemd/resolve/resolv.conf.

It may instead be a symlink to /run/systemd/resolve/stub-resolv.conf. Also ok.

If not then to fix try:

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

Display /etc/resolv.conf

cat /etc/resolv.conf

returns:

# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
 
nameserver 192.168.1.1
search localdomain

NOTE: If the nameserver is 127.0.0.53 then this is fine too - It is set as default by Ubuntu.

Usually it would only show as 192.168.1.1 or similar if DNS changes had been made in networking settings; such as in /etc/netplan.


To Make Resolver Changes

Edit the /etc/resolvconf/resolv.conf.d/head file.

NOTE: Ignore the scary warning.

/etc/resolv.conf is auto-generated; so the warning is there so it will get put in /etc/resolv.conf when /etc/resolv.conf is generated.

To the end of the file, add:

/etc/resolvconf/resolv.conf.d/head
nameserver <ip_of_nameserver>

NOTE: Resolvconf has a /etc/resolvconf/resolv.conf.d/ directory that can contain “base”, “head”, “original” and “tail” files. All in resolv.conf format.

  • base: Used when no other data can be found
  • head: Used for the header of resolv.conf, can be used to ensure a DNS server is always the first one in the list
  • original: Just a backup of your resolv.conf at the time of resolvconf installation
  • tail: Any entry in tail is appended at the end of the resulting resolv.conf. In some cases, upgrading from a previous Ubuntu release, will make tail a symlink to original (when we think you manually modified resolv.conf in the past)

Regenerate /etc/resolv.conf so the changes are applied right now:

sudo resolvconf -u

Common DNS configuration changes

To make DNS configuration changes for some common use cases:

  • For a static configuration using ifup, use dns-nameservers and dns-search entries in /etc/network/interfaces.
  • For a static configuration using NetworkManager, select the Automatic (DHCP) addresses only Method and enter addresses and domain names in the Additional DNS servers and Additional search domains fields in the Connection Editor.
  • If using netplan, set the DNS within /etc/netplan/01-network-manager-all.yaml.
  • To override resolvconf's default configuration, use base, head and tail in /etc/resolvconf/resolv.conf.d/. Only enter addresses and domain names in these files as a temporary measure, since they really belong elsewhere, as described above.

WARNING: Disabling resolvconf is not recommended, but you can replace the symlink /etc/resolv.conf with a regular file.


Test

setup nslookup or dig command:

dig www.google.com
nslookup www.google.com
ubuntu/networking/dns/etc_resolv.conf.txt · Last modified: 2021/01/13 11:05 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki