1、问题描述

ping不通域名,比如“ping www.baidu.com”时,报错“ping: unknown host www.baidu.com”。这是因为ubuntu默认情况下没有设置DNS。
在ubuntu上设置DNS的方法,修改“/etc/resolv.conf”,添加“nameserver 8.8.8.8”,但是重启后就失效了。

2、原因查找

在“/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

这里已经明确说明,resolv.conf是由resolvconf命令动态生成的,不要编辑这个文件。

resolvconf是什么?

resolvconf 是"域名服务信息"管理工具,说白了就是管理ubuntu系统的DSN,包括添加、删除、更新、使能或禁止更新等。
使用方法:resolvconf (-d IFACE|-a IFACE|-u|–enable-updates|–disable-updates|–updates-are-enabled)
可以使用man查看详细信息:man resolvconf

如何生成的resolv.conf?

ubunut启动后调用初始化脚本:/etc/init.d/resolvconf start

 83   start)84     # The "start" method should only be used at boot time.85     # Don't run this on package upgrade, for example.86     log_action_begin_msg "Setting up resolvconf"87     # Wipe runtime directories in case they aren't on a tmpfs88     wipe_runtime_directories89     # Create runtime directories in case they are on a tmpfs90     create_runtime_directories91     # Request a postponed update (needed in case the base file has content).92     :> "$POSTPONED_UPDATE_FLAGFILE" || log_action_end_msg_and_exit 1 "failed requesting update"93     # Enable updates and perform the postponed update.94     resolvconf --enable-updates || log_action_end_msg_and_exit 1 "failed to enable updates"95     log_action_end_msg_and_exit 096     ;;

对上面这段脚本的解释:
首先,注释里面提示==/etc/init.d/resolvconf start==只能在系统启动时调用一次,因为它会在/run/中创建resolvconf及相关文件目录。
wipe_runtime_directories:清除/run/resolvconf目录
create_runtime_directories:创建/run/resolvconf/interface目录
:> “$POSTPONED_UPDATE_FLAGFILE” 创建文件 /run/resolvconf/postponed-update,这个文件下面会用到。
resolvconf --enable-updates:resolvconf路径是/sbin/resolvconf
/sbin/resolvconf也是一个脚本,执行 --enable-updates 选项

--enable-updates): >| "$ENABLE_UPDATES_FLAGFILE" || exit 1if [ -e "$POSTPONED_UPDATE_FLAGFILE" ] ; then(update_and_exit -u) || :fiexit 0

对上面这段脚本的解释:
创建文件 /run/resolvconf/enable-updates;
如果文件 /run/resolvconf/postponed-update存在,则执行(update_and_exit -u),这个文件在上面的步骤中已经创建;
update_and_exit函数如下

 56 update_and_exit()57 {58     rm -f "$POSTPONED_UPDATE_FLAGFILE"59     exec run-parts ${1:+--arg="$1"} ${2:+--arg="$2"} /etc/resolvconf/update.d60 }

删除:/run/resolvconf/postponed-update
run-parts功能:批量执行目录下的脚本;
/etc/resolvconf/update.d下只有一个脚本libc;
libc功能是用 /etc/resolvconf/resolv.conf.d 目录下的三个文件head、base、tail生成/run/resolvconf/resolv.conf,并创建软链接/etc/resolv.conf

3、解决方法

要想设置永久的DNS,一个正经的办法是修改 /etc/resolvconf/resolv.conf.d/base

nameserver 8.8.8.8
nameserver 8.8.4.4

修改完后执行:

/sbin/resolvconf -u

再重启后就不用再设置DNS了

