如何在 Ubuntu 16 中修改 DNS 服务器?
问题
一个项目里 CURL 请求偶尔报错:
cURL error 28: Resolving timed out after 5515 milliseconds
发现是 DNS 不稳定,故修改系统 DNS,系统是 Ubuntu 16.04.4 LTS ,其他版本没试过,大家如果在其他系统下试过可行,请在评论里说明下。
解决
先查看目前的 DNS 信息:
$ cat /etc/resolv.conf
不要手动修改 /etc/resolv.conf
,因为此文件动态生成的,先看下文件:
$ cat /etc/network/interfaces
最后一行的 dns-nameservers
是我们的目标,开始修改:
$ vi /etc/network/interfaces
比较知名的公共 DNS 可以请问这里查看 https://www.ip.cn/dns.html ,这里选择 114 和 阿里的 DNS:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.x.23.xxx
netmask 255.255.0.0
gateway 10.x.0.x
mtu 1454
dns-nameservers 114.114.114.114 114.114.115.115 223.5.5.5
最后面 dns-nameservers
是 DNS ,修改最后一行即可,修改完成后:
$ ifdown eth0 && sudo ifup eth0
重启成功后,确认是否应用上:
$ 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
nameserver 114.114.114.114
nameserver 114.114.115.115
nameserver 223.5.5.5