15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
29.10.2024

Windows 10 中的 Hosts 文件:它是什么、在哪里找到它以及如何编辑它

无论您是开发人员测试新的Web应用程序、系统管理员排查DNS传播问题,还是只是想屏蔽令人分心的网站,Windows 10 hosts文件都是您手中最强大却最容易被忽视的工具之一。

在本综合指南中,我们将详细解释hosts文件是什么、其底层工作原理、在哪里可以找到它,以及如何通过实际示例安全有效地编辑它。

什么是Hosts文件?

hosts文件是一个纯文本系统文件,用于将人类可读的域名映射到对应的IP地址。它充当DNS(域名系统)解析的本地静态替代方案。

关键点在于:您的操作系统在查询任何外部DNS服务器*之前*会先检查hosts文件。这意味着您在hosts文件中定义的任何条目都会立即优先于DNS服务器可能返回的任何结果。

域名解析的工作原理(简化版)

当您在浏览器中输入www.example.com时,您的系统会按以下顺序进行查找:

  1. 本地缓存 — 该域名最近是否已被解析过?
  2. Hosts文件 — 该域名是否有静态条目?
  3. DNS解析器 — 查询已配置的DNS服务器(例如,Google的8.8.8.8或您的ISP服务器)

由于hosts文件位于第二步——在外部DNS之上——您在其中定义的任何映射都将在您的本地机器上完全覆盖该域名的DNS解析。

Hosts文件的常见使用场景

了解*为什么*要编辑hosts文件,会让您更容易正确使用它。以下是最实用的几种场景:

使用场景描述
屏蔽网站将域名重定向到127.0.0.1以阻止其加载
本地开发测试将生产域名指向本地或预发布服务器IP
绕过DNS传播延迟在DNS更改仍在传播时手动分配IP
覆盖损坏的DNS记录无需等待上游修正即可解决解析问题
广告和追踪器屏蔽将已知广告投放域名重定向到空地址

> 开发人员专业提示:如果您正在运行本地开发环境或测试新的服务器配置——例如,在将您的网站迁移到新的VPS托管计划之前——hosts文件可让您准确预览您的网站在新IP地址上的行为,而无需修改实时DNS记录。

Windows 10中Hosts文件在哪里?

在Windows 10中,hosts文件位于以下路径:

C:WindowsSystem32driversetchosts

