Sign up ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Is there a command to list dns servers?

I tried

$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
$ cat /etc/network/interfaces 
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

But it doesn't list any servers, if I go to "Network Manager GUI Tool", in Wireless section it lists "DNS"

Can I get same information from command line?

I am using Ubuntu 12.04 LTS

share|improve this question
What are you trying to find? the DNS servers being used by your system? or are you trying to do a DNS lookup? –  Thomas W. Jun 18 '12 at 14:42
The former @LordofTime –  izx Jun 18 '12 at 15:16
@LordofTime DNS servers being used by my system –  Anurag Uniyal Jun 18 '12 at 15:19
@izx asking for clarification is perfectly acceptable :P –  Thomas W. Jun 18 '12 at 15:21
you are using are you running a DNS server? –  Skaperen Aug 19 at 10:18

6 Answers 6

up vote 62 down vote accepted

resolv.conf isn't really used anymore, unless you implement it yourself. The network manager does it now. I created an alias to list the DNS servers on my system, as I sometimes switch from OpenDNS to Google's open DNS. Here is the alias I use:

nmcli dev list iface <interfacename> | grep IP4

In my case, <interfacename> is eth0, which is common, but not always the case.

See if this is what you want.


I think resolv.conf is actually used indirectly, because the network manager creates the server that listens on, but I was told that this is an implementation detail that should not be counted on. I think that if you enter DNS addresses before this entry, they might get used, but I'm not sure exactly how this works. I think it's best to use the network manager in most cases, when possible.

share|improve this answer
thanks, yes that seems to be working, ubuntu networking seems to be confusing, so I can set dns servers in resolve.conf/base or in /etc/network/interfaces or in network manager, is there a definitive guide for ubuntu networking? –  Anurag Uniyal Jun 18 '12 at 15:26
If you use the GUI, then the best place to set it is by creating profiles in the Network Connections Dialog. I duplicated the default, then edited the duplicate to make the changes I wanted, keeping the default to make sure I always had a working profile. Then, it's easy to switch profiles. I don't know how to do this without the GUI, but there is a user "James Henstridge" who is very knowledgeable on Ubuntu's networking; you might try searching askubuntu for his information. He told me about the command I gave you in this post. –  Marty Fried Jun 18 '12 at 15:35
1 is a nice article abount DNS resolution in ubuntu 12.04 –  Anurag Uniyal Jun 18 '12 at 15:37
Nice link - a lot of good information there to digest. –  Marty Fried Jun 18 '12 at 15:56
I'm using 15.04 and 'nmcli dev show |grep DNS' works for me instead. –  flickerfly Aug 11 at 18:37

This is valid for 13.10 and earlier, from 14.04 on see Koala Yeung's answer to: How to know what DNS am I using in Ubuntu from 14.04 onwards



You will get an output similar to

NetworkManager Tool

State: connected (global)

- Device: eth0  [Wired connection 1] -------------------------------------------
  Type:              Wired
  Driver:            e1000e
  State:             connected
  Default:           yes
  HW Address:        00:11:22:33:44:55

    Carrier Detect:  yes
    Speed:           1000 Mb/s

  Wired Properties
    Carrier:         on

  IPv4 Settings:
    Prefix:          24 (


Or to see just the DNS do: nm-tool | grep DNS

share|improve this answer
just wanted to add-up, going to nm-applet's connection information menu will also work :) –  Samik Jun 18 '12 at 15:26
+1 this also works, as does nm-cli as answered by @Marty Fried –  Anurag Uniyal Jun 18 '12 at 15:30
Yes, same info, but nmcli is easier to parse if you want to extract it out for a different presentation, such as conky, or simply a summary like my grep. –  Marty Fried Jun 18 '12 at 15:40
This doesn't work for me. With a vpnc VPN connected, nm-tool shows the original DNS server, but the VPN's DNS server is not listed. So it might work some of the time but is not reliable in every case. –  Peter V. Mørch May 21 '14 at 7:24

cat /etc/resolv.conf should show your DNS servers.

You may not modify the resolv.conf directly with Ubuntu 12.04. If you need to change them though, you can add new DNS servers in your /etc/network/interfaces file by adding the following:

 dns-nameservers x.x.x.x x.x.x.x

where x is the DNS servers you wish to use.

If I were you, I would uninstall network-manager. In my opinion it's a pile of crap.

You can accomplish everything you need to do manually without worrying about changing your settings, especially if you have multiple NICs on the computer.

share|improve this answer
Do I have to restart nm after doing the dns change? –  N Bhargav Mar 25 at 7:43
--Thanks. This is great. It works even without that network-manager business. –  Adam Jul 18 at 8:23

The two top-scoring answers, nmcli dev list iface <interfacename> | grep IP4 and nm-tool both assume that network-manager is in control. Which it is - on desktop machines most of the time at least. But the fuller answer is that sometimes network-manager is not in control. E.g. vpnc messes with /etc/resolv.conf directly.

So: First check if is used. This could be done with dig:

> dig something.unknown  | grep SERVER:

Now you know that we are using localhost. Go ahead with one of the popular answers. I like:

> nm-tool | grep DNS:

But if is not used, then nm-tool's and nmcli's output will be misleading:

> dig something.unknown  | grep SERVER:
> nm-tool | grep DNS:

Here, dig is correct and nm-tool's information is misleading. In reality addresses local to the environment I've VPN-ed into are resolved correctly. All of which Google's DNS doesn't know about.

This is because after connecting to a VPN with vpnc, it puts a line in /etc/resolv.conf so it looks like:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
search MyDomain
share|improve this answer

Seems to be managed by network manager. Have a look here

for a large explanation.

Or the short version it to look in



share|improve this answer
but /etc/NetworkManager/NetworkManager.conf doesn't have any dns servers listed in it –  Anurag Uniyal Jun 18 '12 at 15:20

nmcli version 0.9.10

You can use either of these commands:

nmcli -t -f IP4.DNS device show eth0

nmcli -t -f IP4.DNS connection show conn-name
share|improve this answer

protected by Community May 28 at 19:02

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.