Windows 系统的 hosts 文件是一个没有扩展名的纯文本文件,它的核心作用是将域名(网址)强制映射到指定的 IP 地址

你可以把它理解为电脑本地的一个“私人专属通讯录”或“微型 DNS 服务器”。

它是如何工作的?

当你在浏览器中输入一个网址(例如 github.com)或程序尝试连接某个域名时,Windows 系统解析该域名的顺序是:

  1. 优先检查 hosts 文件: 看看里面有没有关于这个域名的 IP 地址记录。
  2. 如果没有找到: 系统才会通过网络向外部的 DNS 服务器(比如你所在运营商的 DNS,或者 114.114.114.114)发起查询请求。

只要在 hosts 文件里写了规则,系统就会绝对服从这条规则,不再去网络上查询。

hosts 文件的常见用途

  1. 本地开发与测试: 开发者经常需要将某个测试域名(比如 dev.mysite.com)指向本机的 IP 地址 127.0.0.1,这样在电脑上就能直接预览开发中的项目。
  2. 屏蔽恶意网站或广告: 如果你把某个弹窗广告的域名(比如 ads.example.com)映射到一个无效的 IP 地址(如 0.0.0.0127.0.0.1),电脑就永远无法加载这个域名下的广告内容了。
  3. 绕过 DNS 污染或加速访问: 有些网站(比如 GitHub 原生素材库)在国内访问很慢或不稳定,是因为自动获取的 DNS 解析出了问题。如果你查到了该网站真实、速度最快的 IP 地址,直接写死在 hosts 文件里,就可以实现加速直连。

文件在哪里?

在 Windows 系统中,它的固定路径是: C:\Windows\System32\drivers\etc\hosts

hosts 文件的书写格式

它的语法非常简单,每行一条记录,前面写 IP 地址,后面写对应的域名,中间用空格或 Tab 键隔开。# 号开头的行是注释,不起作用。

1
2
3
4
5
# 格式:IP地址          域名
127.0.0.1 localhost
192.168.1.100 my-test-server.local
0.0.0.0 bad-ad-website.com
140.82.113.4 github.com

如何修改它?

由于 hosts 文件属于系统关键文件,直接双击打开修改是无法保存的(会提示没有权限)。正确的修改方法是:

  1. 点击系统左下角搜索,输入“记事本”。
  2. 右键点击“记事本”图标,选择**“以管理员身份运行”**。
  3. 在记事本中点击“文件” -> “打开”,找到 C:\Windows\System32\drivers\etc\ 目录。
  4. 将右下角的文件类型从“文本文档 (.txt)”改为“所有文件 (.*)”**,就能看到 hosts 文件了。
  5. 打开、修改并保存(快捷键 Ctrl + S)。

修改保存后,通常会立即生效。如果没有生效,可以按 Win + R 输入 cmd,然后在命令行中运行 ipconfig /flushdns 来刷新系统的 DNS 缓存。

Windows 官方默认

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

应用

下载visual studio时速度缓慢,可以通过修改host文件提高速度

原理解析:基于 hosts 文件的最优 CDN 节点静态绑定技术(以 Visual Studio 加速为例)

通过修改本地 hosts 文件来解决特定平台(如 Visual Studio、GitHub 等)下载缓慢或访问受阻的问题,其核心网络原理在于:绕过系统默认的动态 DNS 解析,强制建立目标域名与最优 CDN 边缘节点之间的静态直连。

大型跨国网络服务通常采用全球内容分发网络(CDN)架构。以 Visual Studio 为例,当我们在国内请求 download.visualstudio.microsoft.com 时,本地运营商的 DNS 服务器往往受限于跨网策略,未能分配物理距离最近、网络最畅通的服务器节点,导致请求被重定向至海外或拥堵节点,引发极低的下载速度。

针对此问题的工程实现步骤与具体案例如下:

1. 全网节点测速优选(寻找最优解) 借助第三方多地 Ping 检测平台(如站长 DNS 查询工具),在全网范围内对目标域名进行探测。例如,对 download.visualstudio.microsoft.com 进行测速后,我们从众多 CDN 节点中,筛选出一个针对当前宽带环境延迟极低(如 6ms)且零丢包的优质国内 IP 地址(假设为 122.225.57.107)。

2. 建立本地静态映射(写入规则) 将筛选出的优质 IP 与目标域名,以固定格式写入操作系统的 C:\Windows\System32\drivers\etc\hosts 文件中。以 VS 加速为例,在文件末尾追加如下记录:

1
122.225.57.107 download.visualstudio.microsoft.com

3. 系统级请求劫持与直连(接管路由) 由于 Windows 系统的网络底层逻辑设定,本地 hosts 文件的寻址优先级绝对高于向外部 DNS 服务器发起的查询。这一步相当于在系统内部建立了一条“绿色通道”。此时再打开 VS Installer,系统将不再向外部查询下载地址,而是直接向 122.225.57.107 这个最优节点请求数据。

4. 清理缓存释放新规(生效机制) 最后,通过在终端(CMD)执行 ipconfig /flushdns 指令,清空系统内部存留的旧版错误 DNS 缓存。这一步确保新的 hosts 静态映射规则立刻接管系统的网络请求,从而瞬间实现从物理链路层面的下载加速。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

122.225.57.107 download.visualstudio.microsoft.com