DNS and cloud init; where is the proper location to set the resolver

Posted February 15, 2020 7.3k views
DigitalOcean Accounts

I’m running Centos 7. All the usual places to change the DNS resolver have a warning message that this file is created by cloudinit. So where do I actually set the resolver address? That is I need a file not created by cloudinit or any other automatic process.

The only reason I ask is in the last few days my reverse DNS check in Postfix has failed on some IP addresses that are fine, i.e. do have a reverse pointer. For example google gmail servers and comcast.

1 comment
  • Cloud-init config is provided in two places: /etc/cloud/cloud. cfg. /etc/cloud/cloud.
    By default, user data scripts and cloud-init directives run only during the first boot cycle when an EC2 instance is launched. However, you can configure your user data script and cloud-init directives with a mime multi-part file. Then, the file executes the user script

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
2 answers

Hi @gc948486cbc56b8,

If you wish to change your Resolv.conf you’ll need to edit your /etc/NetworkManager/NetworkManager.conf file. Open the file and search for the [main] section in this file. As soon as you find it, Add dns=none just after the [main] tag:


Now that you are done with that part, update your /etc/resolv.conf to whatever you like and restart your NetworkManager.

sudo systemctl restart NetworkManager.service

And that’s it, your resolv.conf should now be safe.


  • I don’t have that file structure. I have
    with a number of different files.

    This is my /etc/sysconfig/network-scripts/ifcfg-eth0 with obvious censoring.

    # Created by cloud-init on instance boot automatically, do not edit.

    suggested fix
    except the Digitalocean comment says not to edit the file. The DNS1 does seem to propagate. The suggested fix is to remove the DNS1 line and then change resolve.conf

    sh-4.2# cat resolv.conf
    ; Created by cloud-init on instance boot automatically, do not edit.
    search localdomain

    I would like to switch to a non-filtered DNS like

My DO server Ubuntu 20 droplet install did not have resolvconf installed by default. So ....

This link has a straight, DO specific answer, and it solved the same issue for me: