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

相关文章

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

深入理解go中interface机制

《深入理解go中interface机制》本文主要介绍了深入理解go中interface机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前言interface使用类型判断总结前言go的interface是一组method的集合,不

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

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域