wloc:不越狱、不连电脑,在 iOS 上改定位的干净方案

正常人都觉得,iOS 上改定位只有两条路:要么越狱装插件,要么插着电脑跑爱思助手。两条路都脏。一条破坏系统安全性,一条把你绑在电脑旁边。

wloc 选了第三条路。它不碰 GPS 硬件,不改系统文件,不需要电脑。它做的事说出来有点聪明:拦截 Apple 自己的网络定位请求,在响应回来之前把坐标换掉。整个过程在代理工具的 MITM 层完成,iOS 系统本身毫不知情。

这个思路不是 wloc 首创。最早在 proxypin-wloc-spoofer 项目里就有了原型,但 wloc 把它从”概念验证”做到了”开箱即用”:五款主流代理工具全覆盖、网页选点页面、快捷指令一键切换。截至 2026 年 7 月,项目有 487 Stars 和 73 Forks,34 次 commit,最近一次更新在 6 月 28 日。

说白了,这篇文章就聊两件事:这方案到底靠不靠谱,以及你该不该用它。但先问一个更基本的问题:凭什么一个代理工具脚本,能让你在没越狱的 iPhone 上骗过系统定位?

为什么值得关注

答案藏在 Apple 自己的网络定位机制里。wloc 的核心设计可以拆成三个层面来理解。

第一层是拦截。Apple 的网络定位服务叫 WLOC,域名是 gs-loc.apple.com。当 iOS 设备在 GPS 信号弱的时候(室内、高密度城区),系统会向这个域名发请求,根据附近的 WiFi 热点和基站信息推算位置。wloc 在代理工具里对这个域名开启了 MITM,等于在 Apple 和自己的定位服务之间架了一面单向镜。

wloc:不越狱、不连电脑,在 iOS 上改定位的干净方案

核心原理很简单:拦截 Apple 的 WLOC 请求,在 protobuf 响应中替换坐标后原样返回。整个链路对 iOS 系统透明,系统拿到的定位数据就是被修改过的。

第二层是替换。WLOC 的响应是 protobuf 编码的二进制数据。wloc.js 脚本负责在响应到达系统之前解析这个 protobuf,找到里面的经纬度字段,换成用户预设的坐标。这个过程对系统完全透明,iOS 的定位服务拿到的就是修改后的数据,它不会知道自己被”骗”了。

第三层是持久化。wloc-settings.js 提供了坐标的存储和读取能力。用户在网页上选好位置、点击”储存到设备”后,坐标被写入代理工具的 $persistentStore。下次系统触发 WLOC 请求时,wloc.js 自动读取这个坐标来替换。整套流程不需要用户手动填经纬度,也不需要每次切换都重新配置。

这三层组合起来的效果是:你在地图 App 里长按一个位置,分享给快捷指令,定位就切过去了。从”我想改定位”到”定位已改”只需要三秒。这种体验在 iOS 虚拟定位工具里不多见。

但真正让我觉得这个项目有诚意的地方,不是功能多,而是它主动标注了自己的边界。READEME 里明确写了三件事:只改网络定位,不影响 GPS 硬件;GPS 信号强的时候系统可能忽略网络定位结果;iOS 26+ 需要重启设备才能清缓存。一个工具能把自己的短板写清楚,比罗列十个功能更让人放心。

跑起来看看

上手 wloc 的前提是你已经在用一款代理工具。没装过 Surge 或 Quantumult X 的话,这一步本身就是门槛。

wloc:不越狱、不连电脑,在 iOS 上改定位的干净方案

四步走完就能切换定位:订阅模块、开启 MITM、选点储存、验证结果。iOS 26+ 用户需要额外重启一次设备。整个过程不超过十分钟。

安装过程不复杂。复制对应工具的模块订阅链接,在代理客户端里添加模块,然后确保 gs-loc.apple.com 和 gs-loc-cn.apple.com 在 MITM 主机名列表里。以 Surge 为例:

# Surge 中依次操作:模块 → 添加新模块 → 粘贴下方地址
https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.sgmodule

# 确保 MITM 已启用,主机名需包含 gs-loc.apple.com 和 gs-loc-cn.apple.com