【Ubuntu】在Ubuntu中设置永久的DNS相关推荐

  1. ubuntu实现中文输入法_在Ubuntu 18.04中设置中文输入法

    (本文系搬运,图片来自网络,侵删.英语为自己翻译,水平有限,欢迎指点) Setup Chinese Input Method in Ubuntu 18.04 Fri Oct 20 2017 The o ...

  2. 在局域网络中计算机,如何在计算机局域网中设置IP和DNS服务器地址

    什么是计算机局域网的IP和DNS服务器地址,那么如何设置计算机局域网的IP和DNS服务器地址?以下是如何设置小编收集的计算机局域网的IP和DNS服务器地址. 有用~~ 在计算机局域网上设置IP和DNS ...

  3. Ubuntu 12.04中设置安装Google拼音输入法

    写在最前 好久没写文章了,随着近期时间的充裕,肯定会加快会博文更新的速度.言归正传,在安装英文Linux系统后(作为开发来说,本人更倾向于安装英文语言环境 的Linux系统,这样各种提示,尤其是错误提 ...

  4. Ubuntu 18.04中设置1920x1080_60.00分辨率和刷新率

    1.在显示应用程序中找到终端,或者按快捷键CTRL+ALT+T 调出终端. 2.输入xrandr,去获取现有的分辨率. 3. 如果当前列表中有1920*1080的分辨率,输入xrandr --size ...

  5. Ubuntu中设置静态IP和DNS

    在Ubuntu中设置静态IP共两步:1>设置IP:2>设置DNS 1>设置IP     编辑 /etc/network/interface文件:         sudo vi /e ...

  6. Ubuntu 永久修改DNS

    Ubuntu 设置 DNS 服务器 /etc/resolv.conf文件是被系统文件所管理的,它只能对本次有效,下次启动就不能用了 /etc/systemd/resolved.conf这个文件是直接被 ...

  7. centos8 配置 dns_如何在Ubuntu 18.04上设置DNS名称服务器 | linux资讯

    域名系统(DNS)是网络基础设施的核心部分,提供了将域名转换为IP地址的方法.您可以将DNS视为Internet的电话簿. 连接到Internet的每个设备都由其IP地址唯一标识.当您在浏览器中输入要 ...

  8. linux mint 修改dns,如何在Ubuntu和LinuxMint中刷新DNS缓存

    本篇文章给大家介绍的内容是关于如何在Ubuntu和LinuxMint中刷新DNS缓存,下面我们来看具体的内容. 域名系统(DNS)是互联网的主干网之一.你无法想象在全球数百万用户的公共网络上运行网站. ...

  9. [快速技巧]通过命令在 Debian/Ubuntu 中设置默认浏览器

    [快速技巧]通过命令在 Debian/Ubuntu 中设置默认浏览器 img 嘿,伙计们! 在这篇文章中,我们将使用终端设置默认浏览器. 虽然,使用浏览器主界面来设置默认浏览器很方便,但是有时,你需要 ...

最新文章

  1. oracle配置首选项主目录名_ArduinoIDE安装与配置
  2. C/C++ putchar函数 - C语言零基础入门教程
  3. boost.asio学习-----reslover 域名解析
  4. 电信wifi服务器不响应,电信老员工告诉你,为什么你家WiFi信号满格却上不了网?...
  5. 十个实用的谷歌搜索小技巧
  6. centos7救援模式--rescue模式
  7. java中操作docker
  8. 剖析锂电池的工作原理
  9. Kruskal vs Borůvka
  10. 最新!2016中国城市GDP排名出炉
  11. linux手动连接网络打印机驱动_中兴新支点Linux操作系统添加网络打印机的方法...
  12. 小米路由器微信连接到服务器,小米路由器怎么设置微信好友免密码直接链接上网?...
  13. 门徒Disciples体系:致力于成为“DAO世界”中的集大成者。
  14. HTML学习记录三 :创建电子邮件链接
  15. 程序员自学理财8~理财必读《富人思维》精典笔记
  16. No module named 'gensim'
  17. Android页面监听虚拟键盘弹出、收起
  18. 【Excel办公技能图文教程】
  19. web移动开发总结(四)
  20. 标自然段的序号格式_正确的序号及标点使用格式

热门文章

  1. 基于pytorch的卷积神经网络量化实现
  2. 【机器视觉案例】(13) 脸部和摄像机间的距离测量,自适应文本大小,附python完整代码
  3. C语言实现bmp图像几何变换(移动,旋转,镜像,转置,缩放)
  4. php禁止网页抓取,服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站 - 龙笑天下...
  5. 【系列文章】面向自动驾驶的三维点云处理与学习(2)
  6. 相机标定 matlab opencv ROS三种方法标定步骤(1)
  7. 关闭、刷新、跳转、离开当前网页前提示
  8. Maya 2020面部绑定动画学习视频教程 Facial Rigging 101 – Maya 2020
  9. gprof 性能优化工具
  10. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码