下面我将分情况详细说明,并提供修改 hosts 文件的方法。

(图片来源网络,侵删)
-
Android 7.0 及更高版本 (Nougat, Oreo, Pie, 10, 11, 12, 13, 14 等):
- 只读位置:
/system/etc/hosts - 可编辑位置:
/data/misc/hosts/hosts(部分系统) 或/data/adb/hosts(Magisk 环境)
- 只读位置:
-
Android 6.0 及更低版本 (Marshmallow 及更早):
- 可编辑位置:
/system/etc/hosts
- 可编辑位置:
详细说明
Android 7.0 及更高版本
从 Android 7.0 开始,/system 分区被设置为只读,以防止恶意软件修改系统核心文件,你无法直接修改 /system/etc/hosts 文件。
a. 官方方法:使用 ADB 和 Root 权限
这是最标准、最可靠的方法,但需要你的手机已经获取 Root 权限。

(图片来源网络,侵删)
-
准备工作:
- 手机已 Root。
- 电脑上安装了 Android SDK Platform Tools (包含
adb.exe和fastboot.exe)。 - 在手机上启用“USB调试”模式。
-
操作步骤:
- 第一步:将 hosts 文件复制到可写目录
adb shell进入命令行,然后执行以下命令,将只读的hosts文件复制到/data/local/tmp目录(这是一个可写的临时目录)。adb shell su # 切换到 root 用户,可能会提示授权 cp /system/etc/hosts /data/local/tmp/hosts
- 第二步:编辑 hosts 文件
现在你可以使用
adb push命令,将你编辑好的新hosts文件(在电脑上用记事本编辑好)推送到手机,替换掉临时文件。# 在电脑的命令行中执行 # 将电脑上编辑好的 hosts.txt 文件推送到手机的 /data/local/tmp/hosts adb push C:\path\to\your\hosts.txt /data/local/tmp/hosts
- 第三步:将修改后的文件复制回系统
再次进入
adb shell,将修改后的文件复制回原位,由于/system是只读的,你需要先重新挂载它为可写模式。adb shell su mount -o rw,remount /system # 重新挂载 /system 分区为可读可写 cp /data/local/tmp/hosts /system/etc/hosts # 复制回去 mount -o ro,remount /system # 恢复为只读模式(推荐,但非必须)
- 第四步:重启手机 修改完成后,重启手机使配置生效。
- 第一步:将 hosts 文件复制到可写目录
b. Magisk 用户的方法 (更简单)
如果你使用 Magisk 进行 Root,它会提供一个更简单的机制来修改 hosts 文件。
- Magisk 官方模块: 你可以安装名为 "Magisk Universal SafetyFix" 或其他专门提供 hosts 功能的模块,这些模块通常会将你的
hosts文件内容保存在/data/adb/hosts,并在系统启动时自动将其合并到/system/etc/hosts。 - 操作流程:
- 在 Magisk App 中,找到“模块” (Modules) 部分。
- 点击“从存储安装” (Install from storage),选择一个 hosts 模块或下载安装。
- 或者,直接手动编辑
/data/adb/hosts文件(需要 Root 文件管理器,如 Solid Explorer)。 - 重启手机即可。
Android 6.0 及更低版本
在这些旧版本中,/system 分区默认是可写的,所以修改起来非常简单。
-
准备工作:
- 手机已 Root。
- 安装一个支持 Root 权限的文件管理器(如 Root Explorer, Solid Explorer 等)。
-
操作步骤:
- 打开 Root 文件管理器,导航到路径:
/system/etc/。 - 找到
hosts文件。 - 长按 文件,选择“属性” (Properties) 或“权限” (Permissions)。
- 将所有者的“读写”权限打开,并取消“只读”选项。
- 返回,尝试重命名
hosts文件为hosts.bak作为备份。 - 将你编辑好的新
hosts文件复制到这个目录,并命名为hosts。 - 重启手机。
- 打开 Root 文件管理器,导航到路径:
重要注意事项
- Root 风险: 修改系统文件需要 Root 权限,这会使你的设备安全性降低,操作不当可能导致系统变砖,请务必谨慎操作。
- 文件备份: 在修改任何系统文件之前,务必备份原文件!这是防止出错的最后一道防线。
- 专用 App: 对于不想 Root 的用户,可以使用一些不需要 Root 的 App 来实现 hosts 功能,"Hosts Editor" 或 "NoRoot Firewall",这些 App 通常通过 VPN 技术在应用层拦截网络请求来实现类似 hosts 的效果,但可能会有性能损耗或兼容性问题。
hosts文件格式:hosts文件非常简单,每行一条规则,格式是IP地址 域名,以 开头的是注释行。- 示例:
# 屏蔽广告网站 127.0.0.1 ads.example.com 0.0.0.0 tracker.another-site.com - 屏蔽广告: 通常将域名指向
0.0.1(本地回环地址) 或0.0.0(无效地址) 即可。
- 示例:
总结表格
| Android 版本 | 文件位置 | 修改方式 | 风险/要求 |
|---|---|---|---|
| Android 7.0+ | /system/etc/hosts (只读) |
使用 ADB + Root 权限挂载修改 | 需要 Root,操作较复杂 |
/data/adb/hosts (Magisk) |
使用 Magisk 模块或直接编辑 | 需要 Magisk Root,相对简单 | |
| Android 6.0- | /system/etc/hosts (可写) |
使用 Root 文件管理器直接修改 | 需要 Root,操作简单 |
| 所有版本 | N/A | 使用无需 Root 的 Hosts App | 无需 Root,但可能有性能或兼容问题 |
希望这个详细的解释能帮助你成功找到并修改安卓的 hosts 文件!
