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

域名与DNS理解

文章目录

  • 域名与DNS理解
    • 域名
      • 域名层级
      • 关键规则
      • 实际域名分解示例‌(以百度为例)
      • 域名与IP
    • NDS
      • DNS 记录类型
      • DNS 解析流程
      • DNS 层级职责说明
        • 根DNS(.)
        • TLD服务器(如 .com)
        • 权威DNS(如 ns1.example.com)
        • 本地DNS(递归解析器)
      • 特殊情况处理
      • DNS缓存
        • DNS 缓存的作用
        • DNS 缓存的存储位置
        • DNS 缓存的生命周期(TTL)
        • DNS 缓存的工作流程
        • 如何查询DNS缓存?
        • 如何清除 DNS 缓存?
      • DNS与CDN
        • 工作流程
        • DNS 与 CDN 的协同
        • 对比情况
        • 实际应用场景
      • 修改本地DNS
      • 修改host文件,绕开DNS
        • Hosts 文件的作用
        • Hosts 文件修改行为
        • 典型应用场景
        • 与DNS修改的区别

域名与DNS理解

  • 域名注册:

    用户通过注册商(如阿里云(万网),Cloudflare )购买域名(如 example.com),并配置DNS服务器。

  • DNS 管理:

    在DNS服务器上添加解析记录(A/CNAME/MX等),将域名指向主机IP或服务。

域名

域名是用于标识互联网上计算机或服务的字符串(如 www.example.com),用于替代复杂的IP地址(如 192.0.2.1),方便用户记忆和访问。

域名层级

在这里插入图片描述

.
├── 根域名 (root)
│
├── 顶级域 (TLD)
│   ├── 通用顶级域 (gTLD) → .com .org .net
│   ├── 国家代码顶级域 (ccTLD) → .cn .us .jp
│   └── 新通用顶级域 → .app .blog .ai
│
├── 二级域 (SLD) → example.com
│
└── 子域 (Subdomain) → www.example.com mail.example.com
层级描述示例详细说明
根域(Root)域名系统的根部分.根域是整个域名系统的最上层,它没有具体的名称,通常用一个点(.)表示。
顶级域(TLD)域名的最高级别部分.com, .org, .net顶级域名(TLD)是域名的最右侧部分,分为通用顶级域名(gTLD)国家或地区顶级域名(ccTLD)
.gov, .edu, .jp, .cn通用顶级域名(gTLD)如 .com, .org; 国家/地区顶级域名(ccTLD)如 .jp(日本)和 .cn(中国)。
.app .blog .ai新通用顶级域 .app(专为应用程序设计),.blog (面向个人或企业博客内容平台)和.ai(原为安圭拉国家代码域,现广泛用于人工智能领域)
二级域(Second-Level Domain)域名的核心部分,通常是组织或网站名称example, google二级域名是紧接顶级域名后的部分,通常用于标识网站或组织。大多数企业和个人网站的域名是二级域名。
子域(Subdomain)位于二级域下的子部分,通常用于区分不同服务或区域www, mail, blog子域用于组织内部或功能的划分,例如“www.example.com”中的 “www” 是子域,用于访问网站。
  • 顶级域名(TLD)分类:

    • 通用顶级域名(gTLD):这些顶级域名不与特定国家或地区挂钩,适用于各种用途。例如,.com 是最常见的通用顶级域名,.org 用于组织,.edu 用于教育机构,.gov 用于政府机构。
    • 国家代码顶级域名(ccTLD):这些顶级域名与国家或地区相对应,通常是两位字母的代码。例如,.cn 是中国的 ccTLD,.jp 是日本的 ccTLD。
  • 二级域名的作用:

    • 标识性:二级域名是域名中最具代表性的部分,它通常指代某个特定的品牌、组织或服务。例如,google.com 中的 google 就是二级域名,代表了该网站的品牌。
    • 层次结构:二级域名通常用于组织和分配域名空间,以便于管理和区分不同的业务或服务。它也是网站的“身份”,对用户和搜索引擎具有重要意义。

