Ubuntu 20.04 DNS解析原理, 解决resolv.conf被覆盖问题(ubuntu dns probe finished)

Ubuntu 20.04 DNS解析原理, 解决resolv.conf被覆盖问题问题:
开机后不能上网, ping baidu.com 不能ping 通, 错误为: ping: baidu.com: 域名解析暂时失败 修改 /etc/re

问题:

即使打开计算机也无法访问互联网。无法ping 通baidu.com。

错误是:

ping: baidu.com: 域名解析暂时失败

修改/etc/resolv.conf文件,添加名称服务器8.8.8.8。

然后我ping baidu.com,就ping通了,就可以成功上网了。

但是,当计算机重新启动时,/etc/resolv.conf 文件将被旧文件覆盖。

如果您想访问互联网,则需要再次更改该文件的内容。

解决问题的方法很简单。请参阅步骤7。即修改/etc/systemd/resolved.conf,添加DNS=8.8.8.8:

这是我解决问题:的过程记录。

解决问题的思路:

1. 查寻 /etc/resolv.conf, 是一个文件链接.

user@node2:~$ ls -l /etc/resolv.conf

lrwxrwxrwx 1 root root 39 四月23 17:40 /etc/resolv.conf – ./run/systemd/resolve/stub-resolv.conf

/run/systemd/resolve 目录中有两个文件在每次启动时重新生成(请参阅文件时间)

用户@node2:~$ ll /run/systemd/resolve

共8 条

drwxr-xr-x 2 systemd-resolve systemd-resolve 120 六月22 09:19 ./

drwxr-xr-x 24根根620 六月22日12:52 ./

srw-rw-rw- 1 systemd-resolve systemd-resolve 0 六月21 23:18 io.systemd.Resolve=

srw—— 1 systemd-resolve systemd-resolve 0 六月21 23:18 io.systemd.Resolve.Monitor=

-rw-r–r– 1 systemd-resolve systemd-resolve 950 六月21 23:18 resolv.conf

-rw-r–r– 1 systemd-resolve systemd-resolve 920 六月22 09:18 存根-resolv.conf

因此,这两个文件不能直接修改,因为它们在启动时重新生成,旧的内容会被覆盖。

另外,使用vim打开/etc/resolv.conf文件时,还会出现如下提示:

该文件由man:systemd-resolved(8) 管理。请不要编辑。

您可以看到该文件由systemd 解析服务管理,不应编辑。

2. 查询域名解析服务名称

user@node2:~$ systemctl status |grep resolv

systemd-resolved.service

330132 /usr/lib/systemd/systemd-resolved

888442 grep –color=自动解析

3. 查询域名解析服务状态

systemd-resolved.service – 网络名称解析

Loaded: 已加载(/usr/lib/systemd/system/systemd-resolved.service;已启用;preset: 已启用)

Active: 自2024 年6 月21 日星期五起处于活动状态(正在运行) 23:18:13 13 小时CST

Docs: man:systemd-resolved.service(8)

man:org.freedesktop.resolve1(5)

https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers

https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients

主PID: 330132(systemd-resolve)

Status:“正在处理请求.”

任务: 1(限制: 76690)

内存: 2.8M(峰值: 3.8M)

CPU: 1.031秒

CGroup: /system.slice/systemd-resolved.service

330132 /usr/lib/systemd/systemd-resolved

6 月21 日23:18:13 node2 systemd[1]: systemd-resolved.service – 启动网络名称解析。

6 月21 日23:18:25 node2 systemd-resolved[330132]: 对于DNS 服务器202.106.46.151 使用降级功能集UDP,而不是UDP+EDNS0。

6 月22 日01:11:56 node2 systemd-resolved[330132]: 宽限期已结束,我们正在恢复DNS 服务器202.106.46.151 的完整功能集(UDP+EDNS0)。

6 月22 日01:11:56 node2 systemd-resolved[330132]: 对于DNS 服务器202.106.46.151 使用降级功能集UDP,而不是UDP+EDNS0。

6 月22 日08:16:56 node2 systemd-resolved[330132]: 宽限期已结束,我们正在恢复DNS 服务器202.106.46.151 的完整功能集(UDP+EDNS0)。

6 月22 日08:16:56 node2 systemd-resolved[330132]: 对于DNS 服务器202.106.46.151 使用降级功能集UDP,而不是UDP+EDNS0。

6 月22 日09:03:16 node2 systemd-resolved[330132]: 对于DNS 服务器202.106.195.68 使用降级功能集UDP,而不是UDP+EDNS0。

6 月22 日09:19:08 node2 systemd-resolved[330132]: 宽限期已结束,我们正在恢复DNS 服务器202.106.195.68 的完整功能集(UDP+EDNS0)。

6 月22 日09:19:08 node2 systemd-resolved[330132]: 对于DNS 服务器202.106.195.68 使用降级功能集UDP,而不是UDP+EDNS0。

6 月22 日10:33:23 node2 systemd-resolved[330132]: 对DNS 服务器2408:8000:1010:1:8 使用降级功能集UDP 而不是UDP+EDNS0。

4. 查找服务配置文件.

打开两个终端,一个用于执行监控,另一个用于重新启动systemd 解析的服务。

