DNS域名解析过程、工具、文件配置

目录

DNS介绍

DNS域名层次结构

DNS域名解析过程

递归查询和迭代查询

DNS 查询的命令行工具:host、dig、nslookup

host

语法

参数和选项

示例用法

 dig

语法

参数和选项 

 示例用法

 nslookup

语法

参数和选项

交互式命令

示例用法

 配置 DNS 客户端


DNS介绍

DNS(Domain Name System)是互联网中用于将域名转换为对应IP地址的系统。它充当了一个分布式数据库,将易于记忆的域名与计算机能够理解的IP地址相匹配,使人更方便地访问地址。

DNS域名解析:就是把域名解析成IP地址。

DNS域名层次结构

根域名:根域名位于域名树的顶端,用一个点“.”表示。

顶级域名:顶级域名是紧挨着根域名的下一级域名,它通常表示域名的类型、国家或组织。例如,.com、.org、.net 是常见的通用顶级域名

二级域名:二级域名是紧挨着顶级域名的下一级域名,通常表示特定的组织、公司或个人。

子域名:子域名是下一级域名,可以用于进一步划分和组织域名空间。

DNS域名解析过程

DNS 域名解析过程中使用的是递归查询

在浏览器中输入一个域名进行访问(例如:www.hzxx.com)

1、首先查询本地的 host 文件,该文件包含了一些域名与 IP 地址的映射关系。

2、如果 hosts 文件中没有相应的记录,操作系统会向预配置的默认 DNS 服务器发送查询请求。默认DNS服务器通常由运营商提供。

4、如果运营商提供的 DNS 服务器中没有相应的记录,它会向根域名服务器发送查询请求,询问顶级域名服务器的地址。

5、根域名服务器收到查询请求后,不会直接查,而是会告诉 DNS 顶级域名服务器的地址,让顶级域接着查。

6、顶级域不会直接查询,而是会告诉二级域名服务器的地址。

7、二级域名服务器会反馈出最终的IP地址。

8、默认 DNS 服务器将获取到的 IP 地址返回给操作系统,操作系统再将其返回给浏览器。

递归查询和迭代查询

递归查询和迭代查询的区别在于查询过程中域名服务器的响应方式不同。

  • 递归查询(Recursive Query):当一个 DNS 客户端需要查询一个域名时,它会向本地 DNS 服务器发送一个递归查询请求,本地 DNS 服务器将会负责递归地向根域名服务器、顶级域名服务器以及权威域名服务器依次发送查询请求,并将查询结果返回给客户端。递归查询意味着 DNS 客户端不需要了解整个查询路径,只需要等待本地 DNS 服务器返回查询结果即可。

  • 迭代查询(Iterative Query):当一个 DNS 客户端需要查询一个域名时,它会向本地 DNS 服务器发送一个迭代查询请求,本地 DNS 服务器将会向根域名服务器、顶级域名服务器或下一级域名服务器依次发送查询请求,每个 DNS 服务器只会返回部分查询结果给本地 DNS 服务器,而不是完整的查询路径。本地 DNS 服务器需要根据每个 DNS 服务器返回的结果继续向下一级 DNS 服务器发送查询请求,直到获取到完整的查询结果后,再将结果返回给客户端。

因此,递归查询和迭代查询的主要区别在于响应方式。递归查询是让本地 DNS 服务器代替客户端向 DNS 服务器发出查询请求,并负责整个查询过程,返回最终的结果;而迭代查询则是由客户端自己向 DNS 服务器发出查询请求,并一步步地获取完整的查询结果。递归查询比迭代查询更快捷、更方便,但同时也增加了本地 DNS 服务器的负担。

DNS 查询的命令行工具:host、dig、nslookup

host、dig、nslookup 都是用于执行 DNS 查询的命令行工具。

host

语法

host [options] domain_name [dns_server]

参数和选项

  • domain_name:要查询的域名。
  • dns_server(可选):指定用于查询的 DNS 服务器。

