How do I set DNS Servers on Raspberry Pi?
Solution 1
If you are using Debian on Raspberry Pi, then you need to edit /etc/resolv.conf
nano /etc/resolv.conf
then add the server IP of the openDNS
nameserver 208.67.222.222
nameserver 208.67.220.220
Btw, if you have any concern about speed of the DNS you may want to take a look at this post
Solution 2
I've found that in the latest version of Raspbian (stretch I think?) you now need to edit the last line of /etc/dhcpcd.conf
. There should be a line that starts with static domain_name_servers=
- there you can customise it with a list of space-separated DNS servers, like this:
static domain_name_servers=1.1.1.1 1.0.0.1 208.69.38.205 8.8.8.8
DNS Servers Featured: Cloudflare, OpenDNS, and Google
Edit: As @DavidOliver points out, you may need to restart dhcpcd too: sudo systemctl restart dhcpcd.service
.
Solution 3
Don't edit /etc/resolv.conf
since that file is generated automatically. Instead edit /etc/network/interfaces
and add the following to the end:
dns-nameservers 8.8.4.4 8.8.8.8
Solution 4
I have found the answer from another website and this is the best. I used the very last part of the article as Raspbian comes with dchpcd already installed and i still want an automatic ip address not a static ip address. Running from a Raspberry Pi3 multiboot [berryboot] with Raspbian - Pixel type
sudo nano /etc/resolv.conf.head
in your terminal. You will have a blank slate to work with. Next copy and paste the following code:
#OpenDns Servers
nameserver 208.67.222.222
nameserver 208.67.220.220
click on cntrl + x to exit out and select y for the following options to save. restart your Raspberry Pi with
sudo reboot
To make sure you are using OpenDNS go to the following website: OpenDns welcome page
Related videos on Youtube
Josiah Sprague
Updated on September 18, 2022Comments
-
Josiah Sprague almost 2 years
I want my Raspberry Pi to use OpenDNS to resolve domain names. How can I modify this setting?
-
Keltari over 7 yearswhat OS are you using? There are multiple OSs for the Raspberry Pi
-
starbeamrainbowlabs about 5 yearsNote for future users finding this answer via Google etc: Editing
/etc/resolv.conf
isn't really the right way going about this anymore: You need to edit/etc/dhcpcd.conf
instead. See my answer below.
-
-
Josiah Sprague almost 11 yearsI did this, but it's still not using OpenDNS.
-
Angs almost 11 yearsyou restarted your board and are using Debian-server, right? If it is the case, please try to add
nameserver 208.67.220.220``and
nameserver 208.67.222.222` to/etc/network/interfaces
then restart your board or do/etc/init.d/networking restart
. If it is still not working, please paste output ofdig google.com
-
Josiah Sprague almost 11 yearsShould the IPs be in both
/etc/resolv.conf
and/etc/network/interfaces
? -
joat almost 11 yearsThe /etc/resolv.conf entry is created from the /etc/network/interfaces config. Note: this works only if you're using static network configuration. If you're using dynamic settings, then you'll need to change the settings provided by the DHCP server.
-
Anthony Geoghegan almost 9 yearsThe first IP address is a random private address. The other two are the IP addresses of Google servers - not OpenDNS.
-
Ben over 7 yearsresolv.conf is just overwritten by the resolvconf tool. If this tool is not installed the first answer will work. But your solution will work anyway, that's why it should be marked as the right solution.
-
kodybrown over 7 yearsI just wanted to mention that today out of the blue, my Pi3 device couldn't see mirrordetector.raspbian.org. I added the OpenDNS addresses and it works fine. (I had Google's in there...)
-
Ravindra Bawane about 7 yearsCould you add a link to the original forum source you found this answer on?
-
Robert Petet about 7 yearsI have found the exact link [old article from 2013 but works!] I have updated my answer to reflect the link
-
Ravindra Bawane about 7 yearsSweet. Context almost always makes a question better.
-
Robert Petet about 7 yearsI hope this has helped you. By the way the bootloader i use for my Raspberry PI3 is berryboot [berryterminal.com/doku.php/berryboot] and i love it! I have Raspbian-Pixel, Kali Linux2.0, OSMC, and RetroPie v3.6 running on a 16GB sd card without having to change sd cards. You can get the images for berryboot here: [berryboot.alexgoldcheidt.com/images/] In fact I'm using Raspbian and chromium to answer you.
-
Tarator about 7 yearsThis worked for me. I really don't understand why setting up networks is becoming more and more complex and intransparent over time.... THanks for your help!
-
Vomit IT - Chunky Mess Style almost 7 yearsWhat does this do and how will it help? Read over "Why do I need 50 reputation to comment" to ensure you understand how you can start commenting.
-
James Campbell almost 7 yearsthis worked for me on raspian stretch lite, thanks!
-
Tono Nam about 6 yearsThis was the only solution that worked for me. I am using raspbian for the raspberry pi
-
dlrust over 5 yearsThis one was the one that worked for me on Raspbian - From the other answers in this question, edits directory to resolv.conf got overwritten on reboot and the network/interfaces edits were ignored
-
hcheung about 5 yearsThis should be the correct answer for latest (Raspbian Stretch or Debian Stretch), the accepted answer in 2013 and the higher vote so far of modifying
etc/resolv.conf
are simply no longer correct. -
Krishantha Namal Lagamuwa almost 5 yearsSeemed like a restart of the service was necessary:
sudo systemctl restart dhcpcd.service
-
lode almost 5 yearsdidn't work. startbeamrainbowlabs' solution worked!
-
TZubiri over 4 yearsThis worked for me, what a hot mess, why are there 3 ways to change the dns names in raspbian alone?
-
starbeamrainbowlabs over 4 years@TomasZubiri It's actually changed quite a bit over the years. The method Described in my answer is most up-to-date version. Answers that suggest to edit
/etc/resolv.conf
are outdated because that file is now automatically populated with the current DNS resolution settings, and is auto-updated by NetworkManager/systemd/whatever. -
starbeamrainbowlabs over 3 yearsThe instructions here are incomplete. Which file needs editing? Where is it located? Are there any other steps one must complete before your solution solves the issue, and how can one verify the issue is solved?
-
Klaws over 2 yearsThis worked for me...in a kind of surprising (reverse) way. The file /etc/resolv.conf.head was not empty in my case; instead, it referred to three unwanted DNS server addresses (including 127.0.0.1, where no DNS server is running...). No clue where this came from. In any case, all I had to do was to delete these three unwanted lines, restart dhcpcd (sudo systemctl restart dhcpcd.service) and everything was fine again (with the correct DNS server address received via DHCP).