Hosts 文件是什么?Windows/Mac 修改完整步骤

原创 发布日期:
23

一、Hosts 文件是什么

Hosts 是一个没有扩展名的系统文件,本质上是一个纯文本格式的文件,可以用记事本等文本编辑器打开查看和编辑。它的核心作用是将域名(主机名)与其对应的 IP 地址建立映射关系,形成一个本地的“域名解析数据库”。

在计算机网络中,人类更容易记住像 www.fuwa.org 这样的域名,而计算机实际通信时使用的是 IP 地址(如 192.168.1.1)。Hosts 文件正是连接域名与 IP 地址的桥梁——当用户在浏览器中输入一个网址时,操作系统会首先自动从 Hosts 文件中寻找对应的 IP 地址,一旦找到就直接使用该 IP 访问目标服务器;如果没有找到,系统才会将域名提交给 DNS(域名系统)服务器进行解析。

从优先级来看,Hosts 文件的解析优先级高于 DNS 服务器。这意味着 Hosts 文件中的映射规则会“覆盖”公共 DNS 的解析结果,这也是 Hosts 文件能够实现诸多网络自定义功能的核心原理。

Hosts 文件的历史可以追溯到 DNS 出现之前的早期互联网时代。在那个时候,整个网络中的主机名与 IP 地址的对应关系都记录在一个共享的静态 Hosts 文件中,由中心化管理并定期发布更新。随着互联网规模的爆炸式增长,这种集中管理的方式已无法满足需求,DNS 系统应运而生并成为主流。尽管如此,Hosts 文件并未被淘汰,它在本地域名解析、网站开发测试、广告屏蔽等场景中依然发挥着不可替代的作用。

需要特别注意的是,Hosts 文件配置的映射是静态的。一旦某个域名与 IP 地址在 Hosts 文件中建立了映射关系,如果该服务器在网络上实际的 IP 地址发生了变更,用户必须手动更新 Hosts 文件中的对应记录,否则将无法正常访问该网站。

二、Hosts 文件的存储位置

不同操作系统中,Hosts 文件的存放路径有所不同:

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

  • macOS 系统/etc/hosts/private/etc/hosts

  • Linux 系统/etc/hosts

在 Windows 系统中,Hosts 文件位于系统目录深处的 etc 文件夹内,默认情况下该文件是可见的。在 macOS 和 Linux 系统中,Hosts 文件位于 /etc/ 目录下,属于系统级别的配置文件。

Hosts 文件是什么?Windows/Mac 修改完整步骤

三、Hosts 文件的格式与语法规则

正确理解 Hosts 文件的格式是成功修改它的前提。Hosts 文件的每一条记录占据一行,**基本格式为:IP地址 域名 [别名1] [别名2]...**。各字段之间用一个或多个空格或制表符(Tab)分隔。

具体来说,每行记录包含以下组成部分:

  1. 第一部份:网络 IP 地址——这是必填项,表示目标服务器的 IP 地址。

  2. 第二部份:主机名或域名——这是必填项,表示需要解析的域名。

  3. 第三部份及以后:主机名别名——这是可选项,可以为同一个 IP 地址指定多个域名别名。

Hosts 文件还支持注释功能,以 # 符号开头的行或行中 # 之后的内容均为注释,系统在解析时会自动忽略。利用注释功能,用户可以在文件中添加说明文字,方便日后查阅和管理。

域名命名有严格的字符限制:主机名只能包含字母数字字符、连字符(-)和句点(.),必须以字母字符开头,以字母数字字符结尾。

以下是一个标准的 Hosts 文件内容示例:

# 这是一个注释行
127.0.0.1    localhost
127.0.0.1    mylocal.dev
192.168.1.100  www.fuwa.org  # 测试环境
# 下面这行用于屏蔽广告
0.0.0.0     ad.doubleclick.net

四、Windows 系统修改 Hosts 文件的完整步骤

在 Windows 系统中修改 Hosts 文件,最关键的一点是必须以管理员身份运行文本编辑器,否则会因为权限不足而无法保存修改。以下是详细的操作步骤:

步骤一:备份原始 Hosts 文件

在修改任何系统文件之前,备份是最基本的安全措施。导航到 C:\Windows\System32\drivers\etc\ 目录,将 hosts 文件复制到一个安全的位置(如桌面或文档文件夹),并可以重命名为 hosts.bak 作为备份。这样如果修改出现错误,可以随时恢复。

步骤二:以管理员身份打开记事本

在 Windows 的搜索栏中输入“记事本”或“Notepad”,在搜索结果中右键点击记事本图标,选择“以管理员身份运行”。这一操作会触发用户账户控制(UAC)提示,点击“是”确认。