以下是一些常用的选项:

  • -a:显示所有相关记录。
  • -t type:指定所需的记录类型(例如,A、MX、NS 等)。
  • -C:显示完整的 DNS 数据包。
  • -W:当查询超时时,设置等待时间

示例用法

1、查询域名的 IP 地址:

host example.com

2、查询反向解析(IP 地址对应的主机名):

host 192.0.2.1

 3、查询 MX 记录:

host -t MX example.com

 4、指定 DNS 服务器进行查询:

host example.com dns.example.com

 dig

语法

 dig [@server] [options] domain_name [type]

参数和选项 

  • @server:可选参数,指定要查询的 DNS 服务器。
  • domain_name:要查询的域名。
  • type:可选参数,指定查询的记录类型(例如,A、MX、NS 等)。

以下是一些常用的选项:

  • +trace:执行递归查询链跟踪。
  • +short:以简洁格式显示结果。
  • -x address:执行反向 DNS 查询。
  • -t type:指定所需的记录类型。
  • -f filename:从文件中读取命令行选项和参数。

 示例用法

 1、查询域名的 IP 地址:

dig example.com

2、查询 MX 记录:

dig MX example.com

3、执行递归查询链跟踪:

dig +trace example.com

 4、指定要查询的 DNS 服务器:

dig @dns.example.com example.com

 nslookup

提供了一个交互式的查询界面,允许你在其中执行多个查询和配置。

语法

nslookup [options] [domain_name] [dns_server]

参数和选项

  • domain_name(可选):要查询的域名。
  • dns_server(可选):指定用于查询的 DNS 服务器。

以下是一些常用的选项:

  • -query=type:指定所需的记录类型(例如,A、MX、NS 等)。
  • -debug:启用调试模式。
  • -timeout=value:设置查询超时时间为 value 秒。
  • -sil[ent]:禁用标准输出,并将查询结果直接输出到标准错误输出。
  • -h:显示帮助信息。

交互式命令

nslookup 的交互模式下,你可以执行多个查询操作,查找特定类型的 DNS 记录,指定查询的 DNS 服务器等。以下是一些常用的交互式命令:

  • server dns_server:设置用于查询的 DNS 服务器。
  • set type=value:设置所需的记录类型(例如,A、MX、NS 等)。
  • set domain=domain_name:设置默认的查询域名。
  • set querytype=value:设置所需的记录类型(例如,A、MX、NS 等)。
  • set debug:启用调试模式。
  • set timeout=value:设置查询超时时间为 value 秒。
  • unset option:取消设置的选项。
  • exit 或 quit:退出交互模式。

示例用法

1、查询域名的 IP 地址:

nslookup example.com

2、查询反向解析(IP 地址对应的主机名):

nslookup 192.0.2.1

3、指定 DNS 服务器进行查询:

nslookup example.com dns.example.com

4、进入交互模式并执行多个查询操作:

nslookup
> server dns.example.com
> set type=mx
> example.com
> exit

NetworkManager 也可以管理 DNS 服务 

 配置 DNS 客户端

 确保已经连接到网络。

第一种:编辑 hosts 文件

虚拟机的hosts文件为 /etc/hosts ,格式如下:

192.168.1.10    example.com

win11的 hosts 的文件为 C:\Windows\System32\drivers\etc\hosts

第二种:网卡配置文件

 可以在 /etc/sysconfig/network-scripts/ 目录下的配置文件中配置,例:ifcfg-ens33文件中配置

在配置文件添加你想要使用的 DNS 服务器的 IP 地址,例如

DNS1=192.168.233.2
DNS2=8.8.8.8

添加或修改完后,保存并关闭网络配置文件即可。

第三种:配置 /etc/resolv.conf 文件,格式如下:

nameserver 8.8.8.8
nameserver 8.8.4.4

请注意,在某些情况下,该文件可能会被自动管理工具(如 NetworkManager)重写,因此直接修改该文件可能不会永久生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解读OpenAI视频生成模型Sora背后的原理:Diffusion Transformer

