用resolvconf配置DNS服务器
2020-05-26 22:45:04 +08 字数:1164 标签: Linux上手一个Deepin,在家里的环境下,网络访问特别慢。
域名解析太慢 ¶
利用ping baidu.com
来检查,发现各项指标均正常,但是会在出结果前卡很久!
$ ping baidu.com
PING baidu.com (39.156.69.79) 56(84) bytes of data. (这里卡很久!)
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=49 time=35.3 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=49 time=40.0 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=3 ttl=49 time=35.6 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=4 ttl=49 time=36.5 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=5 ttl=49 time=35.7 ms
^C
--- baidu.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4030ms
rtt min/avg/max/mdev = 35.396/36.669/40.036/1.738 ms
如果换成ping 39.156.69.79
,则出结果的速度会快很多。
这就是典型的DNS解析太慢的问题。
国内的DNS ¶
一般在网上看到的方案是,改成谷歌的8.8.8.8
或8.8.4.4
。
实测很慢,切勿盲从。
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=51 time=1075 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=51 time=77.4 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=51 time=36.6 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=51 time=32.7 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=51 time=38.3 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=51 time=35.0 ms
^C
--- 8.8.8.8 ping statistics ---
9 packets transmitted, 6 received, 33% packet loss, time 8049ms
rtt min/avg/max/mdev = 32.770/216.025/1075.922/384.863 ms, pipe 2
某些环境下,这个配置的延迟与丢包都不太理想。 所以,反正现在靠DNS也无法翻墙了,还是配置成国内的比较实在。
提供者 | 首选DNS | 备用DNS |
---|---|---|
北京联通 | 202.106.0.20 |
202.106.196.115 |
南方电信 | 180.153.225.136 |
|
阿里 | 223.5.5.5 |
223.6.6.6 |
百度 | 180.76.76.76 |
|
腾讯 | 119.29.29.29 |
182.254.116.116 |
360 | 101.226.4.5 |
|
114 | 114.114.114.114 |
114.114.115.115 |
上面列出的一些公共DNS,应该有一个适合。
至于是哪一个,绝对不能看品牌,一定要亲自一个个ping
过去,找到延迟低于20ms的。
安装resolvconf ¶
默认情况下,Deepin并没有安装resolvconf
,这可能是问题的关键。
sudo apt install resolvconf
一般直接使用的是/etc/resolv.conf
文件。
安装了resolvconf
后,不仅多了对应的可执行文件,还新增了/etc/resolvconf/
这个配置目录。
其中,主要有三个配置。
/etc/resolvconf/resolv.conf.d/base
:在自动生成的resolv.conf
为空时,替换它。/etc/resolvconf/resolv.conf.d/head
:在自动生成的resolv.conf
前添加。/etc/resolvconf/resolv.conf.d/tail
:在自动生成的resolv.conf
后添加。
一般使用的是head
。
在其中添加以下内容(具体的IP则根据自己的实测情况选择):
nameserver 114.114.114.114
nameserver 8.8.8.8
修改后,执行以下命令。
它会立即更新resolv.conf
文件,即刻生效。
sudo resolvconf -u
修改DNS ¶
临时修改方案是,直接改/etc/resolv.conf
文件,在前面添加。
比如孤的环境下,是添加这个:
nameserver 180.76.76.76
文件更新后,配置立即生效。 但重启后,配置失效。这个配置,每次网络服务重启时,会自动生成。
永久方案是,修改/etc/resolvconf/resolv.conf.d/head
,添加一个最快的nameserver
。
修改完成后,更新resolv.conf
或重启network-manager
生效:
sudo resolvconf -u
# or
sudo systemctl restart network