resolv.conf is the configuration file for DNS resolvers for all Linux distributions, including Debian, Mint, Ubuntu, RedHat, CentOS, etc. Usually we change the DNS resolvers list by editing resolv.conf. However, depends on your dhcp client configuration, resolv.conf may be rewrite after reboot. Without deep Linux experience, setting customs DNS servers on Linux maybe time consuming. But one thing we can do is make /etc/resolv.conf immutable to other program after you changed it. This will be the easier setup with no side effects on system.
Change the DNS server
Below example we will set DNS resolver to 126.96.36.199. (188.8.131.52 is a privacy-first consumer DNS service provided by Cloudflare.)
sudo echo 'nameserver 184.108.40.206' > /etc/resolv.conf
Run the chattr +i command to sets the immutable filesystem attribute on resolv.conf, so it can’t be modified any anyone else.
sudo chattr +i /etc/resolv.conf
Reboot your system and test if your change to DNS server succeed. You can test it via DNS leak test. If you want to make change to resolv.conf again, you need to remove the attribute.
sudo chattr -i /etc/resolv.conf
Some free public DNS server list:
Google Public DNS 220.127.116.11 / 2001:4860:4860::8888 18.104.22.168 / 2001:4860:4860::8844
OpenDNS 22.214.171.124 / 2620:0:ccc::2 126.96.36.199 / 2620:0:ccd::2
Comodo Secure DNS 188.8.131.52 184.108.40.206
Norton ConnectSafe 220.127.116.11 18.104.22.168
Level 3: 22.214.171.124 126.96.36.199
Verisign Public DNS 188.8.131.52 184.108.40.206
DNS.WATCH 220.127.116.11 18.104.22.168 2001:1608:10:25::1c04:b12f 2001:1608:10:25::9249:d69b
AdGuard Default 22.214.171.124 126.96.36.199 2a00:5a60::ad1:0ff 2a00:5a60::ad2:0ff
Family protection 188.8.131.52 184.108.40.206 2a00:5a60::bad1:0ff 2a00:5a60::bad2:0ff
Quad9 220.127.116.11 18.104.22.168 2620:fe::fe 2620:fe::10
Cloudflare DNS Resolver 22.214.171.124 126.96.36.199 2606:4700:4700::1111 2606:4700:4700::1001
CleanBrowsing Family Filter 188.8.131.52 184.108.40.206 2a0d:2a00:1:: 2a0d:2a00:2::