我刚刚在家庭网络上安装了一台运行 Ubuntu 10.04 的新机器。出于某种奇怪的原因,我无法访问www.google.com
。所有其他域名都运行正常,甚至谷歌搜索子域名也是如此docs.google.com
。我不知道问题出在哪里。
curl http://www.google.com/
curl: (6) Could not resolve host: www.google.com; nodename nor servname provided, or not known
ping www.google.com
ping: cannot resolve www.google.com: Unknown host
dig www.google.com
; <<>> DiG 9.7.3-P3 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 51258
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 54813 IN CNAME www.l.google.com.
;; Query time: 46 msec
;; SERVER: 192.168.3.1#53(192.168.3.1)
;; WHEN: Tue Jan 10 14:48:35 2012
;; MSG SIZE rcvd: 52
301重定向google.com
可以访问,而 则不www.google.com
可以。
答案1
您dig
返回的结果不完整,这是我得到的:
$ dig www.google.com
; <<>> DiG 9.2.1 <<>> www.google.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54679
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 4, ADDITIONAL: 4
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 0 IN CNAME www.l.google.com.
www.l.google.com. 263 IN A 209.85.229.99
www.l.google.com. 263 IN A 209.85.229.103
www.l.google.com. 263 IN A 209.85.229.104
www.l.google.com. 263 IN A 209.85.229.105
www.l.google.com. 263 IN A 209.85.229.147
;; AUTHORITY SECTION:
l.google.com. 33378 IN NS ns3.google.com.
l.google.com. 33378 IN NS ns4.google.com.
l.google.com. 33378 IN NS ns1.google.com.
l.google.com. 33378 IN NS ns2.google.com.
;; ADDITIONAL SECTION:
ns1.google.com. 193146 IN A 216.239.32.10
ns2.google.com. 193146 IN A 216.239.34.10
ns3.google.com. 193463 IN A 216.239.36.10
ns4.google.com. 193146 IN A 216.239.38.10
;; Query time: 147 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Jan 10 16:23:30 2012
;; MSG SIZE rcvd: 268
特别是你挖掘得到的答案缺少A
以下记录www.l.google.com.
我会用wireshark或类似工具来查看 DNS 查询发送到哪里以及收到的 DNS 回复。比较工作和非工作 PC 上的结果。
答案2
当您dig
注册 A 记录时,您的 DNS 服务器返回了没有额外记录的 CNAME。这很奇怪,可能表示服务器无法解析 www.l.google.com。
“google.com” 有效,因为 CNAME 不能与“@”记录一起使用,因此必须直接返回 A 记录。也许 DNS 服务器 192.168.3.1 正在过滤 l.google.com 域。检查它是否为dig @8.8.8.8 www.google.com
您提供 A 记录。如果是,您可能需要更改 DNS 服务器。
答案3
DNS 解析似乎有问题。可能是 ISP 的 DNS 缓存有问题。您可以直接使用 Google 的 DNS 服务器“8.8.8.8”进行检查。
lab@x:~$ dig www.google.com @8.8.8.8
; <<>> DiG 9.7.3 <<>> www.google.com @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30985
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 81660 IN CNAME www.l.google.com.
www.l.google.com. 113 IN A 74.125.236.84
www.l.google.com. 113 IN A 74.125.236.80
www.l.google.com. 113 IN A 74.125.236.81
www.l.google.com. 113 IN A 74.125.236.82
www.l.google.com. 113 IN A 74.125.236.83
;; Query time: 42 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jan 12 00:25:58 2012
;; MSG SIZE rcvd: 132
lab@x:~$
如果运行正常,那么你可以改变
lab@x:~$ cat /etc/resolv.conf
使用此 DNS 服务器,然后尝试发送 curl 请求。