我刚刚从 Ubuntu 17 升级到 18.04,一切似乎都很顺利。
但是,升级后出现了两个问题(可能直接相关的问题)。1、我的 VPN(mullvad)的配置应用程序不再启动,这不是一个太紧迫的问题。2、也许是由于 VPN 应用程序最初管理的一些配置导致我的所有来自浏览器的 DNS 查询都非常慢。
我已经在 Chrome、Firefox 和 Waterfox 上进行了测试,在所有情况下,DNS 查询似乎都需要 5 到 5.2 秒的时间。我假设某个地方的配置不正确,导致 5 秒后超时,然后浏览器继续进行另一次配置并快速得到响应。
另一方面,当我进入命令行并尝试挖掘时,我得到了快速的响应:
$ dig www.disney.com
; <<>> DiG 9.11.3-1ubuntu1-Ubuntu <<>> www.disney.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35027
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.disney.com. IN A
;; ANSWER SECTION:
www.disney.com. 255 IN CNAME matterhornsecure.edgekey.net.
matterhornsecure.edgekey.net. 743 IN CNAME e13055.e12.akamaiedge.net.
e13055.e12.akamaiedge.net. 19 IN A 23.54.221.6
;; Query time: 30 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Jun 04 20:59:26 EDT 2018
;; MSG SIZE rcvd: 137
我将我的 DNS 服务器设置为 Cloudflare DNS 服务器 1.1.1.1,但我不确定这会对此产生什么影响。
以下是我在其他类似主题中看到的一些其他信息:
$ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 11020 bytes 915775 (915.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11020 bytes 915775 (915.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.11.0.19 netmask 255.255.0.0 destination 10.11.0.19
inet6 fdda:d0d0:cafe:1197::1011 prefixlen 64 scopeid 0x0<global>
inet6 fe80::a6e6:1fa2:8d15:cf1 prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 1000 overruns 0 carrier 0 collisions 0
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.7 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::9b85:3e1:c0d1:d2f9 prefixlen 64 scopeid 0x20<link>
inet6 2604:2000:81c2:300::3 prefixlen 128 scopeid 0x0<global>
inet6 2604:2000:81c2:300:b765:7f68:a70b:8ebd prefixlen 64 scopeid 0x0<global>
ether 34:02:86:60:d3:30 txqueuelen 1000 (Ethernet)
RX packets 41063 bytes 49615001 (49.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13120 bytes 2266057 (2.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ nmcli device show wlp2s0 | grep IP4.DNS
IP4.DNS[1]: 1.1.1.1
IP4.DNS[2]: 1.0.0.1
答案1
对我来说,这是在等待 AAAA 查询(IPv6)结束之前响应时超时,尽管记录A
已经解析。对我有用的解决方案是这样的。
将这些行添加到/etc/resolv.conf
(这options
是秘密的酱汁)。
nameserver 1.1.1.1
nameserver 1.0.0.1
options single-request
在桌面系统上,应该将其添加到,/etc/resolvconf/resolv.conf.d/base
因为/etc/resolv.conf
它会自动重写。然后运行以下命令:
sudo resolvconf -u
sudo systemctl restart networking
sudo systemctl restart network-manager
解决方案http://www.math.tamu.edu/~comech/tools/linux-slow-dns-lookup/
答案2
包含一个对我而言很好用的 Firefox dns 设置的截图。
如果您想尝试启用本地缓存名称服务器。
$ sudo apt-get install bind9 bind9utils bind9-doc
$ sudo vi /etc/bind/named.conf.options
并在选项部分下添加以下内容。
forwarders {
8.8.8.8;
8.8.4.4;
};
并重新启动绑定服务。
$ sudo systemctl restart bind9.service
它应该可以使用默认配置来实现相当好的缓存效果。
$ dig www.disney.com
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> www.disney.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2237
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.disney.com. IN A
;; ANSWER SECTION:
www.disney.com. 300 IN CNAME matterhornsecure.edgekey.net.
matterhornsecure.edgekey.net. 7199 IN CNAME e13055.e12.akamaiedge.net.
e13055.e12.akamaiedge.net. 19 IN A 2.19.151.249
;; Query time: 108 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Jul 09 12:48:28 PDT 2018
;; MSG SIZE rcvd: 137
$ dig www.disney.com
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> www.disney.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 732
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.disney.com. IN A
;; ANSWER SECTION:
www.disney.com. 292 IN CNAME matterhornsecure.edgekey.net.
matterhornsecure.edgekey.net. 7192 IN CNAME e13055.e12.akamaiedge.net.
e13055.e12.akamaiedge.net. 12 IN A 2.19.151.249
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Jul 09 12:48:35 PDT 2018
;; MSG SIZE rcvd: 137
请注意,第二个查询根本不需要时间。对我来说,在 Firefox 中进行 dns 查询也不需要时间。
答案3
通常检查 /etc/resolv.conf 的内容会有所帮助。与 @MrBar 相反,我的情况是其中有一些(基本上正确的)条目,但只要我删除这些条目并将每个查询重定向到 systemd-resolved 守护程序(使用“nameserver 127.0.0.53”),Firefox 和所有其他应用程序就不再有问题了。