当前位置: 首页 > news >正文

DNS缓存详解

目录

一、缓存分类

1. 客户端缓存(以浏览器缓存为列)

2. 操作系统缓存

3.本地hosts文件静态映射

二、DNS查找优先顺序

1.浏览器查找顺序

2.cmd ping查找顺序(非浏览器)


一、缓存分类

在一台终端上,DNS缓存可以存在于多个层次,包括操作系统层、应用程序层和网络设备层。以下是查找DNS缓存的方法以及它们的优先级:

1. 客户端缓存(以浏览器缓存为列)

PS:很多而客户端都有自己的dns缓存,如web浏览器、邮件客户端等

每个浏览器都有自己的DNS缓存,用于加速域名解析。要清除浏览器的DNS缓存,可以按照以下步骤操作:

  • Chrome:
    1. 在地址栏中输入 chrome://net-internals/#dns 并按下回车。
    2. 点击“Clear host cache”按钮。
  • Firefox:
      1. 在地址栏中输入 about:networking#dns 并按下回车。
      2. 点击“Clear DNS Cache”按钮。

2. 操作系统缓存

操作系统维护一个DNS缓存,以减少对DNS服务器的查询次数。可以使用以下命令查看和清除操作系统的DNS缓存:

  • Windows:
    • 查看DNS缓存:ipconfig /displaydns
    • 清除DNS缓存:ipconfig /flushdns
  • Linux(以systemd-resolved为例):
    • 查看DNS缓存:sudo systemd-resolve --statistics
    • 清除DNS缓存:sudo systemd-resolve --flush-caches

其他Linux系统(如使用nscd或dnsmasq)可能有不同的命令:

    • sudo service nscd restart 或 sudo systemctl restart nscd
    • sudo service dnsmasq restart 或 sudo systemctl restart dnsmasq
  • macOS:
    • 查看DNS缓存:sudo killall -INFO mDNSResponder
    • 清除DNS缓存:sudo killall -HUP mDNSResponder

3.本地hosts文件静态映射

    • Windows: C:\Windows\System32\drivers\etc\hosts
    • Linux/Unix/macOS: /etc/hosts

二、DNS查找优先顺序

1.浏览器查找顺序

浏览器缓存 > 操作系统缓存 > 本地Hosts文件 > DNS服务器查询

2.cmd ping查找顺序(非浏览器)

本地Hosts文件 > 操作系统缓存 > DNS服务器查询

关键差异点

  1. 浏览器缓存:浏览器有自己的DNS缓存机制,这是为了提高浏览速度和效率。命令行工具(如ping)通常不使用浏览器缓存。
  2. 顺序和优先级:
    • 浏览器会先检查自己的缓存,然后再查询操作系统缓存和hosts文件。
    • 命令行工具直接从本地hosts文件开始查询,然后检查操作系统缓存。

为什么会有这种差异?

  • 性能优化:浏览器缓存DNS记录是为了提高网页加载速度,因为浏览器需要频繁解析大量的域名。
  • 一致性和控制:命令行工具更依赖于操作系统的DNS解析顺序,以确保结果的一致性和可控性。
http://www.lryc.cn/news/398386.html

相关文章:

  • 一款好用的特殊字符处理工具
  • 双重锁定:零信任沙箱 完美的安全保障
  • 【小沐学Python】在线web数据可视化Python库:Bokeh
  • GitHub 站点打不开
  • 前端开发工具
  • Everything搜索无法搜索到桌面的文件(无法检索C盘 或 特定路径的文件)
  • React@16.x(52)Redux@4.x(1)- 核心概念
  • pytest系列——pytest_runtest_makereport钩子函数获取测试用例执行结果
  • Oracle数据库模式对象
  • 各地户外分散视频监控点位,如何实现远程集中实时监看?
  • Vue笔记12-新的组件
  • PySide6开发桌面程序,PySide6入门实战(下)
  • Java面试八股之Redis有哪些数据类型?底层实现分别是什么
  • 分布式应用系统设计:即时消息系统
  • 【YashanDB知识库】调整NUMBER精度,再执行统计信息收集高级包偶现数据库异常退出
  • ComfyUI+MuseV+MuseTalk图片数字人
  • 【Python】从基础到进阶(三):深入了解Python中的运算符与表达式
  • C#的DllImport使用方法
  • 人工智能算法工程师(中级)课程11-PyTorch神经网络之循环神经网络RNN与代码详解
  • 服务端生成RSA密钥实例
  • Maven Nexus3 私服搭建、配置、项目发布指南
  • 东方博宜1627 - 暑期的旅游计划(2)
  • FastAPI 学习之路(三十五)项目结构优化
  • linux源码安装mysql8.0的小白教程
  • 如何评估独立站的外链质量?
  • AI在编程领域的作用
  • 医疗器械网络安全 | 漏洞扫描、渗透测试没有发现问题,是否说明我的设备是安全的?
  • 【GameFramework扩展应用】6-4、GameFramework框架增加AB包加解密功能
  • 通用图形处理器设计GPGPU基础与架构(二)
  • 在一个使用了 Sass 的 React Webpack 项目中安装和使用 Tailwind CSS