使用 Arch Linux 时 DNS 查找仅在特定站点上失败

使用 Arch Linux 时 DNS 查找仅在特定站点上失败

标题触及了问题的核心。不过我会提供更多信息。

我在笔记本电脑上运行 Arch Linux,直到最近一切都很顺利。我使用 netctl 连接到 wifi,一切顺利。最近我开始了一份工作,我的工作场所网络使用 WPA2 Enterprise,所以我发现直接使用 wpa_supplicant 连接到那里的网络更容易。然而,一旦我这样做了,我开始遇到 DNS 问题。大多数网站都可以正常加载,但有些网站(如 archlinux.org 和 wikipedia)无法在 chromium 中加载,并返回DNS_PROBE_FINISHED_NXDOMAIN错误。我也无法通过主机名 ping 这些网站,但我可以通过 IP ping 通。

这当然让我想到我工作时路由器提供的 DNS 服务器有问题,所以我创建了一个/etc/resolv.conf.head以便将 Google 的公共 DNS 服务器包含到我的/etc/resolv.conf文件中。然后我运行sudo nscd -i hosts并重新启动,情况有所改善。然后我至少能够访问这些页面,但每个网站的查找时间太长了(约 5 秒)。需要完成工作,所以我就这么解决了。

现在我在家里也遇到了同样的问题,这让人很困惑。我使用netctl以前没有问题的相同配置文件连接到我的家庭 wifi。我想也许谷歌的 DNS 现在造成一个问题,所以我删除了我为解决工作中的问题而创建的 .head 文件。我仍然无法加载相同的网页,例如维基百科。我将 Google 的 DNS 包含在尾部文件中。这是我的resolv.conf文件:

#Generated by resolvconf
domain hsdl.il.comcast.net
nameserver 75.75.75.75
nameserver 75.75.76.76
nameserver 8.8.8.8
nameserver 8.8.4.4

更让我困惑的是,dig当我强制对其中一个问题站点进行 DNS 查找时,没有返回任何错误:

; <<>> DiG 9.13.3 <<>> en.wikipedia.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 164
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;en.wikipedia.org.      IN  A

;; ANSWER SECTION:
en.wikipedia.org.   292 IN  A   208.80.154.224

;; Query time: 33 msec
;; SERVER: 75.75.75.75#53(75.75.75.75)
;; WHEN: Thu Oct 11 17:22:03 CDT 2018
;; MSG SIZE  rcvd: 61

我对这个内容的理解并不完善,但是这向我表明,当使用 dig 时我能够真正解析主机名,但在 ping 或在浏览器中时它仍然不起作用。

任何指点都将不胜感激。我知道这里有类似的问题,但我读过的问题对这个问题没有多大帮助。

谢谢

答案1

简短回答:最有可能是时区或系统时间问题。将计算机设置为正确的时间和时区,问题可能就会解决。

长答案:我今天遇到了同样的问题。当我通过以下方式检查我的 systemd-resolved.service 日志时

journalctl -u systemd-resolved.service

它输出了一堆以下形式的错误:

DNSSEC validation failed for question en.wikipedia.org IN A: signature-expired

例如。这意味着 DNS 因过期签名引起的安全问题而失败。由于 wikipedia.org 可能不使用过期签名,因此这暗示系统它已过期但实际上并未过期,因此,这一定是系统时钟问题。

我不确定这是因为我处于与正常工作地点不同的时区,还是因为已知的windows与linux时间冲突导致我的 Linux 分区使用错误的时间,但无论如何,修复有效。

希望这能帮助其他偶然发现此问题的人!

相关内容