首页 帮助中心 常见问题 主机hosts文件丢失怎么处理?Windows/Linux/macOS恢复技巧
主机hosts文件丢失怎么处理?Windows/Linux/macOS恢复技巧
时间 : 2026-05-28 13:48:00
编辑 : 华纳云
阅读量 : 15

hosts文件是操作系统中负责域名本地解析的重要配置文件,位于WindowsC:\Windows\System32\drivers\etc目录和Linux/macOS/etc/hosts路径下,文件无扩展名。当用户在浏览器输入域名时,系统优先读取hosts文件进行解析,若存在映射记录则直接使用,否则再向DNS服务器发起请求。hosts文件丢失或被破坏后,常见的表现为:访问localhost或特定域名失败、软件激活异常、内网服务无法连接,严重时甚至导致整个网络解析功能紊乱。下文总结了WindowsLinuxmacOS三大操作系统下恢复hosts文件的详细方法,按系统分别操作即可。

Windows系统恢复hosts文件的四种方法

hosts文件丢失时,Windows不会自动重建,需要手动介入恢复。以下四种方法按推荐程度排序。

方法1:利用WinSxS自动恢复(最推荐)

Windows系统在WinSxS组件库中保存了hosts文件的原始备份副本,通过以下命令可自动从中提取并恢复。

以管理员身份运行命令提示符,输入以下命令:

cmd

for /f %P in ('dir %windir%\WinSxS\hosts /b /s') do copy %P %windir%\System32\drivers\etc & echo %P & Notepad %P

等待命令执行完毕,出现提示后输入字母 a 并回车确认。系统将自动打开恢复后的hosts文件,检查无误后关闭即可。若执行此命令后提示“拒绝访问”,说明当前用户对etc目录缺少写入权限。可右键点击etc文件夹 → 属性 → 安全 → 高级,将所有者更改为当前用户账号,再返回安全选项卡赋予完全控制权,最后重新执行上述命令。

方法2:手动重建hosts文件

若命令行方法无效,可采用手工重建的方式。

按下 Win + R 快捷键,输入 `notepad` 打开记事本。将以下内容完整复制粘贴进去:

text

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

点击记事本“文件”→“另存为”。将保存位置选择为桌面,文件名输入英文双引号包裹的 `"hosts"`(确保无.txt后缀),保存类型选择“所有文件”。然后将桌面生成的hosts文件复制到 `C:\Windows\System32\drivers\etc` 目录下。若提示需要管理员权限,以管理员身份运行记事本后重复上述步骤。

最后以管理员身份运行命令提示符,执行DNS缓存清空命令:

cmd

ipconfig /flushdns

方法3:检查系统自动备份

Windows在某些情况下会自动保留hosts文件的备份副本。进入 `C:\Windows\System32\drivers\etc` 目录,查找是否存在 `hosts.backup``hosts.old` `hosts_back_up` 等名称的文件。找到后将备份文件重命名为 `hosts`(删除原有扩展名),即可直接使用。

方法4:系统文件完整性检查

若上述方法均无效,可通过系统自带的完整性检查工具修复。

以管理员身份运行命令提示符,依次执行以下命令:

cmd

sfc /scannow

此命令将扫描所有受保护的系统文件,并用缓存中的正确版本替换损坏或丢失的版本。

cmd

DISM /Online /Cleanup-Image /RestoreHealth

DISM命令从Windows更新服务器下载健康映像用于修复系统组件,完成后重启计算机检查etc目录下hosts文件是否已恢复。

 二、Linux系统恢复hosts文件的方法

Linuxhosts文件位于 `/etc/hosts`,恢复操作需要root权限。执行任何修改前,建议先备份当前文件:

sudo cp /etc/hosts /etc/hosts.bak

方法1:写入默认内容

默认的Linux hosts文件仅包含本地回环地址的基本映射。执行以下命令创建新文件:

sudo tee /etc/hosts <<EOF

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

EOF

方法2:从备份恢复

若此前执行过备份,恢复命令如下:

sudo cp /etc/hosts.bak /etc/hosts

方法3:删除后重建

删除现有hosts文件,用文本编辑器重新创建:

sudo rm /etc/hosts

sudo nano /etc/hosts

nano编辑器中输入上述默认内容,按 Ctrl+O 保存,Ctrl+X 退出。

方法4:从同版本系统复制

若手边有另一台相同发行版和版本的Linux服务器,可直接复制其 `/etc/hosts` 文件,通过scp传输至目标服务器覆盖。此方法能同时恢复系统默认配置和本地主机名设置。

恢复完成后,建议重启网络服务或直接重启服务器使修改生效:

sudo systemctl restart networking   Debian/Ubuntu

sudo systemctl restart NetworkManager   CentOS/RHEL

三、macOS系统恢复hosts文件的方法

macOShosts文件位于 `/private/etc/hosts`,修改和恢复同样需要管理员权限。

方法1:终端命令重建

打开终端(/Applications/Utilities/Terminal),依次执行以下命令:

sudo -s

输入管理员密码(输入过程中光标不会移动,输入完成直接回车)。

cat <<EOF > /etc/hosts

 

Host Database

#

localhost is used to configure the loopback interface

when the system is booting.  Do not change this entry.

 

127.0.0.1       localhost

255.255.255.255 broadcasthost

::1             localhost

EOF

sudo chown root:wheel /etc/hosts

sudo chmod 644 /etc/hosts

执行完毕后关闭终端窗口即可。

方法2:通过恢复模式关闭SIP后恢复

若执行上述命令提示“没有权限”等错误,说明系统的SIP保护机制阻止了对系统文件的修改。解决方法:重启Mac,启动时按住 Command + R 进入恢复模式。点击顶部菜单栏“实用工具”→“终端”,输入以下命令禁用SIP

csrutil disable

重启Mac进入正常系统,执行方法1中的所有命令重建hosts文件。完成后再次重启进入恢复模式,重新开启SIP保护:

csrutil enable

四、操作后的通用验证步骤

无论使用哪种操作系统,恢复hosts文件后都应执行以下验证:

1. 测试localhost解析

cmd

ping localhost

应返回 `127.0.0.1`Windows)或 `::1`IPv6),丢包率为0%即为正常。

2. 检查文件权限和位置

确保文件保存在正确路径,文件名为 `hosts`(无任何扩展名),文件类型为纯文本。

3. 配置自动备份策略

使用LinuxmacOS的用户,建议在crontab中添加定时备份任务:

0 2 * * * cp /etc/hosts /etc/hosts.bak.$(date +\%Y\%m\%d)

Windows用户可使用任务计划程序将etc目录下的hosts文件定期复制到其他位置。hosts文件虽然小巧,但其丢失或损坏可能造成多种网络异常。上述方法覆盖了WindowsLinuxmacOS三大系统平台的四类恢复手段,按需选用即可。建议恢复完成后,养成定期备份hosts文件的习惯,避免因恶意软件、误操作或权限异常导致再次丢失。

相关内容
客服咨询
7*24小时技术支持
技术支持
渠道支持