关键规则

  • 域名字符大小写不敏感,JD.COM 与 jd.com结果一样

  • 从右到左层级递减:
    a.b.c.com → com (TLD) → c (SLD) → b (三级) → a (四级)。

  • 长度限制:

    • 层级最多可达127级
    • 每级最长 63 字符,总长 ≤ 253 字符。
  • 允许字符:

    字母(a-z)、数字(0-9)、连字符(-,但不在首尾)。

实际域名分解示例‌(以百度为例)

  www.baidu.com.│   │   │   ││   │   │   └── 根域 (通常省略)│   │   └────── 顶级域 (.com)│   └────────── 二级域 (baidu)└───────────── 子域 (www)

域名与IP

  • 对比理解

    对比项IP 地址域名(Domain Name)
    定义互联网设备的唯一数字标识(如 192.0.2.1)。人类可读的字符串标识(如 example.com)。
    作用用于网络设备间的通信寻址。替代复杂IP,方便用户记忆和访问。
    示例IPv4: 8.8.8.8(Google DNS)google.com, baidu.com
    层级结构分为网络号和主机号(如 192.168.1.1/24)。从右到左层级递减(如 .com → example)。
    类型IPv4(32位)和IPv6(128位)。域名有不同的类别,如顶级域名(TLD)、二级域名等。
    解析过程通过域名解析系统(DNS)将域名转换为IP地址。通过域名解析系统(DNS)将域名解析为IP地址。
    人类友好性不易记忆,需要通过数字表示。更易记忆和理解,通常有特定的意义或品牌关联。
    变化频率固定,通常不会随时变化。可能会发生变化,如域名所有者更换、服务器迁移等。
    可配置性由网络管理员或运营商配置。可由域名注册商进行注册和管理。
  • 域名绑定IP的常见方式

    • A记录(IPv4)
      将域名指向一个IPv4地址:
      example.com.    A    192.0.2.1
      
    • AAAA记录(IPv6)
      将域名指向一个IPv6地址:
      example.com.    AAAA    2001:db8::1
      
    • CNAME记录(别名)
      将域名指向另一个域名(最终解析到IP):
      	www.example.com.    CNAME    example.com.
      
  • 如何手动查询域名对应的IP?

    • 使用 ping
      ping example.com
      
    • 输出:
      PING example.com (93.184.216.34): 56 data bytes
      
    • 使用 nslookup
      nslookup example.com
      
    • 输出:
      Server:     8.8.8.8
      Address:    8.8.8.8#53Non-authoritative answer:
      Name:   example.com
      Address: 93.184.216.34
      
    • 使用 dig(Linux/macOS)
      dig example.com +short
      
      • 输出:
      93.184.216.34
      

NDS

将域名转换为IP地址(正向解析),或反之(反向解析),类似于互联网的“电话簿”

在这里插入图片描述

DNS 记录类型

记录类型作用示例
A域名 → IPv4 地址example.com → 192.0.2.1
AAAA域名 → IPv6 地址example.com → 2001:db8::1
CNAME域名别名 → 另一个域名www.example.com → example.com
MX邮件服务器地址example.com → mail.example.com
NS指定域名的权威 DNS 服务器example.com → ns1.cloudflare.com

DNS 解析流程

以访问 www.example.com 为例:

在这里插入图片描述

  • 用户发起请求
    用户在浏览器输入 www.example.com,操作系统发起DNS查询。

  • 查询本地DNS缓存

    • 检查顺序:浏览器缓存 → 系统缓存(如hosts文件) → 路由器缓存 → 本地DNS服务器(如ISP提供的8.8.8.8)。

    • 若缓存命中:直接返回IP(此时本地DNS会直接返回IP,无需后续步骤)。

    • 若缓存未命中:进入递归查询流程。

  • 完整流程示例(无缓存)

    • 用户 → 本地DNS:查 www.example.com

    • 本地DNS → 根DNS:.com 的TLD服务器?

    • 根DNS返回:a.gtld-servers.net(.com TLD服务器之一)

    • 本地DNS → TLD服务器:example.com 的权威DNS?

    • TLD返回:ns1.example.com

    • 本地DNS → 权威DNS:www.example.com 的IP?

    • 权威DNS返回:192.0.2.1(A记录)

    • 本地DNS → 用户:返回 192.0.2.1,并缓存结果。

