什么是DNS解析

前言

dns解析是客户端输入url,浏览器进行的第一步操作,本文是我学习总结的什么是DNS解析的文章。

1什么是DNS和DNS解析器

DNS简称域名系统,当域名申请时,管理者会把域名挂靠在域名系统服务器上,通过DNS解析器查找域名对应的信息,DNS解析器是域名系统(DNS)中的核心服务器类型,用于将域名转换为网络可识别的IP地址。作为互联网基础服务,其通过层级式域名管理体系实现地址的统一寻址,支持递归查询(本地服务器代理)和迭代查询(逐级引导)两种解析模式。

2DNS的查询过程是什么样的

DNS查询,我理解就是像你想知道一个人的电话号码(服务器ip地址),电话号码比较难记,所以一般使用别名比如小明同学(谷歌,百度这种域名化就好记了),当你访问他们的域名时,他们就会发起一个dns解析。 举个例子如下:

  1. 本地缓存查找:你想知道学校里小明同学的电话,首先从你自己的记事本查找(本地缓存)。如果找到了,DNS 解析过程就结束了。

  2. DNS 服务器查找:如果本地缓存没有找到,你开始找到老师(DNS 服务器)。老师会从他的记事本里面开始查找(DNS 缓存)。同理,如果找到了就结束这个过程。

  3. 递归查询:如果老师也没有找到,老师会向其他老师(上级 DNS 服务器)询问,其他老师也会告诉你你要找谁谁谁,就好比你问A老师你知道小明同学的电话吗,A发现自己不知道,A就会去问B,这个时候B会告诉你,你去找C,然后A就问C,C说:我知道小明的电话(ip地址),这个时候A老师把结果告诉你,当然也有可能找不到,当A找完所有的老师(顶级域名服务器--->权威域名服务器),如果都没有那么就解析失败了。如下图:

3.什么是DNS劫持

就是当你访问的域名被黑客或者病毒软件篡改了域名指向的ip地址,这个时候你访问的是www.xxxx.com,假设应该指向127.0.0.1 ,那么此时被黑客或者病毒入侵修改成了128.1.1.1,这个时候用户访问的www.xxxx.com指向了128.1.1.1,使得用户无法访问真正的服务,甚至导向新的服务地址从而被骗什么的,这个情况就是域名劫持以及可能发生的后果。

4把myapp.test映射成本地nginx的ip

在如下地址的文件中

makefile 复制代码
C:\Windows\System32\drivers\etc\hosts

的最后一行添加如下的代理,让myapp.test指向你本地127.0.0.1,类似于localhost

复制代码
127.0.0.1 myapp.test

然后配置你本地的nginx服务配置

nginx 复制代码
server {
    listen 80;
    server_name myapp.test;

    root /var/www/html;
    index index.html;

    location / {
        allow all;
        try_files $uri $uri/ =404;
    }
}

如下当你访问myapp.test的时候就指向了你本地的nginx项目了

总结

DNS是浏览器访问服务器的第一步,就像人打电话需要知道另外一个人的电话号码一样,这个过程就是dns解析,如果信息被篡改,你得到了诈骗电话,那么这个就是DNS劫持。

相关推荐
掘金一周3 分钟前
看看大家每月的成本有多少 | 沸点周刊 7.30
前端·人工智能·后端
ji_shuke12 分钟前
从零深入:基于 Playwright + Pytest + Allure 的企业级 Web 端到端自动化测试框架实战
前端·自动化测试·docker·jenkins·pytest·allure·playwright
陆枫Larry37 分钟前
用 CSS Mask + background-color 给图标「换色」
前端
古韵1 小时前
你的 uni-app 分页,一个 hook 搞定竞态和加载
javascript·vue.js·uni-app
幼儿园技术家2 小时前
原来不用发版也可以做到版本更新
前端·js or ts
亦暖筑序2 小时前
AgentScope-Java 入门:完善 Vue 前端、发布 GitHub,并规划下一步
java·前端·vue.js
北斗落凡尘2 小时前
Vue面试题
前端
程序员黑豆2 小时前
鸿蒙应用开发之父子组件传参:@Param、@Event、@Once 装饰器详解与实战
前端·harmonyos
ClouGence2 小时前
一个人录好的测试用例,团队怎么一起用?
前端·测试
ShineWinsu2 小时前
对于Linux:传输层协议UDP原理的解析
linux·c++·面试·udp·协议·传输层·计算机系统