那天调试网页,必须在手机上看域名映射效果,才一头扎进去研究手机怎么修改host,一开始直接下普通文件管理器去翻系统目录,折腾半小时,文件明明看见了,点保存就报错,怎么都写不进去。
普通文件管理器拿不到系统分区写入权限,再怎么复制hosts到下载文件夹修改,放回原处依旧无效,这一步卡了很久。
手机修改host:安卓root实操
当时手上那台刷了Magisk,直接用带root权限的文件管理器打开路径/system/etc/hosts,先把原文件复制一份存到内部存储做备份,这个动作不能省,一旦改错网络直接异常。打开hosts,拉到文件最末尾,新增一行IP加域名,格式就是IP地址空格域名,写完保存。
保存完还有一步,文件权限要改成644,权限不对的话,系统会无视你写的规则,改完重启手机,打开浏览器访问域名才能生效。
手机修改host:无root替代方案
| 方案 | 适用范围 | 限制 |
|---|---|---|
| VPN类hosts工具 | 安卓免root | 全局流量走代理,部分APP不兼容 |
| WiFi代理 | 安卓、iPhone,仅当前WiFi | 切移动数据就失效 |
| 修改系统hosts | 安卓root设备 | 需要root,操作失误影响网络 |
| 越狱修改hosts | 旧版iPhone,不推荐 | 越狱失去官方保修,系统稳定性差 |
试过免root的VPNhost工具,软件会自建本地VPN接管域名解析,不用动系统文件,配置填好IP和域名,开启软件就生效。缺点很明显,只要关掉软件,映射立刻失效,部分银行类APP检测VPN会直接拒绝联网。
iPhone这边原生系统没法直接编辑hosts文件,官方系统锁死了/etc目录,不越狱完全碰不到。不想越狱就只能用WiFi代理,连上同一个无线网络,在WiFi详情里配置代理服务器,电脑上开代理软件管理域名映射,手机走这个代理访问。
换移动数据就失效。
还有个坑,就算修改成功,浏览器有DNS缓存,改完直接打开网页还是旧解析,要么清浏览器缓存,要么开无痕窗口测试,不然你会以为hosts没改成功,反复来回修改文件。
后面那次测试做完,直接删掉了root文件管理器里改好的hosts,把之前备份的原文件替换回去,网络才恢复成平时的状态,一直留自定义hosts,偶尔会出现莫名的网页打不开。
不要再随便动系统hosts,很多人只记得添加映射,忘记备份原始文件,出问题之后很难恢复。