DNS 层级职责说明

根DNS(.)
  • 全球13组根服务器,仅返回TLD服务器地址(如 .com 的服务器列表)。
TLD服务器(如 .com)
  • 管理顶级域,返回二级域(如 example.com)的权威DNS地址。
权威DNS(如 ns1.example.com)
  • 最终确定IP的层级,直接返回域名对应的A记录或CNAME记录。
本地DNS(递归解析器)
  • 代理用户完成所有查询,汇总结果后返回IP(并缓存)。

特殊情况处理

  • CNAME 记录

    • 若权威DNS返回 www.example.com CNAME example.com,本地DNS需重新查询 example.com 的IP。
  • DNS 缓存时间(TTL)

    • 权威DNS返回记录时会指定TTL(如3600秒),本地DNS根据TTL决定缓存有效期。
  • DNS 负载均衡

    • 权威DNS可能返回多个IP(如轮询或地理分区),本地DNS随机选择其一。

DNS缓存

DNS 缓存是 域名解析系统(DNS) 的重要组成部分,用于 加速域名解析 并 减少重复查询。它的核心作用是 存储已查询过的域名解析结果,避免每次访问网站时都重新进行完整的 DNS 解析流程。

DNS 缓存的作用
  • 提高解析速度:减少 DNS 查询时间,加快网页加载。

  • 降低服务器负载:减少对根DNS、TLD服务器和权威DNS的请求压力。

  • 提升用户体验:减少因DNS查询导致的延迟。

DNS 缓存的存储位置

DNS 缓存分布在多个层级,按 缓存位置 可分为:

缓存位置说明缓存时间(TTL)
浏览器缓存Chrome、Firefox 等浏览器会缓存DNS记录(通常几分钟~几小时)。由操作系统或浏览器决定
操作系统缓存Windows(ipconfig /displaydns)、Linux(systemd-resolve --statistics)取决于DNS记录的TTL
路由器缓存家庭/企业路由器可能缓存DNS查询结果。由路由器设置决定
本地DNS服务器ISP(如电信、联通)提供的DNS服务器,或公共DNS(如 8.8.8.8)。由权威DNS返回的TTL决定
公共DNS缓存Google DNS(8.8.8.8)、Cloudflare DNS(1.1.1.1)等。遵循记录的TTL
DNS 缓存的生命周期(TTL)
  • TTL(Time To Live):DNS记录在缓存中的存活时间(单位:秒),由 权威DNS服务器 设置。

    • 例如:example.com 的A记录 TTL=3600(1小时),表示缓存服务器最多保存1小时后需重新查询。
  • 常见TTL设置:

    • 短TTL(300s~3600s):适用于频繁变更的DNS记录(如CDN、故障转移)。

    • 长TTL(86400s~):适用于稳定的服务(如企业官网)。

DNS 缓存的工作流程

在这里插入图片描述

如何查询DNS缓存?
场景命令/方法
Windowsipconfig /displaydns 或 PowerShell 中的 Get-DnsClientCache
macOSdscacheutil -cachedump -entries Host
Linuxsystemd-resolve --statisticsnscd -g
浏览器Chromechrome://net-internals/#dns
Firefoxabout:networking#dns
路由器登录管理界面查看DNS缓存(具体位置因品牌而异)。
绕过缓存使用 dig example.com @8.8.8.8 +nocache+trace
  • 浏览器 DNS 缓存查询
    • Chrome:访问 chrome://net-internals/#dns

      • 显示所有缓存的DNS记录及TTL。
    • Firefox:

      • 地址栏输入 about:networking#dns。
    • Edge:

      • 无直接界面,需通过 edge://net-export 导出日志分析。
