DNS 无法解析某些特定主机名(例如 fortune.com)Ubuntu 17.04

DNS 无法解析某些特定主机名(例如 fortune.com)Ubuntu 17.04

最近我的 Ubuntu 17.04 无法解析某些主机(测试:http://www.fortune.com); 这网站已启动,并与同一台笔记本电脑同一个路由器(和 ISP)在双启动到 Windows 后,我可以访问该网站。

现在:

$ ping fortune.com 
ping: fortune.com: Name or service not known

$ nslookup fortune.com 
Server:     127.0.0.53
Address:    127.0.0.53#53

Non-authoritative answer:
*** Can't find fortune.com: No answer

$ dig fortune.com     
; <<>> DiG 9.10.3-P4-Ubuntu <<>> fortune.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50367
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;fortune.com.           IN  A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Jun 16 06:19:32 PDT 2017
;; MSG SIZE  rcvd: 40

$ grep fortune.com /etc/hosts
{nothing}

/etc/resolve.conf只有,这nameserver 127.0.0.53显然是正常的。

$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

以下为摘录systemd-resolve --status

Link 3 (wlan0)
      Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.1

尝试后dig @8.8.8.8 fortune.com,我得到以下结果:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @8.8.8.8 fortune.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64088
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;fortune.com.           IN  A

;; ANSWER SECTION:
fortune.com.        59  IN  A   52.84.243.243
fortune.com.        59  IN  A   52.84.243.134
fortune.com.        59  IN  A   52.84.243.109
fortune.com.        59  IN  A   52.84.243.9
fortune.com.        59  IN  A   52.84.243.135
fortune.com.        59  IN  A   52.84.243.225
fortune.com.        59  IN  A   52.84.243.176
fortune.com.        59  IN  A   52.84.243.62

;; Query time: 40 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jun 16 14:49:37 PDT 2017
;; MSG SIZE  rcvd: 168

注意:这些 IP 地址实际上都无法通过浏览器访问(但也许是设计使然);直接浏览这些 URL(http://52.84.243.9) 返回:

ERROR The request could not be satisfied. Bad request.
Generated by cloudfront (CloudFront)

这是“成功”吗?解决方法是将我的 DNS 服务器更改为 google(8.8.8.8、8.8.4.4?)吗?但问题是什么实际的问题?

编辑:我尝试使用咖啡馆的 wifi 而不是我家里的康卡斯特 wifi,但仍然无法访问该网站。诊断结果相同:dig @8.8.8.8 fortune.com返回相同的结果,内容/etc/resolv.conf仍为127.0.0.53。尽管我最终能够为这个咖啡馆的 wifi 连接添加 IPv4 和 IPv6 的“附加 DNS 服务器”(“保存”已启用 - 但我不知道为什么它在我的家庭 wifi 上是只读的),但没有变化。正如预期的那样,systemd-resolve --status返回10.1.10.1而不是192.168.1.1。否则,仍然很困惑。

Ubuntu DNS + 解析域名有什么奇怪吗fortune.com

答案1

这显然是“用户错误”,因为该问题是由手动配置导致的。我在 中列出了许多/etc/hosts通过禁用 DNS 解析而被“阻止”的主机:对于这些主机,我将 IP 设置为手动解析为0.0.0.0;这适用于纯广告/弹出窗口/可疑/等的网站。

我最初以为/etc/hosts这可能是一个问题,但我确实不是那里有任何带域 的主机fortune.com。经过反复尝试,我能够确定禁用主机名*.webtrendslive.com(通过将其 IP 地址设置为 0.0.0.0)也会以某种方式禁用fortune.com。最终效果:我可以“ping”webtrendslive.com,它解析为 127.0.0.1,但无法 ping fortune.com,而是收到错误“名称或服务未知”。尽管我可以将其归咎于用户错误,但我实际上并不明白是什么原因造成的(请随意启发我,任何人。)

相关内容