为什么必须以管理员身份运行? Windows 系统默认对系统目录下的文件设置了严格的访问权限,普通用户模式下的应用程序无法修改 Hosts 文件。以管理员身份运行编辑器是获取写入权限的最直接方式。

步骤三:打开 Hosts 文件

在记事本中,依次点击“文件”→“打开”。导航到 C:\Windows\System32\drivers\etc\ 目录。重要提示:在文件类型下拉框中,需要将默认的“文本文档(*.txt)”改为“所有文件(*.*)”,这样才能看到没有扩展名的 hosts 文件。选中 hosts 文件并点击“打开”。

步骤四:编辑 Hosts 文件

在文件末尾添加或修改映射规则。每行只能包含一条映射规则,格式为“IP地址 域名”。IP 地址与域名之间用空格或制表符分隔。可以在规则后面添加 # 注释以便说明。

例如,要将 www.fuwa.org 指向本地服务器(127.0.0.1),可以添加:

127.0.0.1    www.fuwa.org

步骤五:保存文件

点击“文件”→“保存”(或按 Ctrl+S)即可保存修改。如果保存时提示“拒绝访问”,说明没有以管理员身份运行记事本,需要关闭后重新以管理员身份打开并重试。

步骤六:刷新 DNS 缓存使修改生效

Windows 系统会缓存 DNS 解析结果,修改 Hosts 文件后需要刷新 DNS 缓存才能立即生效。操作方法如下:

  1. 在搜索栏中输入 cmd,右键点击“命令提示符”,选择“以管理员身份运行”。

  2. 在命令提示符窗口中输入以下命令并回车:

  ipconfig /flushdns
  1. 看到“已成功刷新 DNS 解析缓存”的提示后,修改即生效。

如果刷新 DNS 缓存后仍不生效,可以尝试重启计算机或重启 DNS Client 服务。

五、macOS 系统修改 Hosts 文件的完整步骤

在 macOS 系统中修改 Hosts 文件,主要通过终端(Terminal)命令行完成,因为系统对 /etc/hosts 文件同样设置了严格的权限保护。以下是详细的操作步骤:

步骤一:备份原始 Hosts 文件

打开终端(在“启动台”→“其他”中找到“终端”,或通过 Spotlight 搜索“Terminal”),执行以下命令备份 Hosts 文件:

sudo cp /etc/hosts /etc/hosts.backup

系统会提示输入管理员密码(输入时屏幕不会显示任何字符),输入后按回车确认。

步骤二:使用终端打开并编辑 Hosts 文件

在终端中输入以下命令,使用 Nano 文本编辑器打开 Hosts 文件:

sudo nano /etc/hosts

输入管理员密码后,Nano 编辑器界面会打开,显示 Hosts 文件的当前内容。

关于编辑器的选择:除了 Nano,也可以使用其他命令行编辑器如 Vim(sudo vim /etc/hosts)。对于不熟悉命令行的用户,Nano 是更友好的选择,因为界面底部会显示常用的快捷键提示。

步骤三:编辑 Hosts 文件

在 Nano 编辑器中,使用键盘方向键移动光标到文件末尾,直接输入新的映射规则。格式与 Windows 系统完全相同:IP地址 域名,每行一条规则。

例如,要屏蔽某个广告域名:

0.0.0.0    ads.example.com

步骤四:保存并退出编辑器

在 Nano 编辑器中,按 Ctrl+O(字母 O)保存文件,然后按回车键确认文件名。按 Ctrl+X 退出编辑器。

如果使用 Vim 编辑器,保存退出的方式是按 Esc 键退出插入模式,然后输入 :wq 并按回车。

步骤五:刷新 DNS 缓存使修改生效

macOS 系统中刷新 DNS 缓存的命令因系统版本而异:

  • macOS 10.10.4 及更新版本(大多数现代 Mac):

 sudo killall -HUP mDNSResponder
  • macOS 10.10 至 10.10.3

 sudo discoveryutil mdnsflushcache
  • macOS 10.6 至 10.9

 sudo dscacheutil -flushcache

执行上述命令后,修改的 Hosts 规则即可生效。

补充方法:通过 Finder 直接修改(仅限高级用户)

除了终端方式,macOS 用户还可以通过 Finder 直接操作 Hosts 文件:

  1. 在 Finder 中按快捷键 Shift+Command+G,输入 /etc/hosts 并前往。

  2. hosts 文件复制到桌面,用文本编辑修改后保存。

  3. 将修改后的文件拖回 /etc/ 目录替换原文件(需要输入管理员密码确认)。

六、Hosts 文件的常见用途

(一)本地网站开发与测试

