mekos2772/ios-location-spoofer · 上手攻略
- 仓库:mekos2772/ios-location-spoofer
- 链接:https://github.com/mekos2772/ios-location-spoofer
- 分类:iOS 工具 · 定位欺骗
- 作者:Tom
- 更新:2026-08-11
是什么
iOS Location Spoofer 是一个免越狱、在代理软件内通过 MITM(中间人攻击)劫持并篡改 Apple 定位服务的 iOS 定位欺骗工具。它将原始 Go 编写的独立 App 核心逻辑移植为 JavaScript,封装为 Shadowrocket / Surge / Loon / Quantumult X / Stash 五个主流代理平台的模块文件,导入即用,无需编译、无需开发者账号。
原始项目来自 acheong08/ios-location-spoofer,本仓库在此基础上新增:蜂窝基站坐标改写(CellTower fields 22/24)、多响应格式自动兼容(ARPC / synthetic / marker / bare)、运动状态伪造(motionActivityType / motionActivityConfidence)。
解决什么问题
iPhone 通过读取附近 Wi-Fi BSSID 列表和蜂窝基站编号,向 Apple 定位服务查询这些设备的坐标,Apple 返回坐标清单后 iOS 自动算出自己在哪里。这套工具在 Apple 回传坐标的路上做拦截,把坐标全部改成你指定的值,从而让 iPhone "认为"自己在世界任何角落。
典型使用场景: - 测试需要特定位置的应用(如外卖、打车、旅行 App) - 玩需要特定 GPS 的游戏 - 保护隐私,不想暴露真实位置
快速安装
前置条件
- iOS 15+(各代理软件要求略有不同)
- 已安装以下任一代理 App:Shadowrocket、Surge、Loon、Quantumult X、Stash
- 该代理 App 已开启 HTTPS 解密 / MITM 开关
安装步骤
第一步:安装并信任 CA 证书
- 打开代理 App,开启 HTTPS 解密(MITM)
- 在 Safari 访问代理 App 提示的 CA 证书下载页面
- iOS 设置 → 通用 → VPN 与设备管理 → 安装证书
- 设置 → 通用 → 关于本机 → 证书信任设置 → 对代理 CA 开启「完全信任」
第二步:导入模块文件
根据你的代理 App 选择对应文件:
| 代理 App | 模块文件 | 导入方式 | 实测状态 |
|---|---|---|---|
| Shadowrocket | ios-location-spoofer.sgmodule |
配置 → 右上角 + | ✅ 通过 |
| Surge | ios-location-spoofer-surge.sgmodule |
首页 → 模块 → 安装新模块 | ✅ 通过 |
| Loon | ios-location-spoofer.lnplugin |
设置 → 插件 → 添加插件 | ✅ 通过 |
| Quantumult X | ios-location-spoofer.snippet |
设置 → 重写 → 添加 | 🟡 待测 |
| Stash | ios-location-spoofer.stoverride |
覆写 → 安装覆写 | ✅ 通过 |
第三步:配置目标坐标
默认坐标为 Apple Park(37.3349, -122.00902)。
在模块参数中修改(以 Shadowrocket/Surge 为例):
latitude=39.9042&longitude=116.4074
Loon 插件支持直接在 UI 填入经纬度或地址,地址由每 15 分钟的定时任务联网解析并缓存。
第四步:生效
- 断开并重新连接 VPN
- 开关一次定位服务(设置 → 隐私与安全性 → 定位服务 → 关闭再打开)
- 打开 Apple 地图验证是否到目标位置
核心用法
最小可跑命令(location-picker 自托管地图选点)
# 安装 Node.js 22+,克隆仓库
git clone https://github.com/mekos2772/ios-location-spoofer.git
cd ios-location-spoofer/location-picker
# 生成访问令牌
TOKEN=$(openssl rand -hex 24)
# 启动服务(HTTP,最简流程)
TOKEN=$TOKEN PORT=8080 node server.js
# 启动服务(HTTPS,复用 acme.sh 证书)
TOKEN=$TOKEN PORT=8443 \
CERT=/root/cert/example.com/fullchain.pem \
KEY=/root/cert/example.com/privkey.pem \
node server.js
# Docker 启动
cd ios-location-spoofer/location-picker
echo "TOKEN=$(openssl rand -hex 24)" > .env
docker compose up -d
启动后访问 http://localhost:8080/loc.json?token=你的TOKEN,可看到当前坐标文件。Loon 可通过 configUrl 方式远程读取,Shadowrocket 模块 argument 末尾 configUrl 里的 token 必须与服务端 TOKEN 一致。
核心模块参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| latitude | 37.3349 | 目标纬度 |
| longitude | -122.00902 | 目标经度 |
| address | (空) | 地址搜索(Loon 插件,联网解析,优先于手动经纬度) |
| horizontalAccuracy | 39 | 水平精度(米) |
| verticalAccuracy | 1000 | 垂直精度(米) |
| altitude | 530 | 海拔(米) |
| failOpen | true | 出错时放行原数据 |
| debug | false | 调试日志 |
典型适用场景
- 应用测试:需要特定城市/坐标测试 LBS 功能(外卖、打车、社交)
- 游戏辅助:需要特定位置的游戏(如宝可梦/ar 游戏)
- 隐私保护:出门时不想暴露真实家庭/公司位置
- 开发调试:测试 iOS 应用在不同地区的行为差异
坑与注意
⚠️ MITM failed 处理:Request List 显示 MITM failed 通常是证书信任状态或 hostname 匹配问题,不是脚本改写失败。必须确认:
- iOS 在「证书信任设置」中已对代理 CA 开启完全信任
- 失败请求的 Host 必须在模块 [MITM] hostname 中(项目已包含 gs-loc.apple.com、gsp-ssl.ls.apple.com 等主要域名)
- 若出现其他 /clls/wloc Host,请在 Issue 贴出完整 Host 和路径,不要用过宽通配符
⚠️ 不要用 *.apple.com 等过宽通配:会导致其他 Apple 请求被 MITM,可能引发 iCloud 等服务异常。
⚠️ QUIC/HTTP3 问题:部分代理 App 的 QUIC/HTTP3 选项可能导致 MITM 失败,尝试关闭后再重试。
⚠️ Quantumult X 尚未实测:该平台的 snippet 文件由社区贡献,实测结果未知,欢迎在 Issue 区反馈。
⚠️ TOKEN 安全:location-picker 服务不设 TOKEN 时会直接退出,部署时务必设置并妥善保管,不要写在命令行历史里,推荐用 systemd Environment= 或 .env + direnv 管理。
⚠️ iOS 系统限制:部分 App 使用系统级定位 API(如 CLLocationManager),可能不完全受 MITM 改写影响。
与同类对比
| 方案 | 是否越狱 | 平台 | 精度 | 复杂度 |
|---|---|---|---|---|
| 本工具(MITM 代理) | 否 | iOS 全系列 | 依赖 horizontalAccuracy 参数 | 低(导入模块即可) |
| 原始 acheong08 Go App | 否 | iOS(独立 App) | 高 | 中(需自建 VPN) |
| 虚拟定位 App(如 iTools) | 否 | iOS | 中 | 低 |
| 越狱插件 | 是 | iOS | 高 | 高(需越狱) |
| Android 虚假定位 | 否 | Android | 高 | 低 |
本工具的优势:免越狱、多平台支持(5 个代理 App)、无独立 App 暴露风险、模块化配置灵活。
劣势:依赖代理 App 的 MITM 功能,需要安装并信任 CA 证书,部分全系统级定位 API 可能无法欺骗。
一句话推荐结论
免越狱 iOS GPS 欺骗最简方案——只要你的代理 App 支持 MITM,5 分钟内把 iPhone 定位到世界任何角落。 适合开发者测试、LBS 游戏和隐私保护场景,Quantumult X 用户建议先确认实测结果再上生产。
原始 commit:https://github.com/mekos2772/ios-location-spoofer/commit/main