正常人都觉得,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 和自己的定位服务之间架了一面单向镜。

核心原理很简单:拦截 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 的话,这一步本身就是门槛。

四步走完就能切换定位:订阅模块、开启 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 在零依赖和操作便捷性上明显胜出。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 差不多摸到了。但也仅仅是摸到了。

