当我尝试做 wget 时http://www.google.com在我的 Raspberry Pi 上,我在超过 6 秒的时间内没有收到响应,几乎所有时间都在下面的输出停留在“正在解析 www.google.com (www.google.com)...”上
$ time wget http://www.google.com
--2016-12-09 16:39:57-- http://www.google.com/
Resolving www.google.com (www.google.com)... 74.125.68.103, 74.125.68.99, 74.125.68.105, ...
Connecting to www.google.com (www.google.com)|74.125.68.103|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’
index.html [ <=> ] 10.67K --.-KB/s in 0.009s
2016-12-09 16:40:03 (1.13 MB/s) - ‘index.html’ saved [10922]
real 0m5.707s
user 0m0.010s
sys 0m0.020s
这表明存在 DNS 问题。我尝试通过在 /etc/resolv.conf 中添加超时并注释掉本地 192.168.1.1 服务器来解决此问题,但这对延迟没有影响:
$ cat /etc/resolv.conf
# Generated by resolvconf
option timeout: 5
domain domain_not_set.invalid
#nameserver 192.168.1.1
nameserver 4.2.2.2
nameserver 8.8.8.8
nameserver 8.8.4.4
当我尝试自行执行 nslookup 时,它会立即返回。见下文。
可能出了什么问题?
$ time nslookup www.google.com
Server: 4.2.2.2
Address: 4.2.2.2#53
Non-authoritative answer:
Name: www.google.com
Address: 74.125.200.105
Name: www.google.com
Address: 74.125.200.103
Name: www.google.com
Address: 74.125.200.104
Name: www.google.com
Address: 74.125.200.106
Name: www.google.com
Address: 74.125.200.147
Name: www.google.com
Address: 74.125.200.99
real 0m0.063s
user 0m0.030s
sys 0m0.000s
编辑:重新启动我的家庭路由器没有什么区别。网络上的其他客户端(例如我的 MacBook Pro 和我的手机)在浏览网页时没有类似的延迟。
编辑:sudo apt-get install bind9
我发现了一个通过安装然后添加nameserver 127.0.0.1
到 /etc/resolv.conf 顶部来修复此问题的拼凑。我在以下位置找到了这个建议这个链接,这表明这是一个 IPV6 问题。但是,这不是一个好的解决方案,因为每次重新启动时,我的 /etc/resolv.conf 都会重新生成,我添加的行会被删除,然后我的问题又会出现。我尝试将 127.0.0.1 添加到 /etc/network/interfaces 中,dns-nameservers 8.8.8.8 8.8.4.4 127.0.0.1
但这会使其他名称服务器在网络重新启动时消失。
答案1
nameserver 4.2.2.2
从域服务器列表中删除。
除非您是 3 级客户,在这种情况下您需要直接联系他们以询问名称解析速度慢的原因。