这是 Hosts 文件最广泛的应用场景之一。在开发新网站或 Web 应用时,开发者可以将尚未上线的域名通过 Hosts 文件指向本地开发服务器(如 127.0.0.1 或局域网内的测试服务器 IP),从而在真实域名下进行调试,而无需购买域名或配置公共 DNS。例如:

127.0.0.1    myproject.test

这样在浏览器中访问 myproject.test 时,请求会被直接发送到本地的开发服务器。

(二)屏蔽广告与恶意网站

通过将广告服务器或恶意网站的域名映射到本地回环地址(127.0.0.1)或 0.0.0.0,可以有效阻止这些网站的内容加载。当浏览器尝试访问这些域名时,系统会将请求指向本地计算机,从而从根本上阻止广告内容的下载和展示

127.0.0.1    ad.doubleclick.net
0.0.0.0     track.ads.com

127.0.0.10.0.0.0 的区别:两者都可以用于屏蔽域名,但 127.0.0.1 是本地回环地址,系统会尝试建立本地连接(可能产生极小的延迟);0.0.0.0 是一个无效的不可路由地址,系统会更快地放弃连接尝试。在实际使用中,两者效果相近,0.0.0.0 通常被认为更高效。

(三)加速网站访问

通过将常用网站的域名与稳定的 IP 地址绑定,可以减少 DNS 查询的时间开销,从而略微提升访问速度。这在 DNS 服务器响应较慢的网络环境中尤为有用。

(四)绕过 DNS 解析问题

当 DNS 服务器出现故障或 DNS 缓存导致解析错误时,可以通过 Hosts 文件临时绕过 DNS 系统,直接指定正确的 IP 地址进行访问。

七、修改 Hosts 文件的注意事项与安全风险

(一)权限管理是首要问题

修改 Hosts 文件必须拥有管理员权限。在 Windows 中,如果直接双击打开记事本再打开 Hosts 文件,保存时会因为权限不足而失败。正确的方式是右键以管理员身份运行编辑器再打开文件。在 macOS 和 Linux 中,必须使用 sudo 命令获取超级用户权限。

(二)格式错误会导致解析失败

每行只能包含一条映射规则,IP 地址必须放在行首,域名紧随其后。避免添加多余的空格、特殊符号或非标准字符。错误的格式会导致整条规则失效,甚至可能影响系统正常的域名解析。

(三)修改前务必备份

备份是防止操作失误的最后一道防线。无论多么有经验的用户,都可能因疏忽而输入错误的 IP 地址或格式。拥有备份文件可以快速恢复到修改前的状态。

(四)安全风险不可忽视

Hosts 文件是域名解析的第一道关卡,如果被恶意篡改,攻击者可以将用户访问的合法域名指向钓鱼网站或恶意服务器。安全研究显示,相当数量的终端设备曾出现过 Hosts 文件被篡改的情况。恶意软件常常通过修改 Hosts 文件来实现流量劫持——当用户以为自己访问的是银行官网时,实际上可能被导向了攻击者伪造的钓鱼页面。

防范建议

  • 定期检查 Hosts 文件内容,确认没有未经授权的映射规则。

  • 保持操作系统和安全软件的更新。

  • 如果发现 Hosts 文件被无故修改,应立即运行安全扫描。

(五)修改后不生效的排查方法

如果修改 Hosts 文件后没有生效,可以按以下顺序排查:

  1. 确认是否刷新了 DNS 缓存(Windows:ipconfig /flushdns;macOS:sudo killall -HUP mDNSResponder)。

  2. 检查 IP 地址是否正确且有效

  3. 检查格式是否正确(IP 与域名之间是否有空格,是否有多余字符)。

  4. 重启计算机或重启网络服务

  5. 检查是否有安全软件锁定了 Hosts 文件

八、总结

Hosts 文件是一个历史悠久但至今仍在发挥重要作用的系统配置文件。它通过在本地建立域名与 IP 地址的映射关系,实现了优先于 DNS 服务器的域名解析。无论是网站开发测试、广告屏蔽,还是临时解决 DNS 解析问题,Hosts 文件都提供了一种简单、直接、无需依赖外部服务的解决方案。

修改 Hosts 文件的操作本身并不复杂——Windows 用户只需以管理员身份运行记事本并编辑保存,macOS 用户通过终端使用 sudo nano /etc/hosts 即可完成。但权限管理、格式规范、备份习惯和安全意识这四个方面始终需要牢记。正确使用 Hosts 文件可以显著提升工作效率和网络体验,而忽视这些注意事项则可能带来安全风险或网络访问异常。

通过本文的详细介绍,相信读者已经能够独立、安全地完成 Windows 和 macOS 系统下 Hosts 文件的修改操作,并在实际工作和生活中灵活运用这一强大的系统工具。

打赏
THE END
作者头像
fuwa
我爱我的参差不齐 我即是自己的反义词