如何清除 DNS 缓存?
  • 浏览器缓存

    • Chrome/Firefox:访问 chrome://net-internals/#dns → 点击 “Clear host cache”。

    • Edge/Safari:重启浏览器即可。

  • 操作系统缓存

系统命令或操作步骤
Windows在管理员权限下运行 ipconfig /flushdns 命令。
Linux如果使用Systemd:sudo systemd-resolve --flush-caches
或者使用nscd服务:sudo service nscd restart
macOS执行 sudo killall -HUP mDNSResponder 命令。
路由器重启路由器或登录路由器的管理界面清除DNS缓存。

DNS与CDN

CDN(Content Delivery Network,内容分发网络) 是一种分布式服务器网络,通过在全球多个节点缓存静态和动态内容,使用户可以从最近的服务器获取数据,从而降低延迟、提高访问速度,并减轻源站负载。
主流CDN服务商

  • 国内:阿里云CDN、腾讯云CDN、百度云加速、网宿科技

  • 国际:Cloudflare、Akamai、AWS CloudFront、Fastly

工作流程

在这里插入图片描述

  • 边缘节点:全球分布的缓存服务器

  • 缓存策略:TTL控制、热内容预加载

  • 动态加速:针对API等非缓存内容优化路由

DNS 与 CDN 的协同

CDN依赖DNS实现流量调度

在这里插入图片描述

  • 典型交互示例
    • 用户访问 www.example.com

    • DNS 返回基于地理位置的 CDN 节点 IP(如上海用户返回 180.101.49.12)

    • 用户直接从上海CDN节点获取内容,无需连接美国源站

对比情况
特性DNSCDN
主要功能域名→IP转换内容就近分发
性能影响解析延迟(ms级)传输加速(降低RTT)
记录类型A/CNAME/MX等缓存规则、边缘节点列表
安全能力DNSSEC防篡改DDoS防护、WAF集成
典型厂商Cloudflare DNS, Google DNSAkamai, Cloudflare, AWS CloudFront
实际应用场景
  • 静态网站加速
    • DNS:将 www.example.com CNAME 指向 CDN 域名(如 example.cdn.com)
    • CDN:缓存HTML/CSS/JS到边缘节点
  • 视频流媒体
    • DNS:智能解析到最近的视频CDN节点
    • CDN:分段缓存热播视频(HLS/DASH)
  • 全球业务
    • DNS:返回用户所在大洲的CDN入口(如欧洲用户→法兰克福节点)
    • CDN:同步源站数据至多区域节点

修改本地DNS

修改本地DNS设置可以帮助你提升网络访问速度、增强安全性或访问特定内容。
在这里插入图片描述
Windows 系统

  • 打开网络设置

    • 右键点击任务栏的 网络图标 > 选择 “打开网络和Internet设置”。

    • 或通过 控制面板 > 网络和共享中心。

  • 进入适配器选项

    • 点击 “更改适配器选项”(Win10/11)或 “管理网络连接”(Win7)。
  • 修改DNS

    • 右键当前使用的网络(如“以太网”或“Wi-Fi”)> 选择 “属性”。

    • 双击 “Internet协议版本4 (TCP/IPv4)”(或IPv6)。

    • 选择 “使用以下DNS服务器地址”,输入DNS地址:

  • 常用公共DNS(任选一组):

    • Google DNS:8.8.8.8 和 8.8.4.4

    • Cloudflare DNS:1.1.1.1 和 1.0.0.1

    • 阿里DNS:223.5.5.5 和 223.6.6.6

  • 勾选 “退出时验证设置” > 点击 “确定”。

  • 刷新DNS缓存

    • 按 Win + R,输入 cmd 打开命令提示符,执行:
    ipconfig /flushdns
    

修改host文件,绕开DNS

