什么是我的DNS服务器?


22

我的/etc/resolv.conf看起来像这样:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

# OpenDNS Fallback (configured by Linux Mint in /etc/resolvconf/resolv.conf.d/tail).
nameserver 208.67.222.222
nameserver 208.67.220.220   

当我使用nslookup时,我似乎使用了127.0.1.1:

moose@pc08 ~ $ nslookup www.google.com
Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   www.google.com
Address: 173.194.44.17
Name:   www.google.com
Address: 173.194.44.16
Name:   www.google.com
Address: 173.194.44.19
Name:   www.google.com
Address: 173.194.44.18
Name:   www.google.com
Address: 173.194.44.20

但是,当我右键单击网络管理器并单击“连接信息”时,我得到:

连接信息

whois 217.0.43.129 显示这属于我的ISP德国电信(Deutsche Telekom AG)。

网络管理员为什么显示此信息?我当前正在使用哪个DNS服务器?

dnsmasq

是的,我似乎正在运行dnsmasq:

moose@pc08 ~ $ ps aux | grep dnsmasq
nobody    1479  0.0  0.0   5468  1404 ?        S    14:16   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/nm-dns-dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

Answers:


17

您正在使用dnsmasq,它是在NetworkManager的控制下在本地运行的轻型转发DNS服务器。Dnsmasq将DNS查询转发到其地址已由DHCP服务器提供的DNS服务器。也可以使用“连接编辑器”静态设置这些DNS服务器地址。

dnsmasq可执行文件是由在其上的网络管理器包所依赖的的dnsmasq基包提供。还有一个名为“ dnsmasq”的程序包,该程序包也依赖于dnsmasq-base,但是仅当您希望dnsmasq独立于NetworkManager 运行时才能安装此“ dnsmasq”程序包,以便利用DNS转发以外的功能。


@jdthood-您所做的更改相当广泛,可以理解为超出了OP的意图。如果需要支持您的想法,请创建您自己的答案。谢谢。
fossfreedom

@jdthood:非常感谢您为确保正确答案所做的努力。但是据我了解,与NetworkManager集成的dnsmasq的默认行为是根据其各自的TTL设置缓存150个条目。
罗伊

默认情况下,NM-dnsmasq的缓存处于禁用状态。这样做ps -ef|grep dnsmasq并查找选项--cache-size=0
jdthood 2013年

1
在我的12.04框中不是这种情况,但是Google搜索显示您是正确的,这是12.04和12.10的默认设置。因此,然后禁用了缓存的缓存DNS服务器:)
Roy

如果您在设置中指定了两个或多个,则dnsmasq似乎正在使用最近的dns服务器(即,它可以达到最快的DNS服务器)。从(提供更快)用户体验的角度来看,这很有意义。另外,resolv.conf文件提到了另一个,OpenDNS是后备的,不是主要的,对吧?
Sergiy Kolodyazhnyy,2015年

17

随着happyskeptic答案的扩展,您无需指定接口。这为我做到了:

> nmcli dev show | grep DNS
IP4.DNS[1]:                             172.22.216.251
IP6.DNS[1]:                             2a01:4f0:400c:1::1

适用于Ubuntu 14.04和更早版本 nmcli dev list | grep DNS

> nmcli dev list | grep DNS
IP4.DNS[1]:                             172.22.216.251
IP6.DNS[1]:                             2a01:4f0:400c:1::1

1
我的Ubuntu 16系统想要nmcli dev show
通常

那是因为nmcli自从Ubuntu 15.04起,由于过渡到不同的init系统,版本已更改,所以是的,在较新的版本中,该命令略有不同
Sergiy Kolodyazhnyy

当我使用NetworkManager和VPNC登录到我的工作网络时,即使很明显它正在解析,在此输出中也看不到我工作的DNS服务器。我(至今)不知道如何查看VPN DNS服务器。
Peter V.Mørch17年

1
为了使dnsmasq显示其正在使用的DNS,可以向其发送USR1信号,然后将其统计信息转储到syslog中。因此,请做: tail -F /var/log/syslog | grep dnsmasq.\*Server & sudo pkill -USR1 dnsmasq
Alexander Skwar,

7

我发现,在Kubuntu 14.04上,KDE中的NetworkManager小程序(或Plasma,不管它叫什么)在连接详细信息下不显示DNS服务器信息。

在这种情况下,找到它的方法是在命令行中运行以下命令并查找“ IP4.DNS”行:

nmcli dev list iface wlan0

(将wlan0替换为用于连接到网络的接口)


大!当DNS消失时,它将对我有帮助...
karatedog 2015年

1
nmcli device show wlan0就我而言
Searene

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.