如何在 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
摈弃世俗浮躁,追求技术精湛
Summer
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!