Quantumult X 用户用 .conf 地址,Loon 用 .lpx,Stash 用 .stoverride,Shadowrocket 用 .module,都在 README 里能找到。装好之后安装配套的快捷指令。设置定位和清理恢复各一个,装完之后在地图 App 里选点、分享、选快捷指令,就搞定了。支持苹果地图和高德地图,高德的短链和 GCJ-02 偏移坐标由 Worker 自动处理,不需要用户操心坐标系的事。

实际操作中容易踩的坑有这么几个。iOS 26 及以上版本,系统会缓存 locationd 的定位结果,切换后可能不立即生效,必须重启设备。飞行模式开关或关闭定位服务都没用。另外,如果 GPS 信号太强(比如在室外空旷地带),系统会优先使用 GPS 定位,网络定位的修改就失效了。选点页面还必须在代理模式下使用,Safari 不走代理的话坐标写不进去。体验踩坑容易,但更扎心的问题是花了时间装了却发现根本不适用自己的场景。所以接下来得认真聊一下:这工具到底适合谁,不适合谁。

什么时候用,什么时候别用

场景 典型用户 优势 局限
室内 WiFi 定位修改 需要在固定位置打卡的用户 无需越狱,无需电脑 GPS 信号强时失效
位置相关 App 测试 开发者、QA 快速切换,支持多位置收藏 仅改网络定位,非全局
隐私保护 不想 App 获取真实位置的用户 透传模式一键恢复 需一直开着代理

不适用的场景也很明确。户外 GPS 定位场景(导航类 App),wloc 完全帮不上忙,这是物理层面的限制。钉钉用户也绕行,社区反馈它的定位机制不走标准 WLOC 通道。如果你不想在手机上装代理工具,这条路从一开始就走不通。

wloc:不越狱、不连电脑,在 iOS 上改定位的干净方案

和同类方案比,wloc 在零依赖和操作便捷性上明显胜出。iAnyGo 需要电脑连接,LocationFaker 需要越狱。wloc 把整个体验压缩到手机本地:代理工具加快捷指令,两步完事。

如果把它跟另外几个替代方案放在一起看,差异更直观:

  • iAnyGo:桌面端工具,需要 USB 连接电脑,每次切换都要重新插线。优势是定位精度高,支持模拟移动轨迹。缺点是不便携,免费版功能受限。
  • LocationFaker:越狱插件方案,能实现全局 GPS 级别的定位修改。优势是彻底,App 完全感知不到。缺点是越狱本身就是安全风险,且系统升级后可能失效。
  • proxypin-wloc-spoofer:wloc 的灵感来源,最早的 WLOC 劫持思路。优势是足够简单,适合研究学习。缺点是只有概念验证代码,没有代理工具模块和快捷指令支持。

wloc 的独特位置在于”零依赖”。iAnyGo 之类的桌面工具需要电脑连接,LocationFaker 需要越狱,proxypin-wloc-spoofer 是原始思路但缺乏工程化包装。wloc 把整个体验压缩到了手机本地:代理工具加快捷指令,两步完事。这个定位在当前 iOS 虚拟定位生态里是独一份的。

但话说回来,场景分析说完了,另一个绕不过去的问题是:这个项目能活多久?看看社区的底子。

社区怎么样了

以下关键指标能帮你快速判断项目的健康状态:

指标 数据 说明
Stars 487(2026 年 7 月) 小众但精准的受众
Forks 73 自部署需求推高了 Fork 数
核心维护者 1 人(Yu9191) Bus Factor 为 1,是最大风险
Commits 34 项目仅一个多月,迭代密度尚可
协议 未明确声明 README 和仓库中无 LICENSE 文件

487 Stars 放在今天的 GitHub 不算高,但在”iOS 虚拟定位工具”这个细分品类里已经不低。更值得关注的是 73 个 Fork,说明相当一部分用户选择了自部署 Worker 而不是用公共实例。这跟 README 的引导方向一致:公共选点页面有请求上限,推荐部署自己的实例。

项目在中文技术社区有一定讨论度。小众软件在 7 月初推荐了 wloc,openklc.com 给出的评价是”真正把技术隐形做到极致的工具”。不过 Issue 区目前的活跃度偏低,社区的深度参与还未形成。考虑到项目上线才一个多月,这个状态算正常。