使用fswatch 监视/etc/systemd 目录。 -t 是打印时间,-x 是打印事件。

用户@node2:~$ fswatch -t -x /etc/systemd

接下来,停止并启动systemd-resolved 服务。

用户@node2:~$ sudo systemctl stop systemd-resolved

[sudo] 用户:的密码

user@node2:~$ sudo systemctl start systemd-resolved

观察到以下事件:

用户@node2:~$ fswatch -t -x /etc/systemd

2024 年6 月22 日星期六01:03:41 PM CST /etc/systemd IsDir

2024 年6 月22 日星期六01:03:41 PM CST /etc/systemd 平台特定

2024 年6 月22 日星期六01:03:42 PM CST /etc/systemd/resolved.conf 平台特定

2024 年6 月22 日星期六01:03:42 PM CST /etc/systemd/resolved.conf 平台特定

2024 年6 月22 日星期六01:03:42 PM CST /etc/systemd/resolved.conf 平台特定

Sat 22 Jun 2024 01:03:42 PM CST /etc/systemd/resolved.conf PlatformSpecific 指示对/etc/systemd/resolved.conf 文件的访问。这仅意味着打开服务将访问此文件。

搜索网络资源以查看是否需要手动修改/etc/systemd/resolved.conf 文件。

5. 编辑服务配置文件 /etc/systemd/resolved.conf

当你打开这个文件时,你会看到它是一个空文件,只有几行,全部用#号注释,并去掉第一行的DNS注释号。

上面写着:

DNS=8.8.8.8

修改此文件后,重新启动服务。

systemctl restart systemd-resolved

启用systemctl systemd-resolved

启动时,/run/systemd/resolve/resolv.conf 文件将相应地重新生成。

确认

重新启动机器并检查/run/systemd/resolve 目录中新生成的文件。

用户@node2:~$ ll /run/systemd/resolve

共8 条

drwxr-xr-x 2 systemd-resolve systemd-resolve 120 六月22 13:21 ./

drwxr-xr-x 24根根620 6月22日13:21 ./

srw-rw-rw- 1 systemd-resolve systemd-resolve 0 六月22 13:21 io.systemd.Resolve=

srw—— 1 systemd-resolve systemd-resolve 0 六月22 13:21 io.systemd.Resolve.Monitor=

-rw-r–r– 1 systemd-resolve systemd-resolve 969 六月22 13:21 resolv.conf

-rw-r–r– 1 systemd-resolve systemd-resolve 920 六月22 09:18 存根-resolv.conf

查看内容:stub-resolv.conf不变

添加了resolv.conf 内容:

名称服务器8.8.8.8

6. 结论: 其实只要一步修改

修改/etc/systemd/resolved.conf,添加DNS=8.8.8.8。

:上电后,验证是否可以ping通baidu.com。

7. systemd-resolved 服务起到了什么作用?

在没有systemd-resolved 服务的机器上,域名解析如下:

1、从DNS缓存中查找域名与IP的映射关系。

2、从/etc/hosts中查找域名与IP的映射关系。

3. 从/etc/resolv.conf中找到DNS服务器并发起解析请求。

/etc/resolv.conf 的内容通常是:

名称服务器8.8.8.8

在具有systemd解析服务的机器上,域名解析如下:

1、从DNS缓存中查找域名与IP的映射关系。

2、从/etc/hosts中查找域名与IP的映射关系。

3. 从/etc/resolv.conf中找到DNS服务器并发起解析请求。

然而此时/etc/resolv.conf的内容如下:

名称服务器127.0.0.53

选项edns0 trust-ad

确保所有本地解析请求都发送到127.0.0.53。

然后,systemd-resolved 根据/run/systemd/resolve/resolv.conf 中的DNS 服务器发起请求。

/run/systemd/resolve/resolv.conf 记录实际的后端DNS 服务器。

systemd-resolved 是systemd 的组件,负责管理和缓存DNS 解析请求。提供监听127.0.0.53 的本地DNS 服务器,可以代理和缓存DNS 查询。

Note : 还有一个问题是/etc/resolv.conf 在centos7 上被重置。

1. 查看 /etc/resolv.conf 文件

$ 猫/etc/resolv.conf

由#NetworkManager 生成

可以看到它是由NetworkManager生成的。

$ systemctl status |grep -i 网络

发现

NetworkManager.Service

954 /usr/sbin/NetworkManager –no-daemon

2. 编辑NetworkManager 的配置文件

vim /etc/NetworkManager/NetworkManager.conf

在[main]下添加dns=8.8.8.8,如下例所示。

[主要的]

域名=8.8.8.8

3. 重启网络服务验证.

$ systemctl restart NetworkManager.service

$猫/etc/resolv.conf

由#NetworkManager 生成

名称服务器8.8.8.8

我发现名称服务器已添加到/etc/resolv.conf 中,问题已解决。

参考:

https://blog.csdn.net/hejinjing_tom_com/article/details/134310580

#以上有关Ubuntu 20.04 DNS解析原理及resolv.conf覆盖问题的信息仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91516.html

(0)
CSDN的头像CSDN
上一篇 2024年6月22日
下一篇 2024年6月22日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注