Yu9191/wloc · 上手攻略

  • 仓库:Yu9191/wloc
  • 链接:https://github.com/Yu9191/wloc
  • 分类:tool · ios · location
  • 作者:Tom
  • 更新:2026-07-07

它是什么

wloc 是一个修改 iOS 网络定位服务(WiFi/基站定位,Apple 内部称为 WLOC)的工具。它能让你在 iPhone 上"虚拟定位"——不是伪造 GPS,而是让 Apple 的网络定位服务返回你指定的坐标,从而影响依赖网络定位的 App(如地图、外卖、社交 App)。

支持 Surge、Quantumult X、Loon、Stash、Shadowrocket 等主流代理工具,以及 iOS 快捷指令一键切换/恢复。

⚠️ 重要:它只修改网络定位(WiFi/基站),不影响 GPS 硬件定位;只修改「使用网络定位」的 App,不改真正的 GPS。


解决什么问题

  • 需要测试特定地点的 App 行为(外卖 App 定位推荐、地图 POI 等)
  • 室内场景 GPS 信号弱,依赖网络定位,但想用一个特定位置
  • 开发者测试地理位置相关功能
  • 需要临时"换一个城市"而不实际移动

不是:不是游戏外挂、不是用于欺骗网约车等涉及真实安全的场景的工具。


快速安装

方式一:快捷指令(最方便,推荐)

  1. 在 iOS 设备上打开快捷指令 App
  2. 点击「添加快捷指令」,粘贴以下任一链接: - 设置地理位置:https://www.icloud.com/shortcuts/a82717d8fdad4e6280866fcf911173f7 - 清除/恢复真实定位:https://www.icloud.com/shortcuts/f42632d406504f24a2cd163af4fe012f

安装后,选点流程: 1. 在地图 App(苹果地图或高德地图)中长按选点 2. 点击「分享」→「wloc 设置地理位置」→ 自动完成坐标转换并储存

方式二:代理工具订阅模块

根据你用的代理工具,订阅对应模块:

Surge:

https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.sgmodule

Quantumult X:

https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.conf

Loon:

https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.lpx

Stash:

https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.stoverride

Shadowrocket(小火箭):

https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.module

订阅后在代理工具中启用模块,并信任 gs-loc.apple.comgs-loc-cn.apple.com 的 MITM 证书。


核心用法

快捷指令方式(最简单)

苹果地图选点 → 共享 → 「wloc 设置地理位置」 → 完成

高德地图:选点 → 分享 → 更多 → 「wloc 设置地理位置」

高德短链自动解析(GCJ-02→WGS84 坐标换算),苹果地图链接同样处理,无需手动算坐标。

代理工具方式(在线选点页面)

  1. 订阅并启用模块(含 MITM)
  2. 打开在线选点页面:https://wloc-spoofer.wloc.workers.dev/(公共 Worker,有请求上限)
  3. 在地图选点/搜索地名/粘贴地图链接
  4. 点击「储存到设备」
  5. 下次 Apple 定位触发时自动生效

自部署 Worker(推荐长期用)

公共 Worker 有日请求限制,建议自己部署:

一键部署: 点击:

https://deploy.workers.cloudflare.com/?url=https://github.com/Yu9191/wloc/tree/main/worker

手动部署:

git clone https://github.com/Yu9191/wloc.git
cd wloc/worker
npm install
npx wrangler login
npm run deploy

部署后得到 Worker 地址(如 https://wloc-spoofer.<你的子域名>.workers.dev),替换快捷指令里的 wloc-spoofer.wloc.workers.dev 即可。

恢复真实定位

方法一:关闭或删除模块(推荐) 关闭模块后脚本不再拦截 WLOC 请求,系统自动恢复真实定位。iOS 26+ 需重启设备清除定位缓存。

方法二:清除持久化数据(透传模式) 在代理工具中运行清除命令:

Surge:

$persistentStore.write(null, "wloc_settings")

Quantumult X:

$prefs.removeValueForKey("wloc_settings")

Loon:

$persistentStore.write(null, "wloc_settings")

清除后重启设备即可恢复真实定位,无需关闭模块。


工作原理

选点页面 → fetch gs-loc.apple.com/wloc-settings/save?lon=x&lat=y
         → 代理模块拦截 → wloc-settings.js 写入 $persistentStore
         → 下次 WLOC 触发 → wloc.js 读取坐标 → patch protobuf 响应

模块包含两条规则: - wloc.js:拦截 /clls/wloc 响应,解析 protobuf 并替换坐标 - wloc-settings.js:拦截 /wloc-settings/save 请求,写入持久化存储

隐私说明:选点页面的 /api/parse 纯转发解析,不写任何存储、不记日志、不缓存,处理完即丢。


典型适用场景

  1. App 测试:测试特定城市的地图/外卖/社交推荐逻辑
  2. 室内定位开发:WiFi/基站定位开发调试
  3. 地理位置隔离测试:验证 App 是否正确识别不同地区内容
  4. 隐私替代:需要给某个 App 提供一个虚拟位置时,用网络定位代替 GPS

坑与注意

  1. iOS 26+ 定位缓存:iOS 26 开始 locationd 会缓存真实定位结果,长时间复用。切换坐标后必须重启设备才能清除缓存(飞行模式开关、关闭定位服务无效)。 - 推荐成功率最高流程:选好位置 → 开飞行模式 → 关闭定位服务 → 重启设备 → 关闭飞行模式(WiFi 也关)→ 连接代理 → 打开定位服务 → 验证
  2. GPS 信号强时会忽略网络定位:在室外空旷处 GPS 信号好,系统可能直接用 GPS 坐标,不走网络定位通道。
  3. MITM 证书必须信任gs-loc.apple.comgs-loc-cn.apple.com 的证书必须导入并信任,否则模块无法解密和修改 WLOC 响应。
  4. 只修改网络定位:GPS 硬件定位不受影响,需要真实 GPS 坐标的 App(如导航)仍会用真实位置。
  5. 代理工具必须运行:模块依赖代理工具的脚本环境,关闭代理后系统自动恢复真实定位。
  6. 快捷指令前提:快捷指令方案需要代理已开 + 模块已启用 + 证书已信任。
  7. 国内坐标换算:高德和苹果地图在中国大陆返回的是 GCJ-02 偏移坐标,worker 会自动做 GCJ-02→WGS84 换算;若用境外坐标则原样返回。

与同类对比

工具 修改方式 依赖 稳定性 维护状态
wloc 网络定位(WiFi/基站) 代理工具 高(iOS 26 特殊处理) 活跃
Location Faker(iOS App) GPS 硬件伪造 越狱/付费 App 商业化
iTools GPS 硬件 电脑配合 商业化
Surge MITM 方案 自写脚本 需自己写模块 DIY

wloc 的优势是不改 GPS 硬件,只改网络定位,安全性更高(不算真正的位置欺骗),且完全免费开源。


一句话推荐

如果你用 Surge/QuanX/Loon 等代理工具,想在不改变真实 GPS 的前提下让 App 收到特定网络定位,wloc 是目前最干净、最活跃的开源方案——快捷指令一键切换,用完即恢复,体验很顺。