50

How to view the DNS address assigned by DHCP?

ifconfig can not show it.

$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 90:e6:ba:22:6a:f2  
          inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::92e6:baff:fe22:6af2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:224856 errors:0 dropped:0 overruns:0 frame:0
          TX packets:220040 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:166848627 (166.8 MB)  TX bytes:20256333 (20.2 MB)
          Interrupt:46 Base address:0x4000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:5889 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5889 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:468885 (468.8 KB)  TX bytes:468885 (468.8 KB)

wlan0     Link encap:Ethernet  HWaddr 00:26:5e:e8:4f:8e  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
Victor S
  • 875

11 Answers11

57

NetworkManager

For at least Ubuntu 15.10 onward (possibly also earlier versions) run in a terminal:

nmcli dev show eth0 | grep IP4

eth0 is the most common iface, but it could be eth1, eth2, etc.

For older versions use nmcli dev list iface eth0 | grep IP4.

Pablo Bianchi
  • 17,371
Marty Fried
  • 18,944
21

systemd

Now that Ubuntu (and Debian and almost all distros) use systemd (check with file /sbin/init) maybe the more elegant way to get this info is with:

systemd-resolve --status
# Or 
resolvectl dns
  • freedesktop.org docs
  • Arch Wiki: Use systemd-resolve --status where it says resolvectl (systemd-resolve is a symlink to resolvectl).
  • If you have problems with DNS subsystem I suggest removing resolvconf package. May conflicts with systemd-resolve.
Pablo Bianchi
  • 17,371
14
$ nm-tool 

will also list DNS Servers.

dixoncx
  • 390
9

To get the DNS address open terminal (Ctrl+Alt+T) and type:

cat /var/lib/dhcp/dhclient.leases | grep dhcp-server-identifier
Pablo Bianchi
  • 17,371
devav2
  • 37,290
9

here it is:

cat /etc/resolv.conf

but do not edit this file

muru
  • 207,228
4

As a GUI alternative to @MartyFried's answer, try this.

  1. Click on the Network connectivity icon on the top panel.

  2. Select Wi-Fi Settings

  3. It should show you the DNS server address

    screenshot

Pablo Bianchi
  • 17,371
Anwar
  • 77,855
2

The below worked for me on 20.04 LTS and 22.04 LTS:

resolvectl status

It will show the DHCP advertised and current DNS servers for each interface. Any manually configured DNS servers will also show up.
You can see the DNS domain too (which I was looking for when I have found this thread).

Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub

Link 2 (enp0s31f6) Current Scopes: none Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 3 (wlp4s0) Current Scopes: DNS Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported Current DNS Server: 192.168.0.67 DNS Servers: 192.168.0.67 192.168.0.66 DNS Domain: home

Link 4 (docker0) Current Scopes: none Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

spinpwr
  • 133
2

My actual solution(est 2015, Ubuntu 14.04), is this:

  1. Start the CLI
  2. Type: sudo apt-get install gnome-system-tools
  3. After install succeeded, type at the terminal: network-admin

If you somehow can't do this then try this, though it's not good enough for me, but it got my job done:

  1. type dig google.com
  2. near the end you can see something like this(est. 2015) ;; SERVER: and then an IP address(at least, on my machine) THAT is the actual DNS server resolving the domain for you. That server can change per hostname though.
Pablo Bianchi
  • 17,371
AltCtrl
  • 21
  • 1
2

In Ubuntu 16.04, the info from dhcp is written in: /var/lib/NetworkManager/dhclient-<interface>.conf

2

As I mentioned in the comments (which by popular request has become an answer now), one can use nmcli dev show as of Ubuntu 15.04. Add grep to the mix and you're set:

$ nmcli dev show | grep 'DNS'                                                                                                                                                                     
IP4.DNS[1]:                  208.67.222.222
IP4.DNS[2]:                  208.67.220.220
0

If your computer run behind of Router/WiFi of your Internet Provider, you'll get a Private IP Address from DHCP of Router, something like 192.168.0.2 or 192.168.1.100.

To get the Public IP Address of DHCP of DNS from your Internet Provider, you need run the follow command line on terminal:

dig +short myip.opendns.com @resolver1.opendns.com
Fernando Santucci
  • 1,290
  • 1
  • 12
  • 19