我升级到 Ubuntu 17.04,它现在似乎有一个新的 DNS 解析器机制,首先在 Ubuntu 16.10 中引入。
我现在有 50% 的时间遇到 DNS 查找失败。 对 nslookup 的所有其他调用都失败了,其中一半的调用可以正常解决,而另一半给出了这个:
watch -n 1 nslookup google.com
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find google.com: SERVFAIL
Run Code Online (Sandbox Code Playgroud)
据我了解,该 DNS 服务器 IP 地址现在用于表示 systemd-resolved,它执行某种元查找以避免较慢的 DNS 查询(或其他...)。我在过去一周升级到 17.04 的两台机器上看到完全相同的行为。
知道这里的问题是什么,以及解决它的正确方法吗?
升级前一切正常(从 16.04 或 16.10 开始,我不记得是哪个,抱歉)。我认为 17.04 是一个 LTS 版本,但现在我看到我跳了起来,直到 4 月它才会被认为是稳定的。所以……我来了。
另外值得注意的是……浏览器似乎没有出现问题,但 nslookup、ping、git 等会出现问题。
更新
在我的特殊情况下,我的 /etc/hosts 文件是一个符号链接(因为我是一个狂热的 stow 用户)。Systemd 出于某种原因讨厌这种情况,并将其视为“权限失败”。一旦我用实际文件替换了符号链接,systemd 就停止了故障。