How do I set DNS Servers on Raspberry Pi?

32

12

I want my Raspberry Pi to use OpenDNS to resolve domain names. How can I modify this setting?

Josiah Sprague

Posted 2013-07-10T05:07:39.603

Reputation: 694

what OS are you using? There are multiple OSs for the Raspberry Pi – Keltari – 2016-10-24T01:46:38.230

Note 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. – starbeamrainbowlabs – 2019-04-03T14:51:58.947

Answers

18

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

Angs

Posted 2013-07-10T05:07:39.603

Reputation: 900

I 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...) – Kody Brown – 2017-01-14T21:33:48.740

I did this, but it's still not using OpenDNS. – Josiah Sprague – 2013-07-10T05:53:19.250

4you restarted your board and are using Debian-server, right? If it is the case, please try to add nameserver 208.67.220.220``andnameserver 208.67.222.222to/etc/network/interfacesthen restart your board or do/etc/init.d/networking restart. If it is still not working, please paste output ofdig google.com` – Angs – 2013-07-10T06:07:32.140

Should the IPs be in both /etc/resolv.conf and /etc/network/interfaces? – Josiah Sprague – 2013-07-10T15:36:54.713

1The /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. – joat – 2013-07-13T13:58:28.513

29

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

Justin

Posted 2013-07-10T05:07:39.603

Reputation: 431

5resolv.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. – Ben – 2016-12-07T18:18:15.793

this worked for me on raspian stretch lite, thanks! – James Campbell – 2017-09-13T01:28:39.997

didn't work. startbeamrainbowlabs' solution worked! – lode – 2019-08-13T22:16:20.663

28

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.

starbeamrainbowlabs

Posted 2013-07-10T05:07:39.603

Reputation: 849

4This was the only solution that worked for me. I am using raspbian for the raspberry pi – Tono Nam – 2018-05-24T15:37:04.610

1This 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 – dlrust – 2018-10-29T23:24:13.630

1This 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. – hcheung – 2019-04-03T06:06:20.380

Seemed like a restart of the service was necessary: sudo systemctl restart dhcpcd.service – David Oliver – 2019-08-07T21:47:58.057

5

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

Robert Petet

Posted 2013-07-10T05:07:39.603

Reputation: 51

Could you add a link to the original forum source you found this answer on? – music2myear – 2017-04-18T19:36:46.477

I have found the exact link [old article from 2013 but works!] I have updated my answer to reflect the link – Robert Petet – 2017-04-18T20:07:27.653

Sweet. Context almost always makes a question better. – music2myear – 2017-04-18T20:11:19.230

I hope this has helped you. By the way the bootloader i use for my Raspberry PI3 is berryboot [http://www.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: [http://berryboot.alexgoldcheidt.com/images/] In fact I'm using Raspbian and chromium to answer you. – Robert Petet – 2017-04-18T20:19:23.110

This 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! – Tarator – 2017-05-04T06:17:38.123

-1

The openDNS servers worked for me thanks. During a Udemy learning session I had run into a problem after ditching my wifi sharing arrangement with my Mac, and setting up ethernet hub with the PI on a different home network. The problem with my previous IP sharing arrangement with WiFi.

When I originally setup the PI with the sharing arrangement the text Inside the resolve file was:​

nameserver 192.168.2.1 

which was entered automatically by the minibian OS, NOT ME!

This IP became the default DNS server, with the MacMini seamlessly providing the real DNS in the background. ​

SO NEED TO EDIT(vim) WITH

nameserver  208.67.222.222
nameserver 208.67.220.220       

​Then I could ping google.com Thank goodness for forums!

JimJtron

Posted 2013-07-10T05:07:39.603

Reputation: 1

1

What 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.

– Pimp Juice IT – 2017-09-04T02:27:16.670

-3

Add this line into file /etc/dhcp/dhclient.conf:

option domain-name-servers 192.168.1.8, 8.8.8.8, 8.8.4.4

Then it will work.

Larand

Posted 2013-07-10T05:07:39.603

Reputation: 1

4The first IP address is a random private address. The other two are the IP addresses of Google servers - not OpenDNS. – Anthony Geoghegan – 2015-09-01T09:39:07.277