当前位置: 首页 > 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解析顺序,以确保结果的一致性和可控性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • headerpwn:一款针对服务器响应与HTTP Header的模糊测试工具
  • 优化实战篇—自关联的优化
  • 《昇思25天学习打卡营第05天|qingyun201003》
  • debian固定ip
  • c++ :运算符重载函数中的细节
  • jmeter-beanshell学习9-放弃beanshell
  • k8s快速部署一个网站
  • tkinter-TinUI-xml实战(11)多功能TinUIxml编辑器
  • 【python学习】python标准库之正则表达式库re的定义、功能和函数,以及正则表达式的元字符和含义
  • 【深度学习入门篇 ②】Pytorch完成线性回归!
  • Ubuntu实战续篇:Apache httpd轻松搭建高效代理服务器
  • Spring AOP 实现 Excel 导出统一处理
  • Linux——公网 IP别名设置,清屏,删除别名,在linux中提供alias永久化的方法,命令历史
  • 【Superset】dashboard 自定义URL
  • ESP32CAM物联网教学11
  • Angular 4.x 动态创建组件
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • JS实现简单的MVC模式开发小游戏
  • Mac转Windows的拯救指南
  • MySQL的数据类型
  • nodejs实现webservice问题总结
  • php ci框架整合银盛支付
  • 分布式熔断降级平台aegis
  • 记一次用 NodeJs 实现模拟登录的思路
  • 普通函数和构造函数的区别
  • 前端相关框架总和
  • 思考 CSS 架构
  • 白色的风信子
  • gunicorn工作原理
  • 函数计算新功能-----支持C#函数
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​Spring Boot 分片上传文件
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​如何使用QGIS制作三维建筑
  • #pragma multi_compile #pragma shader_feature
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • $jQuery 重写Alert样式方法
  • (~_~)
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (libusb) usb口自动刷新
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (十八)SpringBoot之发送QQ邮件
  • (四)opengl函数加载和错误处理
  • (未解决)macOS matplotlib 中文是方框
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • .NET Core WebAPI中封装Swagger配置
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET 直连SAP HANA数据库
  • .net中调用windows performance记录性能信息
  • .net中生成excel后调整宽度