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

DNS解析流程入门篇

一、DNS 解析流程

1.1 浏览器输入域名

当在浏览器中输入 www.baidu.com 时,操作系统会按照以下步骤进行 DNS 解析:

  1. 检查本地 hosts 文件 :操作系统先检查本地的 /etc/hosts 文件,查看是否存在域名与 IP 地址的对应关系。如果找到记录,则直接使用该记录进行解析,不再进行后续步骤。

  2. 查询本地 DNS 缓存 :如果 hosts 文件中没有对应的记录,操作系统会检查本地的 DNS 缓存,看是否有之前查询过的相关记录。如果有缓存记录且未过期,则直接使用缓存中的数据。

  3. 查询指定的 DNS 服务器 :如果 hosts 文件和本地 DNS 缓存中都没有找到对应的解析记录,操作系统会使用网络配置中指定的 DNS 服务器地址进行查询。常见的公共 DNS 服务器地址包括 114.114.114.1148.8.8.8 等。DNS 服务器会查询 www.baidu.com 的 IP 地址记录,如果找到则返回给操作系统,否则表示该域名未注册或不存在。

二、DNS 服务器概述

2.1 DNS 服务器的作用

DNS 服务器用于将域名转换为对应的 IP 地址,方便用户通过域名访问互联网上的资源。

2.2 常见的 DNS 服务器软件

  • Bind :功能强大且广泛使用的 DNS 服务器软件,适用于各种规模的网络环境。

  • dnsmasq :小巧且易于配置,适合小型网络环境,提供 DNS 解析和 DHCP 服务功能。

三、dnsmasq 的安装与配置

3.1 安装 dnsmasq

在基于 YUM 的 Linux 系统中,可以使用以下命令安装 dnsmasq:

yum install dnsmasq -y

3.2 配置 dnsmasq

  • 主配置文件/etc/dnsmasq.conf 是 dnsmasq 的主配置文件。可以在此文件中进行基本的配置。

  • 自定义域名解析关系文件 :创建 /etc/dnsmasq.hosts 文件,用于定义自有的域名和 IP 地址对应关系。

比如:123.206.16.61 yuchao668.com 

  • 上游 DNS 服务器地址文件 :创建 /etc/resolv.dnsmasq.conf 文件,指定当 dnsmasq 在本地找不到解析记录时,所使用的上游 DNS 服务器地址。

比如:nameserver 119.29.29.29

            nameserver 223.5.5.5 

  • 修改主配置文件参数 :根据实际需求,修改 /etc/dnsmasq.conf 文件中的相关参数。以下是一些常用的参数示例:

    • resolv-file=/etc/resolv.dnsmasq.conf :指定上游 DNS 服务器地址文件的位置。

    • address=/baidu.com/123.206.16.61 :将 baidu.com 及其子域名解析到指定的 IP 地址 123.206.16.61

    • address=/taobao.com/123.206.16.61 :将 taobao.com 及其子域名解析到指定的 IP 地址 123.206.16.61

    • listen-address=123.206.16.61 :指定 dnsmasq 监听的 IP 地址。

    • addn-hosts=/etc/dnsmasq.hosts :指定自定义域名解析关系文件的位置。

    • log-queries :记录 DNS 查询日志,方便进行问题排查和监控。

    • conf-dir=/etc/dnsmasq.d :指定包含额外配置文件的目录。

    • conf-dir=/etc/dnsmasq.d,.bak :包含 /etc/dnsmasq.d 目录下所有文件,但排除以 .bak 结尾的文件。

    • conf-dir=/etc/dnsmasq.d/,*.conf :包含 /etc/dnsmasq.d 目录下所有以 .conf 结尾的文件。

3.3 启动 dnsmasq 服务

安装并配置完成后,使用以下命令启动 dnsmasq 服务:

systemctl start dnsmasq

3.4 修改本地 DNS 客户端配置

为了使本地系统使用自定义的 dnsmasq 服务器进行 DNS 解析,需要修改本地 DNS 客户端配置文件 /etc/resolv.conf,将其内容设置为指向 dnsmasq 服务监听的地址。例如:

nameserver 127.0.0.1

3.5 测试域名解析

可以通过以下命令测试域名解析是否成功:

nslookup www.baidu.com

或者使用 ping 命令进行简单测试:

ping www.baidu.com

相关文章:

  • java基础(面向对象进阶高级)泛型(API一)
  • 编程日志5.20
  • 深入剖析Java中的伪共享:原理、检测与解决方案
  • uniapp 搭配uviwe u-picker 实现地区联栋
  • OSPF补充信息
  • MathQ-Verify:数学问题验证的五步流水线,为大模型推理筑牢数据基石
  • Neural Blind Deconvolution Using Deep Priors论文阅读
  • Leetcode 3556. Sum of Largest Prime Substrings
  • 《1.1_4计算机网络的分类|精讲篇|附X-mind思维导图》
  • 如何设计ES的冷热数据分离架构?Elasticsearch 集群如何实现高可用?如何避免脑裂问题?如果出现脑裂如何恢复?
  • API Gateway CLI 实操入门笔记(基于 LocalStack)
  • 基于 docker 部署 k8s 集群
  • 集星云推短视频矩阵系统的定制化与私有化部署方案
  • redis在Spring中的一些使用
  • 机器学习中的线性回归:从理论到实践的深度解析
  • 企业数据安全全生命周期守护方案:从组织到技术的三维实践
  • PyTorch实战——生成对抗网络数值数据生成
  • (自用)Java学习-5.14(注册,盐值加密,模糊查询)
  • 树莓派超全系列教程文档--(48)树莓派内核头文件
  • Vue列表渲染
  • 网网站设计网/2021百度seo
  • 公司网站管理规定/快速的网站设计制作
  • 在c盘做网站可以吗/seochan是什么意思
  • 网页制作与网站建设知识框架图/seo优化什么意思
  • 专业做网站的公司有哪些/快排seo
  • 网站开发哪家公司比较好/电商怎么推广自己的产品