#1 楼
您应该能够在以下位置获得一些合理的信息:$ cat /etc/resolv.conf
#2 楼
这是我的操作方法:( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
此方法比上面的方法更有效:
nm-tool | grep DNS
在Debian上,则需要安装network-manager软件包。
评论
如果您使用的是VPN和NetworkManager,则此功能很有用。您的/etc/resolv.conf将指向您的计算机,其中dnsmasq解析由NetworkManager配置的名称。
– GrzegorzŻur
13年5月30日在11:32
在Debian上,这需要network-manager软件包。
–神经递质
15年2月3日,19:44
nm-tool在较新的Linux中不可用。例如,它不在debian 8的'network-manager'软件包中。
–不要亮
15年10月31日在15:06
我已经更新了答案,以反映出2016年对我有用的内容。
–Lonniebiz
16年9月1日在16:36
这是最好的答案,resolv.conf并不总是显示真相
–刀片
18年2月7日在22:58
#3 楼
在运行systemd的系统上,请使用:systemd-resolve --status
评论
systemd-resolve:无法识别的选项'--status'
–触角
18年4月1日在18:03
说无法获取全局数据:找不到单元dbus-org.freedesktop.resolve1.service。
– xji
18年4月12日在11:19
这是在Ubuntu 18.04 Bionic Beaver中执行此操作的新默认方法-大家都习惯它!
– AveryFreeman
18年4月24日在20:32
这是唯一对我有用的解决方案,其他解决方案返回了127.0.0.53
– Greuze
18-10-25在7:50
我在读什么书?我只看到DNSSEC记录。
– rosstex
5月2日下午16:22
#4 楼
我认为您也可以查询DNS,它会向您显示哪个服务器返回了结果。尝试以下操作:dig yourserver.somedomain.xyz
响应将告诉您哪些服务器返回了结果。您感兴趣的输出将如下所示:
;; Query time: 91 msec
;; SERVER: 172.xxx.xxx.xxx#53(172.xxx.xxx.xxx)
;; WHEN: Tue Apr 02 09:03:41 EDT 2019
;; MSG SIZE rcvd: 207
您还可以告诉
dig
使用dig @server_ip
查询特定的DNS服务器评论
在Debian上,这需要dnsutils软件包。
– Faheem Mitha
2012年1月14日20:54
如果您使用在本地计算机上运行的任何DNS屏蔽/缓存服务,它将隐藏真实的DNS服务器。
– karatedog
2015年9月7日上午9:12
Ubuntu 18.04仅显示本地dns缓存:服务器:127.0.0.53#53(127.0.0.53)
– Wisbucky
18年11月14日在2:16
#5 楼
只是做一个,nslookup
。结果的一部分包括它正在使用的服务器。在下面的示例中,它显示使用的DNS服务器位于8.8.8.8。
$ nslookup google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.com
Address: 172.217.22.174
评论
您能否举例说明在提示中输入什么?
–碎肉
16年1月14日在6:41
示例:$ nslookup www.google.com
–人
16-2-13在23:50
在Debian上,这需要dnsutils软件包。
–加扬·韦拉库蒂(Gayan Weerakutti)
17年8月13日在7:00
在最近的Ubuntu上,这再次指向本地缓存服务器127.0.0.1,如本注释中所暗示
–FriendFX
17年12月1日在1:50
在CentOS 7中,它退出并出现错误,但它是一个虚拟机,因此我在Windows主机中做了nslookup google.com并找到了名称服务器。将其添加到/etc/resolv.conf中,例如:nameserver xx.xx.xx.xx并重新启动服务网络,一切正常。夸你。
– WesternGun
18年5月3日在15:22
#6 楼
使用新的network-manager
命令nmcli
,请执行以下操作:nmcli --fields ipv4.dns,ipv6.dns con show [connection_name]
在较新版本的网络管理器(例如Ubuntu 16.04)中,字段名称略有不同:
nmcli --fields ip4.dns,ip6.dns con show [connection_name]
如果您不知道连接名称,请使用:
nmcli -t --fields NAME con show --active
,例如,在旧版本的nmcli上:
$ nmcli --fields ip4.dns,ip6.dns con show 'Wired connection 1'
IP4.DNS[1]: 172.21.0.13
IP4.DNS[2]: 172.21.0.4
评论
我的结果:订单«con»«show»无效。
– Sopalajo de Arrierez
16年1月30日在22:03
在Ubuntu 15.10上使用network-manager 1.0.4对我来说工作正常。也许您有旧版本?
– Sameer
16 Mar 17 '16 at 5:40
表格格式非常糟糕。我希望获得类似于Powershell的格式的列。
– CMCDragonkai
17 Mar 14 '17在6:42
返回错误:无效字段“ ip4.dns”;允许的字段:NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT优先级,READONLY,DBUS路径,ACTIVE,DEVICE,STATE,ACTIVE-PATH。
–FriendFX
17年12月1日,下午1:53
只是nmcli是我在ubuntu 19.04上所需的全部
–John Mee
19-10-2在5:54
#7 楼
获取第一个DNS服务器(仅IP):cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
cat
将输出DNS config grep
仅过滤名称服务器head
将仅保留第一行/实例cut
将行的ip部分(第二列以''作为分隔符)要将DNS ip放入环境变量中,可以使用以下方法:
export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2)
评论
grep -m 1在第一次匹配后停止匹配,因此您不必使用head
–sshow
17年7月28日在8:30
为了减轻负担,Perl regexp捕获组非常简洁,grep使用文件参数:grep -Pom 1'^ nameserver \ K \ S +'/etc/resolv.conf。刚刚用grep perl正则表达式写了Capture组
–sshow
17年7月28日在9:04
同时有IPv4和IPv6 DNS服务器。同样,由于某种原因,存在辅助服务器。该命令返回哪一个?是否建议您选择第一个,而忽略其他?
–AndréWerlang
1月16日2:53
#8 楼
如果您使用的是网络管理器,则可能会从大学的dhcp服务器上获取所有网络参数。如果您不想使用外壳程序来检查dns设置(如hesse和Alexios所述) ,您可以在“网络信息”面板中看到它们。
您可以通过在网络管理器图标上按鼠标右键并从菜单中选择“连接信息”来访问此面板。
#9 楼
使用resolvectl
$ resolvectl status | grep -1 'DNS Server'
DNSSEC supported: no
Current DNS Server: 1.1.1.1
DNS Servers: 1.1.1.1
1.0.0.1
出于兼容性考虑,
systemd-resolve
是许多发行版中与resolvectl
的符号链接,就像Ubuntu 18.10一样: 评论
在Ubuntu 18.10上完美运行。
–乔治·斯托亚诺夫(Georgi Stoyanov)
19 Mar 27 '19 at 16:02
#10 楼
我有Fedora 25,并且在命令行上的响应速度也与sudo命令类似。通过将DNS条目添加到一个没有条目的活动卡中-presto!
一切都很好,响应时间很短。
评论
也许替代
– Amos Folarin
19年6月12日在17:44
#11 楼
在Ubuntu> = 15nmcli device show <interfacename> | grep IP4.DNS
用您的替换
<interfacename>
。在Ubuntu <= 14
命令
nmcli dev list iface <interfacename> | grep IP4
用你的
<interfacename>
替换。示例
nmcli device show eth0 | grep IP4.DNS
或
nmcli dev list iface eth0 | grep IP4
这将列出所有DNS服务器(如果使用多个服务器)。
评论
nmcli开发人员列表iface [设备名称]是正确的命令
–sebix
15年5月18日在17:33
我没有注意到
– Maythux
2015年5月19日下午5:53
在debian上,我得到一个错误-$ nmcli dev list iface eth0错误:'dev'命令'list'无效。
–不要亮
2015年10月31日15:00
nmcli是RH专用命令。
– Rui F Ribeiro
15年11月16日在7:42
这是正确答案!
–VAdaihiep
18年8月10日在8:00
#12 楼
在CentOS中,您可以使用:/usr/sbin/named -v
#13 楼
在最新的Fedora 33上,您可以使用# resolvectl dns
Global:
Link 2 (enp0s31f6):
Link 3 (wlp4s0): 1.1.1.1 8.8.8.8
Link 4 (virbr0):
Link 5 (virbr0-nic):
来检查
systemd-resolved
是否处于活动状态,请执行cat /etc/resolv.conf
,它将告诉您谁在控制文件。如果您需要更多详细信息,则可以使用
resolvectl status
resolvectl statistics
,您也可以刷新缓存... 要进行故障排除,您可以在将级别设置为DEBUG后使用
journalctl -u systemd-resolved -f -o cat | grep Looking
:sudo resolvectl log-level debug
#14 楼
在未安装systemd-resolved
的系统上: $ host -v something.unknown | awk -F "[ #]" '/Received /{print}' | uniq
192.168.1.1
在运行
NetworkManager
的系统上:$ ( nmcli -f IP4.DNS,IP6.DNS dev list || nmcli -f IP4.DNS,IP6.DNS dev show ) 2>/dev/null | awk '/DNS/{print$NF}'
192.168.1.1
评论
但是,请注意(在现代Linuxen上)/etc/nsswitch.conf的内容指示使用哪种名称服务(DNS,LDAP等)以及使用的顺序。说fgrep主机:/etc/nsswitch.conf。如果仅引用DNS,则/etc/resolv.conf是查找名称服务器的正确位置。但是,您可能还会使用mDNS(又名ZeroConf,又名Avahi,又名Bonjour等),在这种情况下,取决于您所使用的内容。
–́Alexios
2012年1月12日13:35
该文件在Ubuntu上通常指向127.0.1.1-它是本地DNS缓存服务器,而不是实际的上游服务器。
–巴里·凯利(Barry Kelly)
16 Mar 8 '16 at 10:24
@BarryKelly检查您的路由器使用什么,然后
–老年病
16年3月11日在17:10
并且,如果您配置了多个上游服务器?如何知道当前使用的是哪一个?
–西尔万·勒鲁(Sylvain Leroux)
16年11月24日在23:31
请参阅@ G32RW或@Lonniebiz的答案,以获得在各种情况下(例如,当您收到像127.0.0.53这样的答案时
–nealmcb
18年11月11日在22:13