DNS服务器地址不再存储在resolv.conf中;现在在哪


14

有时,我会使用任务栏中的NetworkManager指示器来切换DNS服务器。这在以前的版本中可以正常工作,并且实际上在12.04上也可以正常工作,除了一件事:我使用Conky显示一些系统信息,包括DNS地址,并且我注意到它现在始终显示127.0.0.1

我查看了resolv.conf,这是它获得此地址的地方,而且确实可以肯定,这就是它总是说的。我只有一行内容,但建议不要手动编辑文件:

nameserver 127.0.0.1

我现在知道检查DNS服务器地址的唯一方法是打开网络管理器GUI来检查信息页面。那么,这些信息现在存储在哪里?

Answers:


17

该信息由网络管理器在内部进行管理。您可以使用附带的nmcli工具在命令行上获取此信息。

您可以使用以下命令检索特定网络接口的网络管理器信息:

nmcli dev list iface eth0

(替换eth0为您要连接的接口)。输出将包含有关接口和该接口上当前活动连接的信息:

GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           802-3-ethernet
...
IP4.DNS[1]:                             192.168.0.1
...

从此输出中提取您想要的信息应该不会太困难。

如果您需要一种不依赖的输出来访问此数据的编程方法,那么nmcli该信息也应该可以从Network Manager的D-Bus界面中获得。


非常感谢,这是一些很棒的信息。使用该nmcli命令列出各种有趣的参数来创建一个简单的shell脚本应该很容易。也许我可以鞭打一些有用的东西并分享一些地方。我并不是真的认为Network Manager是必需的,并且我想也许有人可以通过其他方法来做到这一点,但这对我来说确实有效。
马蒂·弗里德

好了,您可以看到正在侦听的服务器127.0.0.1dnsmasqNetwork Manager启动的实例(请参阅的输出sudo netstat -tlnp)。但是最好将其视为实现细节,并向网络管理器询问所需的信息,因为这是在此处做出决定的信息。
詹姆斯·亨斯特里奇

感谢您提供这么好的信息。而且,也感谢您编辑我的问题-以后我会尝试花更多时间。:)我的借口是我刚刚升级到12.04,并且在多个方面都没有发火。:)
马蒂·弗里德

4
nmcli dev list iface不适用于我,但nmcli dev show可以[ubuntu 15.04]
Beni Cherniavsky-Paskin 2015年

10

Ubuntu开发人员应该在中记录这些更改/etc/resolv.conf,但没有。

这是帮助您入门的快速命令列表。

  1. 显示当前的DNS服务器

    nm-tool | grep DNS
    
  2. 在中定义静态DNS服务器/etc/dhcp/dhclient.conf。添加以下行,然后重新启动本地解析器:

    supersede domain-search "sub.mydomain.com", "domain.com";
    prepend domain-name-servers 192.168.0.1;
    

    在命令提示符下:

    invoke-rc.d network-manager restart
    

其他一些文档:resolvconf(8),/ usr / share / doc / resolvconf / README.gz。
jdthood 2012年

4

请注意,使用nmcli可能并不总是能为您提供完整的答案。例如,如果您使用openconnect(或vpnc,大概是)启动VPN,并且安装了resolvconf软件包(以照顾自动管理/etc/resolv.conf的工作),您会发现它仍然可以自动插入在127.0.0.1之前,VPN的DNS设置进入/etc/resolv.conf。在这种情况下,仅检查(例如)“ nmcli -f IP4开发人员列表”将不会为您提供真实的当前DNS列表。不知道这种情况是否会影响您,但认为值得一提。


感谢您提供更多信息;了解更多总是好事。对于我的用例,我不必担心,因为我主要只是想知道两个可能的DNS地址中的哪个处于活动状态。
马蒂·弗里德

如果您正在使用networkmanager连接到VPN,那么应该使用什么命令为您提供dns?DNS正在工作,但我找不到它们。
豪尔赫·苏亚雷斯·德里斯,2013年
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.