The Web as we know it today is powered by a technology called the 'Domain Name System,' also known as DNS. It acts like a phone book for the internet, linking web servers with their corresponding website domain names. DNS is what takes you to Google when you type in google.com, so as you can imagine, DNS is a critical part of the infrastructure of the internet.
While most people simply use the default DNS servers provided by their carrier or internet service provider, alternative servers do exist. Google Public DNS has been a popular option for years, and CloudFlare's 126.96.36.199 DNS is a newer service that is quickly gaining ground.
There are plenty of reasons why you might want to change the DNS server your devices use. Some internet service providers have been known to record DNS queries (e.g., a list of all the sites you visit) and share them with third parties. Some DNS services are also faster than others, depending on how close you are to their servers, which can impact how quickly websites load.
In this guide, we'll go over some popular options for DNS services, and show you how to change the DNS server on your Android device.
The most well-known custom DNS service is Google Public DNS. It has servers all over the world, so lookups should be fast no matter where you are. It also supports DNS over TLS (DoT) and DNS over HTTPS (DoH), so if your operating system works with those standards (Android 9+ does), then queries are sent over a secure channel. Google claims its DNS service doesn't permanently store any data.
If the idea of all your internet queries going through Google doesn't sound appealing, CloudFlare 188.8.131.52 is another popular option. According to most independent tests, it's generally the fastest DNS service available. It also has a nice app for Android you can use, if your phone doesn't have a setting for a system-wide DNS server (more on that later).
Other DNS services focus on specific use cases. For example, OpenDNS filters dangerous and adult-oriented websites on a network level (as long as the kids don't find this article!). Norton ConnectSafe was a popular option for protection against online malware threats, but it was shut down in 2018.
How to change your DNS server
The process for setting the default DNS server for Android depends on the Android version your phone/tablet is running. It's a simple process on newer devices, but older versions of Android make it more difficult.
If you're not sure what version of Android your device has, you can find it by opening the Settings app and going into the About phone menu. The OS version (8.0, 9.0, 10.0, etc.) should be listed somewhere.
Android 9 Pie and newer
Android 9 Pie introduced a system-wide DNS setting, so instead of changing the DNS for each individual network, you can do it in one place. However, Android requires that the DNS service supports DNS-over-TLS, so not every server will work. Google's own Public DNS wasn't compatible until a few months after Android 9 launched.
All you have to do is open the Settings app on your phone, go to the network settings, and find the option for a Private DNS server. Here you can turn off Private DNS (so your ISP's server will be used), set it to automatic (where Android will attempt to use DNS-over-TLS with your ISP's server), or always use a custom server.
Choosing a custom DNS on a Galaxy S10e running Android 10
You can type a custom server into the address field, but it has to be the TLS hostname and not just a string of numbers. For example, instead of typing in 184.108.40.206 or 220.127.116.11 for Google Public DNS, you have to use dns.google. Instead of 18.104.22.168 for CloudFlare, you would put in 1dot1dot1dot1.cloudflare-dns.com.
One you hit Save, the setting should take effect. Keep in mind that your DNS choice can be overridden when you use a VPN or other app that alters your network configuration.
Android 8.1 Oreo and older
On older versions of Android, the official way to change your DNS server is to manually enter it in each of your network connections (both Wi-Fi and cellular). To make changes to a Wi-Fi network, go to the Settings app, find the Wi-Fi network you are connected to, long-press on the network's name, and select 'Modify network.' Then toggling on the advanced options brings up an option for 'IP settings.'
Normally, this will read 'DHCP,' which is basically the "I'm good with whatever; just let the Wi-Fi router worry about everything" setting. Change that over to 'Static,' though, and you'll be able to manually input all the network settings you want — and that includes your DNS server. There's a spot for both a primary and backup server, which with our Cloudflare example would be 22.214.171.124 and 126.96.36.199.
Choosing a custom DNS on Android 8 Oreo
Unfortunately, changing these settings opens up a series of new problems. For one, you're going to have to manually specify your phone's IP address and the Wi-Fi router's gateway. Even if you're comfortable doing that, these are settings you're probably only going to want to change for networks directly under your control, like your router at home.
Thankfully, there's an easier method than this. There are a few applications available on the Play Store that use Android's VPN API to route your all DNS requests through a custom server, giving you similar functionality to the system-wide option on Android 9 and newer. These are not VPN apps, the only aspect of your network connection that changes is the DNS.
Some popular options include DNS Changer and dnspipe. Since they use Android's VPN API, there is always at least one permanent notification while you are connected.
If you mainly want to use CloudFlare DNS, you might not have to use a third-party app — CloudFlare has its own 'WARP' app for Android. It does the same thing as the various DNS changer apps, but there's an optional 'WARP+' paid feature that claims to improve performance.
A note about connectivity
It's worth noting here that, just like VPNs, some custom DNS servers have been known to be blocked on some networks. I personally spent a long time trying to figure out why my phone couldn't connect to my college's Wi-Fi, only to realize that it was blocking CloudFlare's DNS.
I've been trying to figure out for weeks why my phone and tablet won't connect to my school's Wi-Fi, turns out the network blocks CloudFlare's DNS. 🙄
— Corbin Davenport (@corbindavenport) December 5, 2019
So, if you ever run into connection issues on Wi-Fi networks, you might need to turn off the Private DNS feature in Android temporarily (or shut down any VPN apps you're using). This shouldn't be a problem, but improving your privacy almost always comes with a headache or two.