Diffusion Models视频生成-博客汇总 前言:OpenAI最近推出的视频生成模型Sora在效果上实现了真正的遥遥领先,很多博主都介绍过Sora,但是深入解读背后原理的博客却非常少。Sora的原理最主要的是核心模型主干《Scalable Diffusion Models with T…

Code Composer Studio (CCS) - Breakpoint (断点)

Code Composer Studio [CCS] - Breakpoint [断点] 1. BreakpointReferences 1. Breakpoint 选中断点右键 -> Breakpoint Properties… Skip Count:跳过断点总数,在断点执行之前设置总数 Current Count:当前跳过断电累计值 References […

xtu oj 1215 A+B V

题目描述 小明很喜欢做ab,他但经常忘记进位,所以他算881290,而不是100。 现在你给了小明一些ab的算式,请问他算出来会是什么? 输入 第一行是一个整数K,表示样例的个数。 每个样例占一行,为两个整数a,b&a…

CCF编程能力等级认证GESP—C++7级—20231209

CCF编程能力等级认证GESP—C7级—20231209 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)商品交易纸牌游戏 答案及解析单选题判断题编程题1编程题2 单选题…

深度探索Python集合:从基本操作到高级用法

在Python编程中,集合(Set)作为一种高效且功能强大的内置数据结构,常用于处理不包含重复元素的无序数据集合。本文将详述Python集合的基本操作、进阶技巧以及在实际场景中的应用。 一、集合基础 Python集合初始化可通过大括号 {} 或者 set() 函数实现&a…

Vue实现多个input输入,光标自动聚焦到下一个input

遇到一个需求&#xff0c;需要实现和移动端短信输入一样&#xff0c;输入内容后&#xff0c;光标会进入下一个输入框 需要用到2个事件 keydown事件发生在键盘的键被按下的时候 keyup 事件在按键被释放的时候触发 <template><div class"box"><el-fo…

(ruoyi-vue3.8.6版本基础上)升级Spring Boot 3.x时遇到的问题与解决办法

升级Spring Boot 3.x时遇到的问题与解决办法 在升级Spring Boot应用到3.x版本的过程中,可能会遇到一系列的依赖、配置及JDK版本相关问题。本文将列出几个常见问题及其对应的解决方案。 问题一:javax.xml.bind.JAXBException异常 问题描述 在更新Spring Boot依赖后,如果缺…

OpenAI重磅发布Sora——首个视频生成模型:利用文本-视频人工智能将想象变为现实

想象一下&#xff0c;现在你有一段文本话描述的故事&#xff0c;通过输入这段文本&#xff0c;就可以立刻展开一个生动详细的视频。这就是 OpenAI 神奇的 Sora&#xff0c;一个革命性的文本到视频的 AI 模型。Sora于2024年2月推出&#xff0c;凭借其仅凭文字提示就能生成现实和…

CSS 不同颜色的小圆角方块组成的旋转加载动画

<template><!-- 创建一个装载自定义旋转加载动画的容器 --><view class="spinner"><!-- 定义外部包裹容器,用于实现整体旋转动画 --><view class="outer"><!-- 定义四个内部小方块以形成十字形结构 --><view clas…

攻防演练后的一点随记

攻防演练 攻防演练算是告一段落了&#xff0c;各位红队和蓝队的兄弟们都辛苦了&#xff0c;写一点随记&#xff0c;供大家参考。 记得第一次参加攻防演练是在2018年&#xff0c;当时被派到北京&#xff0c;在某个政企单位做攻防演练支撑工作&#xff0c;然后2020年又被紧急派到…

SSE 协议详细教程

Server-Sent Events&#xff08;SSE&#xff09;是一种服务器到客户端的单向通信协议&#xff0c;它基于HTTP协议&#xff0c;允许服务器向客户端推送数据。SSE常用于实现实时更新的功能&#xff0c;例如在新闻网站或股票市场中显示最新消息。本文将详细介绍SSE协议的原理、实现…

