![当我使用外部 DNS 时,为什么 dig 将 dns 服务器报告为 127.0.0.1?](https://linux22.com/image/44045/%E5%BD%93%E6%88%91%E4%BD%BF%E7%94%A8%E5%A4%96%E9%83%A8%20DNS%20%E6%97%B6%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%20dig%20%E5%B0%86%20dns%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%8A%A5%E5%91%8A%E4%B8%BA%20127.0.0.1%EF%BC%9F.png)
我使用 unbound 并且通常使用 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
但在网络管理器中我将 DNS 服务器指向两个 openDNS 地址。那么这是怎么回事呢?本地名称服务器是否指向 dnsmasq,然后使用网络管理器中的值?或者说它实际上是在听而不被束缚?
答案1
默认情况下,NetworkManager 使用 Dnsmasq 作为 DNS 解析器(如果已安装)。这是基于 Debian 的系统上的默认设置,因此 Dnsmasq 在默认配置中运行,它仅根据命令行选项指定的上游服务器(加上 的内容/etc/hosts
)解析名称。您没有/etc/dnsmasq.conf
,因为该文件仅存在于可选包中域名解析。
要查看您的系统当前是否使用 Dnsmasq 或 Unbound 进行 DNS 查询,请运行netstat -ulnp | grep ":53 "
。
在 Ubuntu 12.04 中,NetworkManager 与其他 DNS 解析器不能很好地配合(请参阅错误 959037—托马斯·胡德的总结几乎涵盖了所有内容)。要继续与 NetworkManager 一起运行 Unbound,最好的办法是告诉 NetworkManager 不要运行 Dnsmasq(除了 Unbound 之外,您不需要它,除非您使用 NetworkManager 不使用的 Dnsmasq 功能)。要做到这一点:
- 编辑
/etc/NetworkManager/NetworkManager.conf
以注释掉包含的行(在该行的开头dns=dnsmasq
添加一个)。#
- 使用 重新启动 NetworkManager
service network-manager restart
。
答案2
在 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)获取查询的 ans。
如果您不需要本地解析器,可以使用以下过程将其关闭 DNSMASQ。
您需要编辑/etc/NetworkManager/NetworkManager.conf
文件
gksudo gedit /etc/NetworkManager/NetworkManager.conf
并注释掉以下行
dns=dnsmasq
到
#dns=dnsmasq
保存文件并退出。
现在您需要network-manager
使用以下命令重新启动
sudo systemctl restart network-manager
参考关联
答案3
要查看实际使用哪个 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