这是一个受保护的系统文件,这意味着:

  • 它没有文件扩展名(仅命名为hosts
  • 没有管理员权限,您无法编辑它
  • 除非更改文件类型过滤器,否则标准文件浏览器可能不会显示它

> 注意:etc文件夹还包含其他网络配置文件,例如networksprotocolservices。除非您确切知道自己在做什么,否则请勿修改这些文件。

如何在Windows 10中编辑Hosts文件(分步指南)

编辑hosts文件有两种可靠的方法:使用具有管理员权限的记事本(最常见的方法)或使用PowerShell。我们将两种方法都介绍。

方法一:使用记事本编辑Hosts文件(推荐)

#### 第一步 — 以管理员身份打开记事本

  1. 点击开始按钮(或按Windows键)
  2. 在搜索栏中输入记事本
  3. 右键单击搜索结果中的记事本
  4. 选择“以管理员身份运行”
  5. 如果用户账户控制(UAC)提示,点击

> ⚠️ 重要提示:如果您以普通方式打开记事本(没有管理员权限)并尝试保存hosts文件,Windows将静默失败或提示错误。请务必先以管理员身份运行。

#### 第二步 — 打开Hosts文件

  1. 在记事本中,点击文件 → 打开
  2. 导航到:C:WindowsSystem32driversetc
  3. 在打开对话框的右下角,将文件类型过滤器从Text Documents (*.txt)更改为所有文件(*.*
  4. 您现在将看到列出的hosts文件——选择它并点击打开

#### 第三步 — 了解文件结构

打开hosts文件后,您将看到类似以下内容:

# 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.
#

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

#开头的行是注释,系统会忽略它们。所有活动条目必须遵循以下格式:

IP_address    domain_name
  • IP地址在前面
  • 后跟至少一个空格或制表符
  • 然后是域名
  • 每行一个条目

#### 第四步 — 添加、修改或删除条目

滚动到文件底部(所有注释下方)并添加您的条目。以下是最常见的格式:

屏蔽网站:

127.0.0.1    www.example.com
127.0.0.1    example.com

将域名重定向到特定服务器:

192.168.1.100    www.mytestsite.com

添加注释以记录您的更改:

# Blocking social media during work hours
127.0.0.1    www.facebook.com
127.0.0.1    facebook.com

#### 第五步 — 保存Hosts文件

  1. 点击文件 → 保存(或按Ctrl + S
  2. 如果UAC提示,确认管理员权限
  3. 更改立即生效——无需重启

> 如果Windows拒绝保存,是因为记事本没有以管理员权限打开。关闭并从第一步重新开始。

方法二:使用PowerShell编辑Hosts文件

对于偏好命令行的系统管理员,您可以通过提升权限的PowerShell会话直接在记事本中打开hosts文件:

  1. Windows + X并选择Windows PowerShell(管理员)
  2. 运行以下命令:
notepad C:WindowsSystem32driversetchosts
  1. 进行编辑并保存

或者,您可以直接从PowerShell追加新条目,而无需打开文本编辑器:

Add-Content -Path "C:WindowsSystem32driversetchosts" -Value "127.0.0.1`twww.example.com"

实际示例:Hosts文件的真实使用场景

示例一 — 屏蔽不需要的或令人分心的网站

要屏蔽网站,请将其域名重定向到127.0.0.1(您的本地回环地址)。由于那里没有Web服务器在监听,浏览器将返回连接错误。

完全屏蔽Facebook:

127.0.0.1    www.facebook.com
127.0.0.1    facebook.com
127.0.0.1    m.facebook.com

屏蔽YouTube:

127.0.0.1    www.youtube.com
127.0.0.1    youtube.com

> 为什么要同时包含www和非www版本?因为浏览器可能会同时尝试两者。如果您只屏蔽www.facebook.com,导航到facebook.com仍然有效。请务必同时添加两个变体。

示例二 — 在DNS传播之前测试网站

这是hosts文件对开发人员和系统管理员最有价值的用途之一。假设您正在将网站迁移到新服务器——例如,从共享主机迁移到独立服务器——并且您希望在更新实时DNS记录之前验证新IP上的一切是否正常工作。

场景:您的新服务器IP是203.0.113.50,您的域名是www.mybusiness.com

将此条目添加到您的hosts文件:

203.0.113.50    www.mybusiness.com
203.0.113.50    mybusiness.com

现在,当*您*访问www.mybusiness.com时,您的浏览器会将其解析到新服务器。世界上其他所有人仍然通过DNS看到旧服务器。一旦您确认新服务器运行完美,更新您的DNS记录——然后从hosts文件中删除这些条目。

此技术在以下情况下特别有用:

  • 在托管提供商之间迁移
  • 在上线之前测试新的SSL证书配置
  • 验证服务器端重定向和.htaccess规则
  • 检查新电子邮件托管设置上的邮件可达性

示例三 — 绕过DNS传播延迟

DNS更改在全球传播可能需要几分钟到48小时不等。如果您刚刚将域名指向新服务器并需要从您的机器立即访问,hosts文件是您最好的工具。

场景:您已将域名的A记录更新为93.184.216.34,但DNS尚未传播。

93.184.216.34    www.example.com
93.184.216.34    example.com

您的机器现在将立即将域名解析到新IP,无论DNS服务器返回什么。

> 请记得在DNS完全传播后删除这些条目。留下过时的hosts文件条目可能会在以后导致令人困惑的连接问题。

示例四 — 屏蔽广告网络和追踪器

您可以通过将已知广告投放和追踪域名重定向到0.0.0.0(比127.0.0.1稍快,因为它不等待连接超时)来将hosts文件用作基本广告拦截器:

0.0.0.0    ads.doubleclick.net
0.0.0.0    googleadservices.com
0.0.0.0    pagead2.googlesyndication.com
0.0.0.0    tracking.example-analytics.com

> 对于通过hosts文件进行大规模广告屏蔽,GitHub上由社区维护的StevenBlack/hosts等列表提供定期更新的综合hosts文件,包含数万个被屏蔽的域名。

编辑Hosts文件后如何刷新DNS缓存

虽然hosts文件更改通常立即生效,但您的浏览器或操作系统可能已缓存了旧的DNS响应。为确保您的更改立即应用,请刷新DNS缓存:

  1. 管理员身份打开命令提示符
  2. 运行以下命令:
ipconfig /flushdns

您应该看到:

Windows IP Configuration

Successfully flushed the DNS Resolver Cache.
  1. 为保险起见,重启您的浏览器

如何恢复默认Hosts文件

如果您已进行更改并希望恢复到原始的Windows 10 hosts文件,只需删除您添加的所有自定义条目(默认注释以下的所有内容),仅保留标准注释内容。

或者,您可以用默认的Windows 10 hosts文件内容替换整个文件:

# 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.
#

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

Hosts文件最佳实践和安全注意事项

在您开始自由编辑hosts文件之前,请牢记以下重要事项:

✅ 应该做的

  • 在进行更改之前始终备份hosts文件——将其复制到桌面,命名为hosts.backup
  • 使用#用注释记录您的条目,以便记住添加每个条目的原因
  • 一旦不再需要,删除临时条目(例如,DNS传播完成后)
  • 使用0.0.0.0而不是127.0.0.1进行屏蔽——它失败更快,不会尝试本地连接

❌ 不应该做的

  • 切勿从不受信任的来源下载并盲目应用hosts文件——恶意hosts文件可以将您的银行或电子邮件域名重定向到钓鱼服务器
  • 不要留下过时的条目——它们可能导致难以调试的神秘连接故障
  • 不要将hosts文件用作永久DNS解决方案——对于生产环境,请通过您的托管提供商或域名注册服务使用适当的DNS管理

安全警告

恶意软件经常以hosts文件为目标,将合法域名(如银行网站或Windows Update服务器)重定向到恶意IP地址。如果您遇到意外重定向或连接问题,请检查您的hosts文件是否有未经授权的条目。合法的安全软件应该标记未经授权的hosts文件修改。

Hosts文件与DNS:何时使用各自

场景Hosts文件DNS
快速本地测试✅ 理想❌ 传播太慢
永久域名路由❌ 不可扩展✅ 正确解决方案
在单台机器上屏蔽网站✅ 效果良好❌ 需要路由器/DNS配置
全网络屏蔽网站❌ 必须编辑每台机器✅ 在DNS/路由器级别配置
绕过传播延迟✅ 完美使用场景❌ 不适用
生产网站路由❌ 永远不要使用✅ 始终使用

对于生产级DNS管理、域名路由和托管基础设施,您需要可靠的托管服务。无论您是在共享虚拟主机上运行小型企业网站,还是在带cPanel的VPS上管理复杂的多服务器基础设施,通过您的托管提供商进行适当的DNS配置始终是正确的长期解决方案。

常见问题

编辑hosts文件需要重启吗?

不需要。对hosts文件的更改立即生效。但是,您可能需要刷新DNS缓存(ipconfig /flushdns)并重启浏览器以清除缓存的响应。

Hosts文件会影响所有浏览器吗?

是的。hosts文件在操作系统级别运行,位于浏览器之下。它影响所有使用系统网络堆栈的应用程序——包括Chrome、Firefox、Edge以及任何其他进行DNS查找的软件。

Hosts文件中条目的最大数量是多少?

Windows没有强制执行硬性限制,但对于非常大的文件(数万个条目),性能可能会下降。对于大规模屏蔽,请考虑使用专用的基于DNS的解决方案。

我可以在hosts文件中添加IPv6地址吗?

可以。hosts文件同时支持IPv4和IPv6地址:

127.0.0.1    localhost
::1          localhost
2001:db8::1  www.example.com

为什么即使以管理员身份也无法保存hosts文件?

这通常是由防病毒软件保护hosts文件不被修改引起的。检查您的防病毒设置并暂时禁用hosts文件保护,或为记事本添加例外。

结论

Windows 10 hosts文件是一个看似简单却非常强大的工具,适用于开发人员、系统管理员和高级用户。通过了解它的工作原理和使用时机,您可以获得对域名解析的精确本地控制——而无需修改任何DNS记录。

以下是关键要点总结:

  • hosts文件位于C:WindowsSystem32driversetchosts
  • 它覆盖其中列出的任何域名的DNS解析
  • 编辑之前,始终以管理员身份打开文本编辑器
  • 更改后使用ipconfig /flushdns刷新DNS缓存
  • 将其用于测试、屏蔽和绕过传播——而不是作为永久DNS解决方案
  • 在进行更改之前始终备份文件,并及时删除过时条目

对于本地机器配置之外的一切——从管理您的域名DNS记录到部署完全配置的Web服务器——AlexHost提供您所需的基础设施和工具,包括VPS托管独立服务器域名注册等更多服务。

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用