使用外部DNS时,为什么dig将dns服务器报告为127.0.0.1?


12

我使用未绑定,通常使用openDNS作为我的DNS服务器。

当我跑步时dig google.com说我得到SERVER: 127.0.0.1#53(127.0.0.1)。这东西在端口53上监听的确切内容是什么?这是未绑定的还是与dnsmasq有关(我是否甚至安装了dnsmasq,因为dnsmasq.conf似乎不在其中/etc?)

在resolv.conf中,nameserver 127.0.0.1但是在网络管理器中,我有指向两个openDNS地址的DNS服务器。那么这是怎么回事?本地名称服务器指向dnsmasq,然后使用网络管理器中的值?还是实际上是在倾听呢?


你想达到什么目的 ?
拉胡尔·帕蒂尔

3
只是真正了解
fpghost 2012年

这是ubuntu服务器版本还是什么?
拉胡尔·帕蒂尔

不只是桌面
fpghost

Answers:


15

默认情况下,NetworkManager使用Dnsmasq作为DNS解析器(如果已安装)。这是基于Debian的系统上的默认设置,因此Dnsmasq在默认配置下运行,该配置仅根据命令行选项(加上的内容/etc/hosts)指定的上游服务器解析名称。您没有,/etc/dnsmasq.conf因为该文件仅存在于可选软件包dnsmasq中

要查看您的系统当前正在使用Dnsmasq还是Unbound进行DNS查询,请运行netstat -ulnp | grep ":53 "

在Ubuntu 12.04中,NetworkManager不能与其他DNS解析器配合使用(请参阅bug 959037Thomas Hood的摘要几乎涵盖了所有内容)。为了与NetworkManager一起继续运行Unbound,最好的办法是告诉NetworkManager不要运行Dnsmasq(除了Unbound之外,您不需要它,除非您使用的是NetworkManager不使用的Dnsmasq功能)。要做到这一点:

  1. 编辑/etc/NetworkManager/NetworkManager.conf以注释掉包含的行dns=dnsmasq#在该行的开头添加a )。
  2. 用重新启动NetworkManager service network-manager restart

Ubuntu当前如何知道使用Unbound?(确实确实在使用它);我要问的是为什么我不需要类似dns=unboundin的东西/etc/NetworkManager/NetworkManager.conf?鉴于我当前dns=dnsmasq在该文件中,为什么Ubuntu实际上使用未绑定?
fpghost 2012年

@fpghost您获得哪个取决于首先启动哪个。如果您在没有网络的情况下启动,您将得到Unbound,因为它将首先启动。如果您通过网络连接启动,我认为这很麻烦。
吉尔斯(Gillles)“所以-别再邪恶了”

好的,但是我真正想知道的是,而不是完全注释掉该dns=...行以停止dnsmasq的使用,如果我将其替换为dns=unbound?否则,NetworkManager如何知道未绑定将是本地解析器?
fpghost

1

在ubuntu 12.04中,由于被硬编码为,dnsmasq现在默认运行network-manager。在桌面安装上,默认情况下将dnsmasq用作本地解析器这是此版本的第二大变化。在桌面安装中,您的DNS服务器将为“ 127.0.0.1”,它指向由NetworkManager管理的dnsmasq服务器。

SERVER: 127.0.0.1#53(127.0.0.1)

这意味着您正在从本地DNS(即DNSMASQ)获得查询的答复。

如果您不希望使用本地解析器,则可以使用以下过程将其关闭DNSMASQ。

您需要编辑/etc/NetworkManager/NetworkManager.conf文件

gksudo gedit /etc/NetworkManager/NetworkManager.conf

并从中注释掉以下行

dns=dnsmasq

#dns=dnsmasq

保存文件并退出。

现在您需要network-manager使用以下命令重新启动

sudo systemctl restart network-manager

参考链接


1
是的,但是如果我还安装了Unbound,这是否要优先于dnsmasq作为本地解析器?都在听#53吗?他们如何相处?
fpghost 2012年

还为什么/etc/dnsmasq.conf缺席?
fpghost 2012年

@fpghost dnsmasq侦听127.0.1.1,而unbound侦听127.0.0.1(均在端口53上)。您可以在网络管理器配置中将dns = unbound设置为使用unbound。
talonx '16

0

要查看使用了什么实际的DNS服务器来解析您的地址,在使用DNSMasq时将无法使用,DIG因为它仅报告127.0.0.1,而是:

在DNSMasq中启用登录:

sed -i 's/\#log-queries/log-queries/' /etc/dnsmasq.conf
systemctl restart dnsmasq

记录DNSMasq并监视输出:

journalctl --unit dnsmasq.service -f

ping主机:

ping google.ca

然后您可以看到,我的上游DNS服务器(192.168.1.1)可以解决该问题:

: query[A] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: query[AAAA] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: reply google.ca is 172.217.1.3
: reply google.ca is 2607:f8b0:400b:80f::2003
: query[PTR] 3.1.217.172.in-addr.arpa from 127.0.0.1
: forwarded 3.1.217.172.in-addr.arpa to 192.168.1.1
: reply 172.217.1.3 is iad23s25-in-f3.1e100.net
: reply 172.217.1.3 is yyz10s14-in-f3.1e100.net

在* .company.com的公司VPN后(在拆分隧道中)对主机执行ping操作

ping box.company.com

结果:

: query[A] box.company.com from 127.0.0.1
: forwarded box.company.com to vpn.ser.ver.ip
: query[AAAA] box.company.com from 127.0.0.1
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.