How do I edit resolv.conf?

This usually requires editing /etc/resolvconf/resolv.conf.d/base(depending on your distro this placement may vary slightly) or other files in this directory. They are added by the resolvconf process itself. The format of those files is the same as a standard resolv.conf.

After you have made those edits then you can force resolvconf to update using the command resolvconf -u.


Your system uses resolvconf, so the resolv.conf file is replaced by a symbolic link to /etc/resolvconf/run/resolv.conf and resolvconf dynamically generated the file. That's why DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

To properly update the information in the file, you can put the dns-* parameters in /etc/network/interfaces e.g.

auto eth0
iface eth0 inet static
     address 33.33.13.10
     netmask 255.255.255.0
     gateway 33.33.13.1
     dns-nameservers 33.33.13.1 12.34.56.78
     dns-search example.com

Then, you can update the dns-* info by

$ resolvconf -d eth0
$ resolvconf -a eth0

Or you can do ifdown & ifup and resolvconf -d, -a will happen behind the scenes.

Note: sometimes I find resolvconf -u doesn't work. I don't know why

You should read man resolvconf. There's more information about all this.

TIP: if you want to update /etc/resolv.conf manually, you can remove the symlink and create /etc/resolv.conf by hand. This way, the file won't get updated from resolvconf ever.

    $ rm /etc/resolv.conf         ;# to remove the symlink
    $ vi /etc/resolv.conf         ;# to create a regular file

Tags:

Linux

Dns