背景

这是由于ubuntu 12.04之后版本系统,DNS文件由resolvconf模块接管。直接修改/etc/resolv.conf文件不生效,重启后会还原。

参考文档

##
http://www.jinbuguo.com/systemd/resolved.conf.html##
http://www.jinbuguo.com/systemd/systemd.network.html##

实践修改

systemd-resolved 服务是用来提供本机应用软件与DNS 解析服务的,其包含解析主机名称、IP 地址、域名、DNS 资源记录等,Ubuntu修改DNS就需要通过此服务来完成!

##
sudo vim  /etc/systemd/resolved.conf## 添加如下
DNS=8.8.8.8 114.114.114.114### 重启
sudo systemctl restart systemd-resolved### 开机启动
sudo systemctl enable systemd-resolved## 实际生效的文件
cat /run/systemd/resolve/resolv.conf 

为什么是systemd-resolve来实现的?

因为我们通过ss或者netstat 可以找到它在运行。

##
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:9001            0.0.0.0:*               LISTEN      3178/docker-proxy
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      830/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1068/sshd
tcp6       0      0 :::9001                 :::*                    LISTEN      3183/docker-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      1068/sshd

关于 resolved.conf 文件部份参数的解释:

# 指定 DNS 服务器,以空白分隔,支持 IPv4 或 IPv6 位置
DNS=8.8.8.8 114.114.115.115
# 备用 DNS 服务器
FallbackDNS=8.8.8.8
# 设置搜索域名
Domains=your.com.tw
# 设置 LLMNR 是否激活,可用的选项有 yes、no、resolve
LLMNR=yes
# 设置 MulticastDNS 是否激活,可用的选项有 yes、no、resolve
MulticastDNS=yes
# 设置 DNSSEC 是否激活,可用的选项有 yes、no、allow-downgrade
DNSSEC=yes
# 设置缓存是否激活,可用的选项有 yes、no、no-negative
Cache=no-negative

systemd-resolved从哪获得要使用的dns服务器

使用如下命令查看:

xx:~# systemd-resolve --status
GlobalDNSSEC NTA: 10.in-addr.arpa16.172.in-addr.arpa168.192.in-addr.arpa17.172.in-addr.arpa18.172.in-addr.arpa19.172.in-addr.arpa20.172.in-addr.arpa21.172.in-addr.arpa22.172.in-addr.arpa23.172.in-addr.arpa24.172.in-addr.arpa25.172.in-addr.arpa26.172.in-addr.arpa27.172.in-addr.arpa28.172.in-addr.arpa29.172.in-addr.arpa30.172.in-addr.arpa31.172.in-addr.arpacorpd.f.ip6.arpahomeinternalintranetlanlocalprivatetestLink 2 (ens160)Current Scopes: DNSLLMNR setting: yes
MulticastDNS setting: noDNSSEC setting: noDNSSEC supported: noDNS Servers: 10.1.1.1188.8.8.8

解析:

Global中的Current DNS Server选项是由/etc/systemd/resolved.conf决定的,Link 2中的Current DNS Server选项是由/etc/network/interfaces或者/etc/netplan/50-cloud-init.yaml文件决定的。

systemd-resolved会同时向Global和Link2中的Current DNS Server发出域名解析请求。

如果想要 和/etc/resolv.conf 一致可以如下操作:

# 备份 systemd-resolved 托管文件 resolv.conf
sudo mv /etc/resolv.conf /etc/resolv.conf.bak### 重新生成托管文件
sudo ln -s /run/systemd/resolve/resolv.conf /etc/## 重启 NetworkManager
sudo systemctl restart NetworkManager

分离DNS

设想一个这样的场景,使域名解析请求被发送到指定的dns服务器上。
修改/etc/systemd/resolved.conf为下面的:

[Resolve]
DNS=202.96.134.133
Domains=~qq.com

设置默认后缀

修改 /etc/systemd/resolved.conf 为下面的:

[Resolve]
DNS=202.96.134.133
Domains=yeyese.top

如何让 /etc/resolv.conf 不覆盖

mv /etc/resolv.conf /etc/resolv.conf.bak
ln  -s   /run/systemd/resolve/resolv.conf    /etc/

