安卓如何修改hosts文件?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 安卓 正文

什么是 hosts 文件?

hosts 文件是一个没有扩展名的纯文本文件,它的作用是将域名(www.google.com)映射到特定的 IP 地址(250.74.100),当你访问一个网站时,你的设备会先查询 hosts 文件,看是否有对应的 IP 地址,如果有,设备会直接访问该 IP;如果没有,才会去 DNS 服务器查询。

hosts文件 安卓
(图片来源网络,侵删)

hosts 文件可以让你:

  • 屏蔽广告和追踪器: 将广告域名指向一个无效的 IP 地址(如 0.0.10.0.0)。
  • 访问测试/本地网站: 将域名指向你本地开发服务器(如 0.0.1)。
  • 解锁或修改网络服务: 将某个服务的域名指向其备用服务器(有一定风险)。

在安卓设备上修改 hosts 文件的挑战

与 Windows 或 macOS 不同,安卓系统出于安全考虑,普通应用没有权限直接修改系统级的 hosts 文件,这个文件位于系统的只读分区中。

安卓的 hosts 文件路径通常是: /etc/hosts

直接用 Root 权限修改这个文件是最直接的方法,但对于大多数用户来说风险较高,主流的解决方案是利用安卓系统的一个“备用” hosts 文件机制。

hosts文件 安卓
(图片来源网络,侵删)

使用专用 App(推荐,无需 Root)

这是最简单、最安全、最适合普通用户的方法,这类 App 通过 Android 的 VPN 或本地代理服务,在系统访问网络时,将你自定义的 hosts 规则注入其中,从而实现与修改系统 hosts 文件相同的效果。

推荐应用:AdGuard for Android

AdGuard 是一款功能强大的广告拦截器,其核心原理就是利用一个可自定义的 hosts 文件,你不仅可以使用它内置的庞大规则库,还可以手动添加自己的规则。

操作步骤:

  1. 下载并安装 AdGuard for Android: 你可以在 Google Play 商店或 F-Droid 上下载。

  2. 授予必要权限: 首次打开时,App 会请求“VPN 权限”,这是它正常工作的关键,它并不是真的要连接一个 VPN 服务器,而是为了获取网络流量以便进行过滤,请务必授予。

  3. 找到自定义规则设置

    • 打开 AdGuard,点击右下角的 “菜单” 图标(三条横线)。
    • 选择 “过滤”
    • 在过滤规则列表中,找到并点击 “自定义过滤规则”
  4. 添加你的 hosts 规则

    • 点击屏幕右上角的 号(添加规则)。
    • 在弹出的窗口中,输入你的规则,格式与标准的 hosts 文件完全一样: IP地址 域名
    • 屏蔽广告/域名示例: 将域名指向 0.0.0 是一个好习惯,因为它比 0.0.1 更明确地表示“无此地址”。
      0.0.0 ads.example.com
      0.0.0.0 tracker.network.com
    • 指向本地服务器示例
      0.0.1 my-dev-site.local
    • 输入完成后,点击右上角的 或 “保存”
  5. 启用规则: 添加的规则默认是启用的,你可以在“自定义过滤规则”列表中看到它,并且左侧的开关应该是打开状态。

  6. 刷新 DNS 缓存(可选但推荐): 有时修改后可能不会立即生效,这是因为系统或 App 的 DNS 缓存,你可以:

    • 在 AdGuard 的设置中寻找“刷新 DNS”的选项。
    • 或者简单地重启手机的 Wi-Fi
    • 重启手机也能确保所有设置生效。

优点

  • 无需 Root,非常安全。
  • 操作简单,图形化界面。
  • 除了 hosts 功能,还能提供强大的广告和隐私保护。

缺点

  • 由于使用了 VPN 模式,可能会略微增加一些电量消耗(现代设备上影响很小)。
  • 少数依赖 VPN 的应用可能会与它产生冲突。

使用终端模拟器 App(需要 Root)

如果你已经为你的安卓设备获取了 Root 权限,那么直接修改 /etc/hosts 文件是最根本的方法。

推荐应用:Termux

操作步骤:

  1. 安装 Termux: 从 Google Play 商店或 F-Droid 安装 Termux。

  2. 获取 Root 权限: 你需要一个 Root 管理器 App(如 Magisk、SuperSU)来授予 Termux Root 权限,在 Termux 中输入 su 命令后,Root 管理器 App 会弹窗请求授权。

  3. 编辑 hosts 文件

    • 打开 Termux。
    • 输入以下命令进入 hosts 文件所在的目录:
      cd /etc
    • 使用 vinano 编辑器打开文件(nano 对新手更友好):
      nano hosts
    • 在打开的编辑器中,你可以像在任何文本编辑器中一样,添加、修改或删除规则,在文件末尾添加:
      0.0.0 baddomain.com
    • 编辑完成后,按 Ctrl + X,然后按 Y 保存,最后按 Enter 确认文件名。
  4. 设置正确的文件权限: 修改后,最好确保文件权限正确,输入以下命令:

    chmod 644 hosts
  5. 重启或刷新 DNS: 修改系统 hosts 文件后,重启手机是最稳妥的确保所有应用都加载新规则的方法,或者你也可以尝试重启网络服务(命令较复杂,因设备而异)。

优点

  • 最直接、最根本的修改方式。
  • 不需要依赖任何第三方服务(如 VPN)。
  • 功能强大,可以配合 Shell 脚本自动化管理。

缺点

  • 需要 Root 权限,有使设备变砖或安全风险。
  • 操作相对复杂,不适合新手。

hosts 文件格式和常用规则示例

基本格式

[IP地址] [空格或Tab] [域名]
  • 开头的是注释,会被忽略。

常用 IP 地址

  • 0.0.1:本地环回地址,指向设备自己,如果设备上没有运行对应的服务,访问该域名通常会失败。
  • 0.0.0:一个“无地址”地址,将其作为目标 IP 是屏蔽域名的最佳实践,因为它不会尝试连接任何地方,直接返回失败。

规则示例

# 屏蔽 Google Analytics
0.0.0.0 www.google-analytics.com
0.0.0.0 google-analytics.com
# 屏蔽 Facebook 追踪器
0.0.0.0 connect.facebook.net
0.0.0.0 facebook.com
# 将开发环境域名指向本地服务器
127.0.0.1 my-app.dev

总结与建议

方法 优点 缺点 适用人群
专用 App (如 AdGuard) 无需 Root,安全简单,功能强大 轻微电量/流量消耗,可能与少数 App 冲突 绝大多数安卓用户,强烈推荐
终端模拟器 (需 Root) 根本性修改,无额外开销 需要 Root,有风险,操作复杂 已 Root 用户,高级用户,开发者

给你的建议:

  • 如果你只是想屏蔽广告或修改几个域名直接使用 AdGuard 或类似的广告拦截 App,这是最省心、最安全的选择。
  • 如果你是开发者,需要在本地测试网站AdGuard 同样可以完美胜任,只需将你的本地域名指向 0.0.1 即可。
  • 如果你已经 Root 了你的手机,并且追求最纯净的解决方案:可以使用 Termux 来直接修改 /etc/hosts 文件,但请务必小心操作。
-- 展开阅读全文 --
头像
安卓支付宝指纹支付怎么设置?
« 上一篇 今天
cmd命令如何快速查看电脑配置?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]