moo*_*oom 39 dns ubuntu systemd
我升级到 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 就停止了故障。
Saj*_*ani 48
截至 2017 年 4 月 18 日,Ubuntu 17.04 无法解析支持 DNSSEC 的 DNS 服务器。使用此守护程序禁用 DNSSEC:
sudo mkdir -p /etc/systemd/resolved.conf.d
printf "[Resolve]\nDNSSEC=no\n" | sudo tee /etc/systemd/resolved.conf.d/no-dnssec.conf
Run Code Online (Sandbox Code Playgroud)
如果您弄乱了 resolvconf,可以选择重新配置它(对“准备 /etc/resolve.conf 以进行动态更新?”说“是”):
sudo dpkg-reconfigure resolvconf
Run Code Online (Sandbox Code Playgroud)
重启 systemd 解决:
sudo systemctl restart systemd-resolved
Run Code Online (Sandbox Code Playgroud)
您的 DNS 应该开始工作。您可以通过尝试systemd-resolve www.google.com
和查看响应来进行检查。
moo*_*oom 13
我一直在 systemd-resolved 和手动 /etc/resolv.conf 管理之间来回切换,但还没有发现 systemd DNS 解析器机制稳定。
Ubuntu 16.10 中显然至少有一个libnss 错误,而且显然仍在 17.04 中。自从 Ubuntu 16.10 开启 systemd-resolved 以来,有很多人遇到 DNS 问题,这里是一个分析,这里是另一个人的解决方法。在我用 google 的 DNS 服务器手动覆盖 /etc/resolv.conf 之前,它们都没有为我工作。
nameserver 8.8.8.8 << or another if you don't trust google
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)
如果您不需要动态 DNS 配置,这是一个完全有效的解决方案。只要确保您停止并禁用 systemd-resolved:
sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
44776 次 |
最近记录: |