修改Ubuntu的DNS详解相关推荐

  1. php mysql修改命令_PHP编程:mysql alter table命令修改表结构实例详解

    <PHP编程:mysql alter table命令修改表结构实例详解>要点: 本文介绍了PHP编程:mysql alter table命令修改表结构实例详解,希望对您有用.如果有疑问,可 ...

  2. Linux和Ubuntu的区别详解

    近有很多人问小编,Linux和Ubuntu的区别是什么,我们用户应该如何选择? 想知道Linux和Ubuntu的区别,首先我们要明白,什么是Linux,什么是Ubuntu. 下面就此问题,小编今天专门 ...

  3. CentOS修改root密码-图文详解

    目录 单用户模式修改root密码-图文详解 单用户模式修改root密码-图文详解 1.开机出现读条界面时,点击键盘 e 键进入编辑模式 2.按方向键进行滑动,找到 linux 开头的行,将 ro 修改 ...

  4. Linux系统DNS详解(BIND)

    一.Linux运维实战之DNS基础     DNS服务作为网络的一种基础架构,在网络中有举足轻重的地位.它担负着整个网络用户计算机的名称解析工作.没有正确的名称解析,服务器就无法识别各客户机.我们在日 ...

  5. 如何修改计算机软件id号,详解使用软件快手修改ID的操作流程

    我们在很多的软件短视频还有很多的视频的软件的使用中,有很多的小伙伴喜欢使用快手来查看我们的视频,那在快手软件的使用中,有小伙伴提问下想要知道快手ID是怎么修改的呢,对于不知道怎么修改快手ID的小伙伴今 ...

  6. HuaWei ❉ DNS详解

    一 什么是 DNS 协议 在学习 DNS 协议之前,我们先区分一下域名和 IP 地址这个两个概念: 「IP 地址」:一长串能够唯一地标记网络上的计算机的数字 「域名」:又称网域,是由一串用点分隔的名字 ...

  7. ubuntu系统php环境变量设置,Ubuntu系统环境变量详解

    使用Ubuntu 进行开发绕不开的就是环境变量的配置,由于Linux系统严格的权限管理,造成Ubuntu系统有多个环境变量配置文件,如果不了解其调用顺序,很有可能遇到配置了环境变量,而没有其作用的问题 ...

  8. ubuntu apache2配置详解(含虚拟主机配置方法)

    在Windows下,Apache的配置文件通常只有一个,就是httpd.conf.但我在Ubuntu Linux上用apt-get install apache2命令安装了Apache2后,竟然发现它 ...

  9. Linux进阶:DNS详解

    DNS服务和BIND 本章内容 名字解析 DNS服务 实现主从服务器 实现子域 实现view 编译安装 压力测试 DNS排错 DNS服务 DNS:Domain Name Service 应用层协议C/ ...

最新文章

  1. Python 代理爬取网站数据
  2. vue 页面跳转的两种方式
  3. Beta阶段项目总结
  4. Hadoop运维记录系列(十)
  5. Divan and Kostomuksha (easy version) dp,gcd(2100)
  6. 线程的语法 (event,重要)
  7. java虚拟机读写其他进程的数据
  8. element 项目 示例_Java ArrayDeque element()方法与示例
  9. 原来AI也可以如此简单!教你从0到1开发开源知识问答机器人
  10. 协方差矩阵的计算方法
  11. “天外来客”讲述太阳系“童年”故事
  12. C# Excel 条件格式
  13. 婚姻家庭法简答题及答案
  14. 微信小程序和微信公众号关联
  15. 计算机一级期末考试题,2016年计算机一级考试题库(含答案)
  16. 递归详解——让你真正明白递归的含义
  17. 单片机期末实训---- 密码锁和交通灯
  18. 基于ssm技术的校自助阅览室的设计与实现毕业设计源码242326
  19. 简要说明中国大学生篮球状况和未来发展前景(300字
  20. 公式法求圆周率的近似值——泰勒公式展开 (内含double与float的比较)

热门文章

  1. iPhone系列手机邮箱设置方法
  2. 忘了Excel 2003文档的密码怎么办
  3. Q3亏损超11亿,B站、拼多多、蔚来这些亏损新贵如何盈利破圈?
  4. 前沿技术探究|区块链的故事你真的知道吗?
  5. 美甲电动打磨机指甲电磨笔方案应用
  6. unity伤害数字显示,最简单简洁的方法
  7. vue组件间传值的几种方法
  8. Java中final
  9. ResultSet 中找不到栏位名称 XXXX使用remapResults参数来解决
  10. 从菜鸟到大神:SEO优化方法大揭秘