1
0
mirror of https://github.com/ZSCNetSupportDept/website.git synced 2025-12-26 21:11:12 +08:00
Files
website/docs/wiki/05-基础知识/09-科普/DNS.md
2025-11-07 01:01:29 +08:00

78 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: DNS是什么我们的日常工作中有什么和DNS有关系
---
# DNS
## 背景知识
因为计算机网络上的计算机彼此之间只能用 IP 地址才能相互识别这就导致了一个问题IP 地址很难被人们记住,举个例子,我们中山学院网络维护科的官网的 IP 地址是 `47.52.33.166` ,记住这个 IP 地址是困难的。
于是互联网的前辈们想了一个方法,用域名来进行访问,例如访问 `www.zsxyww.com` 就可以访问到网维的官网,不需要去记住 IP 地址了,`www.zsxyww.com` 这个有意义的字段很容易记住(中山学院网维的拼音缩写嘛)。
然后问题就来了:计算机之间只能用 IP 地址识别,我们使用域名,计算机没法识别怎么办?
对于这个问题,互联网前辈们想了个法子,使用 DNS 服务器作为一个中介,我们使用浏览器访问 `www.zsxyww.com` 的时候,会先请求 DNS 服务器获取该域名对应的计算机的 IP 地址,然后与该 IP 地址对应的计算机(网维服务器)沟通。
## 定义
DNS 是进行域名和与之相对应的 IP 地址转换的服务器。DNS 中保存了一张域名和与之相对应的 IP 地址的表,以解析消息的域名。
简单来说就是 DNS 是一个服务器,能够返回域名对应的服务器的 IP 地址。
## 需要理解的简单的浏览器工作机制
![工作流程](/img/wiki/dns.png)
## 缓存机制
为了节约资源及加快速度,互联网前辈还想了个 DNS 缓存机制。
计算机会按照下列顺序方式进行查询
1. 浏览器缓存
2. 操作系统缓存
3. 各级 DNS 服务器(这边也有缓存)
## 日常工作相关
- 怎么判断是否是 DNS 的问题?
特征就是使用 IP 地址能够正常访问(例如 QQ而使用域名访问却没法访问。
一般来说遇到的会是所有域名都没法访问,不过偶尔也会遇到部分域名能访问,部分域名没法访问的情况。
- 怎么查询本地 DNS 缓存?
- 查询浏览器缓存
- Chrome 浏览器访问 `chrome://net-internals/#dns`,可查询浏览器缓存
- 同理基于Chromium内核的浏览器比如BraveEdge...也可以使用。需要查询对应的协议段代号。如Edge对应`edge://net-internals/#dns`
- Firefox(Gecko)需要在地址栏输入:`about:networking#dns`
- Safari需要按如下步骤操作`偏好设置` --> `高级``在菜单栏中显示 “开发” 菜单`,随后在顶栏的`开发`菜单中进行操作
需要注意的是对于Safari来说其更依赖MacOS的DNS缓存。
- 查询操作系统缓存
- Windows 系统 使用命令 `ipconfig /displaydns` 查询,可以使用 `ipconfig /flushdns` 清除操作系统缓存
- macOS 系统不同版本的清除方法不同,可以尝试:
`sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder`
适用于macOS 10.15 (Catalina)以上
- Linux 系统根据发行版的不同也有着不同的清除方法。可以尝试以下命令:
`sudo resolvectl flush-caches`
`sudo /etc/init.d/nscd restart`
`sudo systemctl restart dnsmasq`
刷新 DNS 缓存后,可以使用 dig 命令验证缓存是否已成功清除:
`dig baidu.com `
如果查询时间值大于 0 毫秒,则缓存已成功清除。
- 怎么解决 DNS 的问题?
更换 DNS 服务器、使用神器清除本机 DNS 缓存即可。
常见的 DNS 服务器地址:
```text
8.8.8.8 Google不推荐作为主 DNS 服务器,可以作为次 DNS 服务器)
114.114.114.114 114(疑似存在劫持?)
223.5.5.5 223.6.6.6 阿里
119.29.29.29 腾讯
```