DNS 与 hosts 文件:Windows 11 中的名称解析配置

诸神缄默不语-个人技术博文与视频目录

一个域名会对应多个IP地址,当电脑访问域名时会默认指定访问其中一个IP地址(以下正文会介绍通过hosts文件和DNS服务器选择指定映射的IP的原理),总之有时我们可能会需要将域名对应的IP地址指定为另外一个,我遇到过这样两种场景,需要操作hosts文件修改:1. 直接访问GitHub和z-lib太慢,直接指定访问的IP。可以从站长之家(https://tool.chinaz.com/dns/github.com)或者别的类似的检测IP的工具直接找一个最新可用的就行。2. 公司的网站对内对外功能不一样,在公网也是通过修改hosts直接改域名映射的IP地址。

以下介绍详细内容。

文章目录

  • 简介
  • [什么是 DNS](#什么是 DNS)
  • [什么是 hosts 文件](#什么是 hosts 文件)
  • [Windows 11 中 hosts 文件的设置](#Windows 11 中 hosts 文件的设置)
    • [查看 hosts 文件](#查看 hosts 文件)
    • [编辑 hosts 文件](#编辑 hosts 文件)
  • [Windows 11 中 DNS 服务器的配置](#Windows 11 中 DNS 服务器的配置)
  • [hosts 与 DNS 的优先级和典型应用场景](#hosts 与 DNS 的优先级和典型应用场景)
  • 注意事项

简介

当你在浏览器中输入网站地址时,计算机需要将人类可读的域名(如 www.example.com)转换为机器可路由的 IP 地址(如 93.184.216.34)。这一过程称为域名解析 。操作系统主要依赖两种机制完成解析:DNS (域名系统)和本地的 hosts 文件。本文介绍两者的工作原理,以及在 Windows 11 中如何查看和修改相关设置。

什么是 DNS

DNS 是一个分布式数据库系统,负责将域名映射到 IP 地址。它的核心功能可以理解为互联网的电话号码本。

当应用程序需要解析某个域名时,会向系统配置的 DNS 服务器 发送查询请求。DNS 服务器可能直接返回结果,也可能代表客户端向其他服务器递归查询,最终将 IP 地址返回给请求方。整个过程对用户透明,通常只需几十毫秒。

DNS 服务器由网络服务商(ISP)自动分配,也可以由用户手动指定。使用不同的 DNS 服务器可能影响解析速度、可靠性,以及是否能访问某些被特定服务器屏蔽的域名。

什么是 hosts 文件

hosts 文件是操作系统中一个纯文本文件,用于静态映射域名与 IP 地址。它不依赖任何外部服务器,所有映射关系由用户手动维护。

当系统需要进行名称解析时,会优先查询 hosts 文件。如果文件中存在对应条目,系统直接使用该 IP 地址,不会发起 DNS 查询。只有在 hosts 中没有匹配记录时,才会转向 DNS 服务器。

hosts 文件的位置在所有主流操作系统上固定:

  • Windows: C:\Windows\System32\drivers\etc\hosts
  • macOS / Linux: /etc/hosts

该文件的每一行代表一条记录,格式为:(中间那个空,用spaceTab都行)

复制代码
IP地址 域名 [别名...]

例如:

复制代码
127.0.0.1 test.local

# 开头的行是注释,会被系统忽略。

Windows 11 中 hosts 文件的设置

查看 hosts 文件

直接使用记事本打开 hosts 文件即可查看当前内容。默认情况下,文件中只包含注释,没有任何生效的映射条目。

编辑 hosts 文件

由于 hosts 文件位于受保护的系统目录,修改需要管理员权限。正确步骤:

  1. 将hosts文件复制到非C盘的普通文件夹中
  2. (为防止意外,可以将当前hosts文件复制一份备份)
  3. 用记事本打开hosts,增加、删除或修改所需的域名映射条目
  4. 保存文件
  5. 将保存后的文件复制回C:\Windows\System32\drivers\etc文件夹,当弹出需要管理员权限时点击确定

hosts 文件的修改通常即时生效,但为了确保系统 DNS 缓存中的旧记录被清除,建议在命令提示符或 PowerShell 中执行以下命令:

cmd 复制代码
ipconfig /flushdns

该命令会清空 DNS 解析缓存,强制系统重新读取 hosts 文件并发起新的 DNS 查询。

Windows 11 中 DNS 服务器的配置

Windows 11 提供图形界面用于修改 DNS 服务器地址,支持 IPv4 和 IPv6。

通过"设置"应用修改

  1. 打开"设置"(Win + I),进入"网络和 Internet"。
  2. 根据当前连接类型,点击"以太网"或"Wi-Fi"。
  3. 点击当前连接的网络名称,进入网络属性页面。
  4. 找到"DNS 服务器分配"一栏,点击旁边的"编辑"按钮。
  5. 在弹出的对话框中,将设置由"自动 (DHCP)"改为"手动"。
  6. 根据需要打开 IPv4 或 IPv6 的开关。
  7. 在"首选 DNS"和"备用 DNS"字段中填入目标服务器地址。常用公共 DNS 示例:
    • Cloudflare : 1.1.1.11.0.0.1
    • Google : 8.8.8.88.8.4.4
    • 阿里 DNS : 223.5.5.5223.6.6.6
  8. 如果同时需要 IPv6 DNS,可在下方对应的 IPv6 栏位中填写,例如 Cloudflare 的 2606:4700:4700::1111
  9. 点击"保存"。

修改会立即生效。此后所有 DNS 查询都会发往指定的服务器。

通过"控制面板"修改

对于习惯传统界面的用户,仍可使用控制面板:

  1. 打开"控制面板" → "网络和共享中心"。
  2. 点击当前连接的网络(如"以太网")。
  3. 在弹出的状态窗口中,点击"属性"。
  4. 在"此连接使用下列项目"列表中,双击"Internet 协议版本 4 (TCP/IPv4)"。
  5. 选择"使用下面的 DNS 服务器地址",填写首选和备用 DNS,然后确定。

该方法同样适用于 IPv6 的配置,只需双击"Internet 协议版本 6 (TCP/IPv6)"。

hosts 与 DNS 的优先级和典型应用场景

优先级

名称解析时,Windows 遵循固定的查询顺序:

  1. 检查本机 hosts 文件。
  2. 如果未找到,检查本地 DNS 缓存(可通过 ipconfig /displaydns 查看)。
  3. 如果缓存未命中,向配置的 DNS 服务器发起查询。

这意味着 hosts 中的条目优先级最高,可以覆盖任何来自 DNS 的解析结果。

常见用途

  • 屏蔽特定网站 :将广告、跟踪器或不希望访问的域名映射到 127.0.0.10.0.0.0,请求会被导向本机,导致连接失败。
  • 本地开发测试 :在正式发布前,将域名指向本地或测试服务器的 IP 地址,例如 192.168.1.100 dev.example.com,从而在不改动真实 DNS 记录的情况下进行验证。
  • 加速域名解析:对于不常变更 IP 的服务器,可在 hosts 中预先写入映射,绕过 DNS 查询过程,理论上减少极短的解析耗时(实际影响多不明显)。
  • 绕过 DNS 污染或劫持:如果某域名的 DNS 查询被篡改,可在 hosts 中手动指定正确的 IP,前提是已知正确地址。

注意事项

  1. 格式要求 :hosts 文件对格式敏感。IP 地址和域名之间必须至少有一个空白字符。不要添加多余的标点。注释使用半角 #
  2. 仅对本机有效:hosts 文件的修改只影响当前计算机,不会影响局域网内其他设备。
  3. 权限问题:如果直接双击 hosts 文件并用普通权限的记事本编辑,保存时会遇到"拒绝访问"错误。务必以管理员身份运行文本编辑器。
  4. 安全风险:某些恶意软件会篡改 hosts 文件,将银行、社交网站域名指向钓鱼网站 IP。如果发现莫名跳转,应检查 hosts 文件内容是否被异常修改。
  5. DNS 设置冲突:部分第三方安全软件或 VPN 应用可能接管系统的 DNS 设置,导致手动指定的 DNS 不生效。排查时可暂时关闭这类软件。
  6. 缓存残留:修改 hosts 或 DNS 后,浏览器或应用可能仍有自己的 DNS 缓存。重启浏览器或清除其内部 DNS 缓存可以解决问题。
  7. 文件备份:修改 hosts 前建议复制一份原始文件作为备份,便于出现问题时恢复。

通过理解并合理使用 hosts 文件和 DNS 设置,你可以更精细地控制计算机的名称解析行为,满足从开发调试到隐私保护的多种需求。

相关推荐
牙牙要健康4 小时前
Windows 下为 VSCode 配置 Anaconda:从零安装 Python 环境到完整配置教程
windows·vscode·python
AI周红伟5 小时前
Token工厂:无锡部署昇腾384超节点算力集群,制造Token
大数据·人工智能·windows·百度·copilot·制造
数据法师6 小时前
微软官方外挂 PowerToys 深度解析:从架构设计到0.99新特性,重构你的Windows生产力
windows·microsoft·重构
墨着染霜华7 小时前
Windows 启动 Nginx 一闪而过、pid 丢失、logs 目录报错彻底解决
运维·windows·nginx
阿洛学长8 小时前
Python安装与环境安装全程详细教学(包含Windows版和Mac版)
windows·python·macos
前端若水8 小时前
处理智能体的不确定性:重试、回退与人工介入
大数据·人工智能·windows·开源协议
万邦科技Lafite9 小时前
电商发展新趋势:阿里巴巴商品详情API返回值的深度利用
windows·api·api接口·开放api·电商开放平台·淘宝开放平台
九成宫9 小时前
WSL2 网络优化配置:提升Git克隆与包下载速度
windows·笔记·代理模式·pip·wsl
至善迎风9 小时前
Windows 10/11 如何退出微软账户并改用本地账户登录(含找不到选项的解决方法)
windows·microsoft