但最大的隐忧绕不过去:Bus Factor 为 1。Yu9191 是唯一的维护者,如果作者因任何原因停止维护,整个项目进入僵尸状态。Stars、Fork 这些数字会变,单维护者的结构性风险不会变。

聊完了社区底子,该给判断了:这项目到底值不值得你跟。

我的真实看法

花了两小时翻完 README、commit 历史和社区讨论之后,我对 wloc 的判断是:它不是那种会让你惊叹”技术太牛了”的项目,但它是那种会让你觉得”这个想法真干净”的项目。

技术本身不复杂。MITM 拦截、protobuf 解析、坐标替换,每一步拆开来看都不新鲜。wloc 的价值不在技术创新,在工程整合。把 proxypin-wloc-spoofer 的原型思路变成五个代理工具的模块、两个快捷指令、一个可自部署的 Worker,这件事需要的是对每个代理工具的脚本 API 都足够熟悉。从 commit 历史看,Yu9191 在 Shadowrocket 的 JavaScriptCore 沙箱兼容性上花了不少功夫,Stash 的 script-providers 匹配规则也反复调试过。这种细节只有真正用过的人才会在意。

我对这个项目的态度经历了一次转弯。一开始觉得它就是个 MITM 脚本,翻完 README 差不多就看完了。但看到 GCJ-02 到 WGS84 的坐标换算逻辑、看到 Worker 端的”不记日志不缓存”隐私声明、看到 iOS 26+ 缓存问题的详细操作指南,我开始觉得这个项目的工程意识比表面看起来扎实得多。不是那种惊天动地的扎实,是那种很务实的、把一件事做对的扎实。

趋势上看,wloc 的增长是健康的。一个月 34 次 commit,说明作者在持续打磨。但它面临一个结构性的天花板:iOS 版本升级可能随时改变 WLOC 的行为。Apple 从 iOS 26 开始强化了 locationd 的缓存机制,已经是第一次”对抗”。如果后续版本对 gs-loc.apple.com 加了证书固定或请求签名校验,这个方案直接失效。这不是 wloc 的问题,是它依赖的底层基础设施本身不可靠。

所以我对”值不值得跟”的回答是有条件的。如果你已经在用代理工具,wloc 几乎零额外成本,值得装。如果你需要一个长期稳定、不受系统版本影响的定位方案,它不适合你。它本质上是一个聪明的临时方案,不是基础设施建设。

还有一个容易被忽略的点:wloc 的隐私模型在同类工具里算得上干净。Worker 端的 /api/parse 是纯转发解析,收到链接、跟跳转、解析坐标、返回 JSON,全程不写存储、不记日志、不缓存。而且 Worker 源码完全开源,你可以自己部署一份把域名换成自己的,连公共实例的请求上限问题都一并绕过去。这种”你可以不信任我,我给你所有代码你自己跑”的态度,在定位修改类工具里相当罕见。

资源地址

资源 地址
GitHub https://github.com/Yu9191/wloc
公共选点页面(Workers) https://wloc-spoofer.wloc.workers.dev
公共选点页面(Pages) https://wloc-pages.pages.dev
设置定位快捷指令 https://www.icloud.com/shortcuts/a82717d8fdad4e6280866fcf911173f7
清理定位快捷指令 https://www.icloud.com/shortcuts/f42632d406504f24a2cd163af4fe012f

判断聊完了,地址也给了,剩下就一句话:装还是不装?

先装起来,别想太多

如果你手上的代理工具已经配好了 MITM,wloc 值得花五分钟装一下。从订阅模块到跑通第一次定位切换,正常不超过十分钟。装完之后要不要长期用,那是你自己的判断。

如果你还没用代理工具,那这事不急。wloc 不会是你买 Surge 或 Quantumult X 的理由,但它是你买了之后的意外收获。

一个非越狱方案能做到的边界,wloc 差不多摸到了。但也仅仅是摸到了。

开源项目

TREK:把旅行规划从群聊里救出来的自托管方案

2026-7-20 12:00:22

AI工具

Mergeek 测评:一个连限免App都帮你盯着的极客社区

2026-6-11 10:27:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