标题触及了问题的核心。不过我会提供更多信息。
我在笔记本电脑上运行 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 分区使用错误的时间,但无论如何,修复有效。
希望这能帮助其他偶然发现此问题的人!