Vue首屏优化,12个提速建议

文章目录 代码拆分和懒加载&#xff1a;代码拆分懒加载 图片优化&#xff1a;组件懒渲染&#xff1a;数据预获取和缓存&#xff1a;服务器端渲染&#xff08;SSR&#xff09;&#xff1a;代码压缩和合并&#xff1a;使用 CDN 加速&#xff1a;监控和性能分析&#xff1a;代码优…

AIGC实战——能量模型(Energy-Based Model)

AIGC实战——能量模型 0. 前言1. 能量模型1.1 模型原理1.2 MNIST 数据集1.3 能量函数 2. 使用 Langevin 动力学进行采样2.1 随机梯度 Langevin 动力学2.2 实现 Langevin 采样函数 3. 利用对比散度训练小结系列链接 0. 前言 能量模型 (Energy-based Model, EBM) 是一类常见的生…

c++开发基础之保障多线程编程中的原子操作InterlockedIncrement和InterlockedDecrement用法详解

一、介绍 在多线程编程中&#xff0c;确保对共享变量进行原子操作是至关重要的。当多个线程同时访问和修改同一共享资源时&#xff0c;如果没有合适的同步机制&#xff0c;可能会导致数据竞争、内存一致性问题&#xff0c;甚至造成程序崩溃。为了解决这个问题&#xff0c;C提供…

公众号,h5 链接直接在浏览器打开 拒绝下载视频解决方案

公众号&#xff0c;h5 链接直接在浏览器打开 拒绝下载视频 1.微信打开公众号 2.在微信上打开浏览器 3.F12打开页面 4.播放视频 5.找到video标签代码 6.去掉video标签的属性controlslist“nodownload” 7.全屏播放 8.下载

【个人博客搭建】butterfly主题配置

目录 一、基础配置 (一) 模板配置 1. 文章模板 2. 页面模板 (二) 创建页面和文章 1. 标签页【可选】 2. 分类页【可选】 3. 友链页【可选】 4. 404页面【可选】 5. 文章 (三) 导航栏设置 1. 基础项 2. 菜单项 (四) 页面设置 1. 代码框设置 2. 社交图标设置 3.…

win10下wsl2使用记录(系统迁移到D盘、配置国内源、安装conda环境、配置pip源、安装pytorch-gpu环境、安装paddle-gpu环境)

wsl2 安装好后环境测试效果如下&#xff0c;支持命令nvidia-smi&#xff0c;不支持命令nvcc&#xff0c;usr/local目录下没有cuda文件夹。 系统迁移到非C盘 wsl安装的系统默认在c盘&#xff0c;为节省c盘空间进行迁移。 1、输出wsl -l 查看要迁移的系统名称 2、执行导出命…

367.有效的完全平方数

给你一个正整数 num 。如果 num 是一个完全平方数&#xff0c;则返回 true &#xff0c;否则返回 false 。 完全平方数 是一个可以写成某个整数的平方的整数。换句话说&#xff0c;它可以写成某个整数和自身的乘积。 不能使用任何内置的库函数&#xff0c;如 sqrt 。 示例 1…

JDK8 升级至JDK19

优质博文IT-BLOG-CN 目前部分项目使用JDK8&#xff0c;部分项目使用JDK19因此&#xff0c;环境变量中还是保持JDK8&#xff0c;只需要下载JDK19免安装版本&#xff0c;通过配置IDEA就可以完成本地开发。 一、IDEA 环境设置 【1】通过快捷键CTRL SHIFT ALT S或者File->P…

如何免费访问和使用Gemini API?

Gemini是谷歌开发的一个新模型。有了Gemini可以为查询提供图像、音频和文本&#xff0c;获得几乎完美的答案。 我们在本教程中将学习Gemini API以及如何在机器上设置它。我们还将探究各种Python API函数&#xff0c;包括文本生成和图像理解。 Gemini AI模型介绍 Gemini是谷歌…