IP地址与DNS之间的关系——真正理解DNS

2024-09-02 22:58

本文主要是介绍IP地址与DNS之间的关系——真正理解DNS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、IP地址

容易理解而又不太准确的说,IP地址是电脑在网络中的唯一标识,局域网IP是限于局域网内可以相互访问的电脑;公网中的固定IP,可以说是电脑在公网网络中的唯一标识。

2、DNS(Domain Name System)域名服务系统,简单的说就是域名与IP转换服务(负责将你输入的域名转换为IP,类似于电话本,把你拨打电话的名字转换为手机号)。

网络真正的访问是通过IP来实现的,但是IP地址像电话一样不好记(或者大部分时候百度、淘宝等网站为了负载均衡和大规模访问其实有很多IP地址的),这时候大家都是用域名(如www.baidu.com)比较好记住的地址。

www.baidu.com如何转换为百度的IP呢?就是通过DNS服务(就类似于一个巨型、记录了全世界ip与域名的电话本),指定到对应的IP服务器。

3、DNS设置

既然DNS是一个公共的“IP地址解析电话本”,那网络上就有很多公共的DNS服务,一般最常用的就是114.114.114.114,这就是为什么我们经常设置DNS的IP为114.114.114.114,意思就是解析域名的时候去114.114.114.114这台服务器上来解析;当然如果填了备选服务,就是在114.114.114.114因为某种原因无法解析的时候,去备选IP的DNS服务器上解析。

当然除了以上比较出名的、相对来说特别稳定的DNS外还有不少不知名的一些DNS解析服务器就不在列举了;这里特别说明一下Google DNS 8.8.8.8可以说是为全球DNS提供一个最基础的保障(假设当其他DNS服务器都出问题了的最后一道保障),但是在中国用Google DNS明显存在问题会比较慢,一个请求先要请求美国的Google服务器,把你的域名解析成IP给你,去美国饶了一圈你才拿到真正要访问的IP。

而现在日常中很多网络设置都会设置成自动获取IP地址和DNS服务器,可以查看一下网络属性,自动选择114.114.114.114作为DNS服务器的居多

4、DNS引出的hosts文件

hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。

简单的说浏览器里面输入一个域名,他先去本地的hosts文件解析对应的IP地址,找不到就去DNS域名服务器找!

host文件Windows下位置:C:\Windows\System32\drivers\etc;hosts有几个作用:通过本地加快解析;屏蔽一些网站;局域网IP起一个别名容易记住;

5、DNS劫持

本来你访问A网站,DNS服务器会给你返回A网站的IP,但是如果DNS劫持了,这时候会给你返回一个其他网站B的IP(这并不是你想要的),这时候你访问的内容就会进入其他网站;因此DNS劫持会严重影响上网体验。

6、常见的DNS不正确/修复DNS的问题

大家经常会遇到一个情况QQ能上,但是QQ空间打不开,这一般是DNS解析除了问题;

原因很简单,QQ本身是通过IP直接连腾讯的服务器,不需要去DNS服务器解析;而QQ空间是通过域名去访问腾讯的服务器,这大概率是域名解析不了或者解析不正确导致的,也就是DNS设置有问题。

参考:

DNS是什么东西,他有什么用,DNS劫持说的又是啥

https://zhuanlan.zhihu.com/p/60725155

这篇关于IP地址与DNS之间的关系——真正理解DNS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

关于DNS域名解析服务

《关于DNS域名解析服务》:本文主要介绍关于DNS域名解析服务,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录DNS系统的作用及类型DNS使用的协议及端口号DNS系统的分布式数据结构DNS的分布式互联网解析库域名体系结构两种查询方式DNS服务器类型统计构建DNS域

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c