Hosts 文件的作用
  • 域名解析优先级最高

    • 当访问一个域名时,系统会 先检查Hosts文件,如果存在对应记录,则直接使用该IP,不会请求DNS服务器。

    • 若Hosts中无记录,才会通过DNS系统解析。

  • 核心功能

    • 屏蔽特定网站:将恶意或广告域名指向无效IP(如 0.0.0.0)。

    • 加速访问:将常用域名直接映射到服务器IP,跳过DNS查询。

    • 开发测试:将测试域名指向本地或开发服务器IP(如 127.0.0.1)。

    • 绕过DNS污染/封锁:强制将域名解析到正确的IP(如访问被污染的国外网站)。

Hosts 文件修改行为

需用管理员/root权限修改(如Windows用记事本“以管理员身份运行”,macOS/Linux用 sudo)

  • 文件位置

    • Windows: C:\Windows\System32\drivers\etc\hosts

      在这里插入图片描述

    • macOS/Linux: /etc/hosts

    在这里插入图片描述

  • 修改格式

    • 每行一条记录,格式为:
    IP地址   域名
    
    • 例如:
    127.0.0.1   localhost
    0.0.0.0     ads.example.com
    104.18.20.36 github.global.ssl.fastly.net  # 加速GitHub
    
  • 生效条件

    • 保存文件后立即生效,但可能需要:

    • 刷新DNS缓存(见上文)。

    • 重启浏览器或应用(部分程序会缓存DNS结果)。

在这里插入图片描述

典型应用场景
  • 屏蔽广告/恶意网站
0.0.0.0     ad.doubleclick.net
0.0.0.0     tracking.malware.com
  • 开发环境模拟
192.168.1.100   myapp.test
  • 解决DNS污染
185.199.108.154  github.com  # 强制使用正确IP
与DNS修改的区别
对比项Hosts文件DNS服务器
生效范围仅当前设备所有使用该DNS的设备
优先级高于DNS解析低于Hosts文件
灵活性需手动维护自动全局生效
适用场景精准控制单个域名全局优化或绕过网络限制

相关文章:

  • 基于Springboot + vue实现的列书单读书平台
  • OVP UVP与UVLO对比
  • 【办公类-89-03】20250429AI写的研讨记录,清除格式,统一格式,名字替换。部分加粗,添加页眉
  • Leetcode 3528. Unit Conversion I
  • MySQL 索引与事务详解
  • 在线文章系统自动化测试报告
  • 工业声纹采集设备的市场需求趋势简析
  • Qwen3 开源!深度对比 DeepSeek,一文选对模型
  • 巧记英语四级单词 Unit6-下【晓艳老师版】
  • 首发记忆行车方案与座舱智能管家,佑驾创新“抢跑”驾舱融合市场
  • GTC Taipei 2025 医疗域前瞻:从AI代理到医疗生态,解码医疗健康与生命科学的未来图景
  • CKA和CKS认证的介绍、学习、备考指南
  • 制作一款打飞机游戏30:动画系统
  • 业务层在事务中高频创建动态表然后删除或者回滚导致 pg_dump 概率出现备份失败问题分析
  • Python入门:流程控制练习
  • mmap核心原理和用途及其与内存映射段的关系
  • C++类与对象基础
  • FPGA 38 ,FPGA 网络通信协议栈基础,ARP 协议深度解析与模块划分( ARP与以太网帧,以及ARP模块常用文件 )
  • 【Stable Diffusion】文生图进阶指南:采样器、噪声调度与迭代步数的解析
  • 实习技能记录【5】-----项目中消息传递到ui层的方法
  • 东风着陆场近日气象条件满足神舟十九号安全返回要求
  • 上海市十六届人大常委会第二十一次会议表决通过有关人事任免事项
  • 交行一季度净利253.72亿元增1.54%,不良率微降
  • 玉渊谭天丨中方减少美国农产品进口后,舟山港陆续出现巴西大豆船
  • 传智教育连续3个交易日跌停:去年净利润由盈转亏
  • 王沪宁会见越共中央委员、越南祖国阵线中央副主席兼秘书长阮氏秋荷