- 不要直接手动修改文件 /etc/resolv.conf
安装好Ubuntu之后设置了静态IP地址,再重启后就无法解析域名。想重新设置一下DNS,打开/etc/resolv.conf
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
内容是一段警告:说这个文件是resolvconf程序动态创建的,不要直接手动编辑,修改将被覆盖。
root@Ubuntu14:~# 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 100.100.2.138 nameserver 100.100.2.136 options timeout:2 attempts:3 rotate single-request-reopen root@Ubuntu14:~#
ubuntu修改DNS有如下两种方法。
- 方法一:修改文件/etc/resolvconf/resolv.conf.d/base
root@Ubuntu14:~# 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 100.100.2.138 nameserver 100.100.2.136 options timeout:2 attempts:3 rotate single-request-reopen root@Ubuntu14:~# vim /etc/resolvconf/resolv.conf.d/base root@Ubuntu14:~# cat !$ cat /etc/resolvconf/resolv.conf.d/base nameserver 223.5.5.5 nameserver 223.6.6.6 root@Ubuntu14:~# resolvconf -u root@Ubuntu14:~# 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 100.100.2.138 nameserver 100.100.2.136 nameserver 223.5.5.5 options timeout:2 attempts:3 rotate single-request-reopen root@Ubuntu14:~# nslookup www.baidu.com Server: 100.100.2.138 Address: 100.100.2.138#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 220.181.112.244 Name: www.a.shifen.com Address: 220.181.111.188 root@Ubuntu14:~#
- 方法二:修改文件 /etc/network/interfaces
root@iZbp1b66g5htibj2m7yyv3Z:~# cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp dns-nameservers 223.5.5.5 # 在最后添加这一行
- 常用命令
linux刷新dns的缓存方法是: sudo /etc/init.d/nscd restart
最暴力的方法刷dns,重启网络: sudo /etc/init.d/networking restart
查看当前DNS解析情况:
nslookup www.baidu.com
dig | grep SERVER
root@iZbp1b66g5htibj2m7yyv3Z:~# /etc/init.d/nscd restart * Restarting Name Service Cache Daemon nscd [ OK ] root@iZbp1b66g5htibj2m7yyv3Z:~# /etc/init.d/networking restart stop: Job failed while stopping start: Job is already running: networking root@iZbp1b66g5htibj2m7yyv3Z:~# dig |grep SERVER ;; SERVER: 100.100.2.138#53(100.100.2.138) root@iZbp1b66g5htibj2m7yyv3Z:~# nslookup www.baidu.com Server: 100.100.2.138 Address: 100.100.2.138#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 220.181.111.188 Name: www.a.shifen.com Address: 220.181.112.244 root@iZbp1b66g5htibj2m7yyv3Z:~#
- CoreOS修改DNS
1) vim /etc/resolv.conf
2) vim /etc/systemd/resolved.conf
3) systemctl restart systemd-resolved
4) reboot
coreos1 ~ # cat /etc/resolv.conf # This file is managed by man:systemd-resolved(8). Do not edit. # # This is a dynamic resolv.conf file for connecting local clients directly to # all known DNS servers. # # Third party programs must not access this file directly, but only through the # symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way, # replace this symlink by a static file or a different symlink. # # See man:systemd-resolved.service(8) for details about the supported modes of # operation for /etc/resolv.conf. nameserver 223.5.5.5 nameserver 223.6.6.6 search openstacklocal coreos1 ~ # cat /etc/systemd/resolved.conf # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # Entries in this file show the compile time defaults. # You can change settings by editing this file. # Defaults can be restored by simply deleting this file. # # See resolved.conf(5) for details [Resolve] DNS=223.5.5.5 223.6.6.6 # 用空格分隔多个dns #FallbackDNS= #Domains= LLMNR=no # yes改为no #DNSSEC=allow-downgrade #Cache=yes coreos1 ~ # systemctl restart systemd-resolved coreos1 ~ # dig |grep SERVER ;; SERVER: 223.5.5.5#53(223.5.5.5) coreos1 ~ # reboot