Using nmcli to set nameservers

Using a customer nameserver often requires disabling the DHCP based resolv.conf modifications. Here is what I got to work.

I needed to modify the connection associated with the Ethernet device. In my case, this was called “System eth0”. The two values I needed to change were: ipv4.ignore-auto-dns (from no to yes) and the ipv4.dns value, setting the desired DNS servers.

Here were the commands.

nmcli conn modify "System eth0" ipv4.ignore-auto-dns yes
nmcli conn modify "System eth0" ipv4.dns  "192.168.24.7 8.8.8.8"
systemctl restart NetworkManager

Below that are the commands I used to check the pre-and-post states.

[root@idm ~] nmcli conn show "System eth0" | grep dns:
connection.mdns:                        -1 (default)
ipv4.dns:                               128.31.27.57,8.8.8.8
ipv4.ignore-auto-dns:                   no
ipv6.dns:                               --
ipv6.ignore-auto-dns:                   no
[root@idm ~] nmcli conn modify "System eth0" ipv4.ignore-auto-dns yes
[root@idm ~] nmcli conn modify "System eth0" ipv4.dns  "192.168.24.7 8.8.8.8"
[root@idm ~] nmcli conn show "System eth0" | grep dns:
connection.mdns:                        -1 (default)
ipv4.dns:                               192.168.24.7,8.8.8.8
ipv4.ignore-auto-dns:                   yes
ipv6.dns:                               --
ipv6.ignore-auto-dns:                   no
[root@idm ~]# systemctl restart NetworkManager
[root@idm ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search demo.redhatfsi.com
nameserver 192.168.24.7
nameserver 8.8.8.8

4 thoughts on “Using nmcli to set nameservers

  1. Thank you very much! There is a lot of old outdated incorrect information out there.

  2. Don’t treat this as official docs…it is just what I got working when I did it. Much of what I have written over the years has been superceded, and I do not always realize it and update. But glad to help.

  3. I guess Thomas was referring to other posts, not yours.

    Anyway, did you figured out how to prepend a `nameserver` entry while keeping dhcp provided servers?

    I’ve tried this but w/o success:

    “`
    $ cat /etc/resolv.conf
    # Generated by NetworkManager
    search us-east-2.compute.internal
    nameserver 10.0.0.2

    $ sudo nmcli connection modify “$UUID” \
    +ipv4.dns 10.233.0.3 \
    ipv4.dns-priority 1

    $ sudo systemctl restart NetworkManager

    $ cat /etc/resolv.conf
    # Generated by NetworkManager
    search us-east-2.compute.internal
    nameserver 10.0.0.2
    nameserver 10.233.0.3
    “`

    I’d like to have 10.233.0.3 before 10.0.0.2.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.