代理乐趣

代理乐趣

代理乐趣

我使用 Vagrant 和 VMware Workstation 15 在 Windows 10 主机上创建了一个 Ubuntu 18.10 虚拟机。
虚拟机似乎运行良好,包括大多数网络访问。
但对于一台重要的主机,我运气不佳:

$ ping -c 4 production.cloudflare.docker.com
ping: production.cloudflare.docker.com: Temporary failure in name resolution

(当我在 Windows 主机上的 Cygwin 中执行同样的事情时,它运行良好。)

什么应该是原因吗?DNS 名称服务器!

但是,它systemd-resolve --status告诉我它正在使用("Current DNS Server: 8.8.4.4"开启eth0,唯一具有大量 RX 和 TX 量的接口)运行良好当我明确尝试时:

$ dig @8.8.4.4 production.cloudflare.docker.com

; <<>> DiG 9.11.4-3ubuntu5.1-Ubuntu <<>> @8.8.4.4 production.cloudflare.docker.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45235
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
[...]
production.cloudflare.docker.com. 117 IN A      104.18.122.25
production.cloudflare.docker.com. 117 IN A      104.18.121.25
production.cloudflare.docker.com. 117 IN A      104.18.125.25
production.cloudflare.docker.com. 117 IN A      104.18.124.25
production.cloudflare.docker.com. 117 IN A      104.18.123.25

但当我浏览 Ubuntu 的本地代理,查询失败

$ dig production.cloudflare.docker.com

; <<>> DiG 9.11.4-3ubuntu5.1-Ubuntu <<>> production.cloudflare.docker.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 60815
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
[...]
;; SERVER: 127.0.0.53#53(127.0.0.53)

显然,127.0.0.53它并没有按照我的想法运行。(请注意,我是网络新手。)
我错过了什么?

我甚至不确定这到底是 Ubuntu 的问题还是 VMware 的问题。或者是 Vagrant 的问题?
不寒而栗。

答案1

这是三字节的变化!

网络上有很多关于 Ubuntu DNS 故障的报告。与 HackSlash 的答案一样,大多数答案建议将目标名称服务器硬连线到/etc/resolv.conf。但如果我理解正确的话,这将禁用本地缓存,这似乎很愚蠢,而且有点反社会,所以我不想这样做。

问题是什么?

我终于找到了解释https://superuser.com/a/1200745/372846:Ubuntusystemd-resolved显然无法正确处理使用 DNSSEC 的名称服务器。必须关闭 DNSSEC 支持,一切才会好起来。

解决方案

在文件中/etc/systemd/resolved.conf,将该行替换DNSSEC=yesDNSSEC=no;然后通过 重新启动解析器服务sudo systemctl restart systemd-resolved

我剩下的困惑

上面的帖子讨论了 Ubuntu 17.04,当时systemd-resolvedUbuntu 显然还很新。这个答案同一问题指出,在 Ubuntu 的更高版本中将更改为默认设置DNSSEC=no。我使用的是 18.10,但这种情况仍然没有发生——也没有出现完整的 DNSSEC 功能。什么鬼?

答案2

askubuntu 上已经回答了这个问题。有很多解决方案建议您安装不同的解析器。

这个答案说你不需要这样做:

如果你正在寻找一个快速而粗糙的解决方案,你可以配置 systemd-resolved 来全局使用你的 DNS 服务器:

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

然后重新启动systemd-resolved.service或重启。

完整问答: https://askubuntu.com/questions/1012641/dns-set-to-systemds-127-0-0-53-how-to-change-permanently

相关内容