What overwrites /etc/resolv.conf roughly every hour?
Solution 1
There is a complex competition to get control of the resolv.conf
file, it is a very old competition.
Contenders that try to write a resolv.conf
are resolvconf, dhcp, interfaces, network manager and recently systemd-resolved. Other programs also may use resolv.conf
, like dnsmasq.
Thus, a simple solution doesn't work in all cases.
-
If you have the resolvconf program installed (whose main goal is to take ownership of the
resolv.conf
file) then: un-install it. -
If your system uses DHCP to get a working IP (most probably you do), every hour or so (depending on system configuration) the IP gets renewed, that re-writes
resolv.conf
. Detect if this is the source of the problem. -
The file
/etc/interfaces
may be used to change theresolv.conf
configuration. Find out if it is (and erase it). -
Network Manager
could be configured to change whatresolv.conf
does. Detect (and erase) if it is doing so. -
Systemd-resolved
may be configured to take control ofresolv.conf
via a sym-link. Remove the link if it exists. -
Some recommend to make
resolv.conf
not modifiable (I believe that is more a problem than a solution). Remove it if it exists.
After you have removed all the above: decide who should keep control of the resolv.conf
file understanding that DHCP
could update the file when a new DHCP lease is obtained. If the ISP (or upstream dhcp server owner) dns server is the one that should be used. DHCP leases could be configured to change the IP but not update the resolv.conf
file, or an alternate dnsmasq/resolv.conf
could be used if a local (127.0.0.1) DNS server (well, mostly like a catching server) is setup with dnsmasq
. Of course, more complex configurations could be built with bind9
, Unbound
, NSD
and many others.
Ask for more help if needed.
Related:
- How to stop dhclient from updating resolvconf on Debian?
- How do I stop Debian from overwriting /etc/resolv.conf and overwriting my VPN's nameservers?
- resolv.conf overwritten every time
- What overwrites /etc/resolv.conf on every boot?
- What causing resolv.conf overwritten ?
- CentOS 7 NetworkManager Keeps Overwriting /etc/resolv.conf
- How do I include lines in resolv.conf that won't get lost on reboot?
- Arch linux OpenResolv.
Solution 2
/etc/resolv.conf
is a dynamic configuration file generated by the resolvconf process:
$ head /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
This file is generated from the files located under /etc/resolvconf/resolv.conf.d/
. To write your own changes to the contents of the /etc/resolv.conf
simply add the lines that you would usually add to the resolv.conf
file instead to the /etc/resolvconf/resolv.conf.d/base
file.
Related videos on Youtube
dspeyer
Updated on September 18, 2022Comments
-
dspeyer over 1 year
I'm trying to add a search line to
/etc/resolv.conf
I've added it directly, as an
append
command in/etc/dhcp/dhclient.conf
and as anameservers
block in/etc/netplan/50-cloud-init.yaml
.After roughly an hour, the dhcp and netplan files are intact, but resolv.conf has reverted to not having my search.
I haven't changed
/etc/network/interfaces
because it says "ifupdown has been replaced by netplan(5) on this system."Any thoughts on what might be overwriting /etc/resolv.conf besides those two things?
This is ubuntu 18.04 on EC2.
-
Rinzwind almost 5 yearsdoes yours not have a "This file is managed by man:systemd-resolved(8). Do not edit." at the top? :-P
-
-
Akhil over 4 yearsVery useful... @Thanks
-
Admin about 2 yearsI'm undeleting this as it provides lots of places to look for "what might be overwriting /etc/resolv.conf?"