Windows 10 中的 Hosts 文件:它是什么、在哪里找到它以及如何编辑它
无论您是开发人员测试新的Web应用程序、系统管理员排查DNS传播问题,还是只是想屏蔽令人分心的网站,Windows 10 hosts文件都是您手中最强大却最容易被忽视的工具之一。
在本综合指南中,我们将详细解释hosts文件是什么、其底层工作原理、在哪里可以找到它,以及如何通过实际示例安全有效地编辑它。
什么是Hosts文件?
hosts文件是一个纯文本系统文件,用于将人类可读的域名映射到对应的IP地址。它充当DNS(域名系统)解析的本地静态替代方案。
关键点在于:您的操作系统在查询任何外部DNS服务器*之前*会先检查hosts文件。这意味着您在hosts文件中定义的任何条目都会立即优先于DNS服务器可能返回的任何结果。
域名解析的工作原理(简化版)
当您在浏览器中输入www.example.com时,您的系统会按以下顺序进行查找:
- 本地缓存 — 该域名最近是否已被解析过?
- Hosts文件 — 该域名是否有静态条目?
- 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文件夹还包含其他网络配置文件,例如networks、protocol和services。除非您确切知道自己在做什么,否则请勿修改这些文件。
如何在Windows 10中编辑Hosts文件(分步指南)
编辑hosts文件有两种可靠的方法:使用具有管理员权限的记事本(最常见的方法)或使用PowerShell。我们将两种方法都介绍。
方法一:使用记事本编辑Hosts文件(推荐)
#### 第一步 — 以管理员身份打开记事本
- 点击开始按钮(或按
Windows键) - 在搜索栏中输入记事本
- 右键单击搜索结果中的记事本
- 选择“以管理员身份运行”
- 如果用户账户控制(UAC)提示,点击是
> ⚠️ 重要提示:如果您以普通方式打开记事本(没有管理员权限)并尝试保存hosts文件,Windows将静默失败或提示错误。请务必先以管理员身份运行。
#### 第二步 — 打开Hosts文件
- 在记事本中,点击文件 → 打开
- 导航到:
C:WindowsSystem32driversetc - 在打开对话框的右下角,将文件类型过滤器从
Text Documents (*.txt)更改为所有文件(*.*) - 您现在将看到列出的
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文件
- 点击文件 → 保存(或按
Ctrl + S) - 如果UAC提示,确认管理员权限
- 更改立即生效——无需重启
> 如果Windows拒绝保存,是因为记事本没有以管理员权限打开。关闭并从第一步重新开始。
方法二:使用PowerShell编辑Hosts文件
对于偏好命令行的系统管理员,您可以通过提升权限的PowerShell会话直接在记事本中打开hosts文件:
- 按
Windows + X并选择Windows PowerShell(管理员) - 运行以下命令:
notepad C:WindowsSystem32driversetchosts- 进行编辑并保存
或者,您可以直接从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文件中删除这些条目。
此技术在以下情况下特别有用:
示例三 — 绕过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缓存:
- 以管理员身份打开命令提示符
- 运行以下命令:
ipconfig /flushdns您应该看到:
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.- 为保险起见,重启您的浏览器
如何恢复默认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 localhostHosts文件最佳实践和安全注意事项
在您开始自由编辑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托管、独立服务器、域名注册等更多服务。
