当前位置: 首页>>技术问答>>正文


16.10无法解析DNS

, , , , ,

问题描述

将我的16.04安装升级到16.10后,我遇到了DNS问题。

首先,当连接到WiFi时,我遇到了几次问题,而它在以太网上工作。现在它似乎也适用于WiFi。不知道为什么,如果它与我现在遇到的问题有任何关系:

使用Cisco Anyconnect VPN连接到VPN主机时,它会在’/etc/resolv.conf’中添加一行。我知道Ubuntu现在正在使用systemd-resolve,手册页说有三种不同的模式来处理/etc/resolv.conf。我的/etc/resolv.conf不是符号链接,并没有将127.0.0.53列为DNS服务器,因此据我所知,systemd-resolved应该“读取DNS配置数据”。但是,它似乎并不关心它。

dig

奇怪的是(对我来说)是dig host.customer.tld,用ANSWER SECTION返回一个很好的答案,显示所请求主机的ip,它指的是由vpn客户端作为SERVER添加到/etc/resolv.conf的dns服务器。当vpn连接被禁用时,我得不到答案。即dig读取/etc/resolv.conf。

ping

另一方面,浏览器无法访问/etc/resolv.conf,也无法解析主机名。顺便说一下,ping /curl都没有。

nmcli

我找到了一个related post,并尝试运行

nmcli device show <interfacename> | grep IP4.DNS

但它没有列出cscotun0设备的dns。 (但它在16.04中也没有。)此外,nmcli将我的dhcp服务器(我的路由器)列为我的eth /wlan连接的IP4.DNS主机。在任何公共领域使用dig @192.168.0.1 xxx都可以。

configuration

我的/run/systemd/resolve/resolv.conf中列出了一些其他DNS服务器:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844

我的DHCP服务器不提供这些服务。文件/etc/systemd/resolved.conf只包含注释行,但节标题除外:

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

resolved.conf的手册页说明了这一点

DNS= A space-separated list of IPv4 and IPv6 addresses to use as system DNS servers. … For compatibility reasons, if this setting is not specified, the DNS servers listed in /etc/resolv.conf are used instead, if that file exists and any servers are configured in it. This setting defaults to the empty list.

FallbackDNS= A space-separated list of IPv4 and IPv6 addresses to use as the fallback DNS servers. Any per-link DNS servers obtained from systemd-networkd.service(8) take precedence over this setting, as do any servers set via DNS= above or /etc/resolv.conf. This setting is hence only used if no other DNS server information is known. If this option is not given, a compiled-in list of DNS servers is used instead.

在我的情况下,似乎回退最终会出现在/run/systemd/resolve/resolv.conf中。

编辑:我不确定是什么问题,说实话我仍然不知道这是如何工作的,但至少我发现在我的情况下解决方案是禁用systemd-resolved服务。我认为该服务是必需的,它是为所有本地应用程序提供DNS服务的组件,但显然还有其他东西可以完成这项工作。

最佳解决方案

我遇到了类似的问题,例如添加了额外的USB wifi加密狗。首先我如上所述在networkmanager中禁用了dnsmasq,我停止了dnsmasq(服务dnsmasq停止)

我注意到在VPN连接期间解析时,路由表看起来略有不同(路由命令的输出)。如果它不起作用,网关的名称是DD-WRT,当它工作时,只需’gateway’。这个输出没有改变:

nmcli device show wlp1s0 | grep IP4.DNS

它一直显示我的路由器IP。让它工作一段时间的解决方法是重启systemd-resolvd:

sudo service systemd-resolved restart

由于dnsmasq不在等式中,因此导致问题的原因是systemd-resolvd,或者更改路由表的任何内容。

所以这是我看到的唯一区别:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    601    0        0 

哪个有效。这当它不起作用时:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         DD-WRT          0.0.0.0         UG    601    0        0 wlp1s0

并且VPN线上的名称相同:

vpn-dns.name gateway         255.255.255.255 UGH   0      0        0 wlp1s0

谁知道什么可能影响路由表?如果我们能够确定这一点,那么就可以提交错误报告。我正在生病和厌倦了追求所有这些错误,但我想让它们得到修复,以便未来的用户和我们会很高兴:)。

[更新]似乎停止systemd-resolved可以解决这个问题而不会对其他东西产生负面影响。你可以尝试一下,让它知道它是否确实破坏了东西。我看到在调试时运行systemd-resolvd时它崩溃了:

Removing scope on link wlp1s0, protocol llmnr, family AF_INET
Removing scope on link wlp1s0, protocol llmnr, family AF_INET6
Removing scope on link *, protocol dns, family *

要禁用:

sudo systemctl disable systemd-resolved.service

我更新了Ubuntu报告并提出了建议。 [/update]添加:注意:错误报告:https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317针对某些问题提供了17.04的补丁。请检查错误报告,如果可能,请测试补丁。谢谢!

[更新]

请检查上面提到的错误报告,问题似乎已解决为17.10并且使用简单的命令也可以禁用DNS泄漏。

[/更新]

次佳解决方案

当我在ubuntuforums上关注a suggestion时,OpenVPN连接期间的DNS行为立即得到改善:

  1. 在具有root权限的编辑器中打开/etc/NetworkManager/NetworkManager.conf

  2. 删除(或使用散列#注释掉)读取dns=dnsmasq的行

  3. 通过sudo service NetworkManager restart重新启动NetworkManager

第三种解决方案

陷入同样的​​问题。不知何故,我必须在某些应用程序中安装DNSmasq。简单地删除dnsmasq解决了我的问题。

sudo apt-get remove dnsmasq 

从那时起,不再断开连接或某些网站无法加载(我在加载gmail时遇到了问题,即突然之间无法连接到gmail,尽管其他网站都有效)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/3020.html,未经允许,请勿转载。