How to stop dhclient from updating resolvconf on Debian?

6,973

Solution 1

If you don't need resolvconf to manage your /etc/resolv.conf file, the simplest solution is to uninstall resolvconf entirely.

Solution 2

How to stop dhclient from updating resolvconf on Debian?

I don't want to remove resolvconf

You need to add domain-name-servers 8.8.8.8, 8.8.4.4 to

/etc/resolvconf/resolv.conf.d/base

And

/etc/network/interfaces

Regenerate resolv.conf then restart networking:

resolvconf -u
/etc/init.d/networking restart
Share:
6,973

Related videos on Youtube

Red
Author by

Red

Updated on September 18, 2022

Comments

  • Red
    Red over 1 year

    I want to use certain DNS servers on my Debian, regardless of whatever I get through DHCP. I'm trying to configure dhclient to ignore those, but I can't seem to get it to work.

    Per advice from this article I added supersede domain-name-servers 8.8.8.8, 8.8.4.4; stanza to my /etc/dhcp/dhclient.conf file. I also tried these answers from superuser.com and removed domain-name-servers and domain-search values from request directive. Both of those, applied separately as well as together, seem to have no effect. After running sudo dhclient -r and then sudo dhclient, I still find following entries in /etc/resolvconf/run/interfaces/enp2s0.dhclient:

    domain lan
    nameserver 192.168.1.1
    

    which prompt resolvconf to put nameserver 192.168.1.1 in my /etc/resolv.conf file.

    I double-checked if I don't miss any semicolons or similar syntax elements. How can I get my configuration to work? I don't want to remove resolvconf, since it manages changes in my nameservers when I use corporate VPN and it does it well. It looks like dhclient is the offending party here.

    Here's my current /etc/dhcp/dhclient.conf with default comments removed for the sake of clarity:

    option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
    
    send host-name = gethostname();
    request subnet-mask, broadcast-address, time-offset, routers,
            domain-name, host-name,
            dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
            netbios-name-servers, netbios-scope, interface-mtu,
            rfc3442-classless-static-routes, ntp-servers;
    
    #supersede domain-name-servers 8.8.8.8, 8.8.4.4;
    

    Update: per request in comment, here's output of ps ax | grep dhcp:

    23528 pts/2    S+     0:00 grep dhcp
    
    • Red
      Red about 8 years
      @RuiFRibeiro edited in.
    • Rui F Ribeiro
      Rui F Ribeiro about 8 years
      my fault...please change it to ps ax | grep dhc. Also do include cat /etc/network/interfaces, or at least the configuration of the relevant interface for this discussion.
    • Rui F Ribeiro
      Rui F Ribeiro about 8 years
      Have you commented out too the domain-name-servers from the require directive after the request line you show us?
  • Alessio
    Alessio about 8 years
    +1. apt-get purge --kill-kill-kill --burn-it-with-fire resolvconf.
  • Red
    Red about 8 years
    I'd like to avoid that, since resolvconf automatizes nameservers change when connecting to VPN and disconnecting from it. I should probably add that information to the question.
  • user640916
    user640916 over 4 years
    This is a brute force "solution" and makes it even harder to understand how the different component work together eventually. Here is a nice list of what accesses resolv.conf unix.stackexchange.com/a/527581/88177