12 KiB
iOS-Location-Spoofer-Web
⚠️ 【防骗与严禁倒卖声明】
本项目为 100% 免费开源项目(唯一官方开源仓库:akudamatata/iOS-Location-Spoofer-Web),遵循 CC BY-NC-SA 4.0 开源许可协议。 「严禁任何个人或组织以任何形式进行二次售卖、转售、商业收费代搭建、打包牟利等行为」。 若您是通过闲鱼、淘宝、拼多多、付费微信群等任何渠道付费购买获得本项目的,您已被欺诈,请立即向购买平台申请退款并举报不良商家!
📱 基于 Shadowrocket MITM 方案的 iOS GPS 模拟定位 Web 管理面板(个人单用户自建专属)。
采用 Apple 2026 Liquid Glass(液态玻璃) 视觉美学设计,全屏地图选点,后端与核心规则支持 100% 独立自建托管。
🌟 核心特性
| 特性 | 说明 | |
|---|---|---|
| 🗺 | 多地图切换 | CartoDB / Esri 卫星 / 高德地图 / 高德卫星,支持国内外全域定位 |
| 🎯 | 准星锁定 | 滑动地图对准目标,点击锁定后地图显示蓝色图钉标记已生效坐标 |
| 📍 | 当前位置 | 一键回到当前物理位置并自动纠偏对齐 |
| 🔒 | 后端完全自建 | 内置自托管 location-spoofer.js 与规则模块,无需依赖任何外部规则订阅 |
| 👤 | 个人专属架构 | 专为个人单用户设计的极简 Serverless 架构,单实例专属,零维护成本 |
| ⭐ | 智能收藏夹 | 毛玻璃面板,保存常用地点;已收藏位置星标实时高亮,支持一键切换与取消 |
| 🔢 | 高级参数 | 可调节海拔、水平精度、垂直精度(支持按地形自动获取海拔高度) |
| 🔍 | 坐标直跳 | 搜索框直接粘贴经纬度(如 39.9087, 116.3975)即刻精准跳转 |
| 🌙 | 深色模式 | 设置面板内一键切换深色/浅色,偏好自动记忆 |
| 📲 | PWA 支持 | Safari「添加到主屏幕」后全屏运行,体验对齐原生 iOS App |
| ⚡️ | WLOC 最小改写 | 采用最小改写策略(Minimal Rewrite)与滑窗扫描兜底,稳定适配最新 iOS 系统 |
📸 界面预览
![]() 全屏地图选点 |
![]() 智能收藏夹 |
![]() 设置与小火箭配置 |
![]() 多图层图源切换 |
![]() 卫星图与高级参数 |
![]() 地点搜索与历史 |
📱 系统与客户端兼容性矩阵
| 平台 / 系统 / 软件 | 版本范围 | 支持状态 | 说明 |
|---|---|---|---|
| iOS / iPadOS | iOS 12.0 ~ iOS 26.x | 🟢 完美支持 | 覆盖所有主流正式版系统,零 BigInt 纯原生实现,稳定运行 |
| iOS / iPadOS | iOS 27 beta 1 ~ beta 5 | 🟢 完美支持 | 已跟进 WLOC 最小改写策略与封装扫描兜底 |
| iOS / iPadOS | iOS 27 beta 6 及以上 | ⚠️ 系统受限 | 苹果在系统定位组件开启了强 TLS 证书固定(Pinning),目前所有 MITM 方案均受限 |
| Shadowrocket | v2.2.x 及以上版本 | 🟢 完美支持 | 需开启 HTTPS 解密并信任 CA 证书 |
🌐 外部服务与数据隐私边界
为了在浏览器端提供流畅的地图交互和选点体验,前端 Web 面板在必要时会直接请求以下公开 WebGIS 与基础服务:
- 地图底图瓦片 (Map Tiles):
- 高德地图 / 高德卫星(国内推荐,加载高德官方公开瓦片)
- CartoDB / Esri World Imagery(国外底图与高精度卫星影像)
- 地点搜索接口 (Geocoding):
- 高德 Web 服务 API(如配置
AMAP_KEY,用于国内地名关键字联想) - OpenStreetMap Nominatim(未配置高德 Key 时的国际搜索备用源)
- 高德 Web 服务 API(如配置
- 地形海拔查询:
- Open-Meteo Elevation API(点击地图时自动获取目标坐标的真实地形海拔)
- 静态前端资源 CDN:
unpkg.com(Leaflet 地图基础库)、Google Fonts(Inter 字体)
💡 数据安全声明:所有自建配置、Token 鉴权、当前定位坐标与收藏夹数据均仅保存在您私有部署的 Cloudflare KV 中,绝不向任何第三方上传您的私有定位坐标记录。
🐳 Docker 自托管
Docker 版本内置一个零依赖 Node.js 后端,用本地 JSON 文件替代 Cloudflare Pages Functions 与 KV,原有网页、API 路径和 Shadowrocket 模块链接保持不变。
git clone https://github.com/你的账号/iOS-Location-Spoofer-Web.git
cd iOS-Location-Spoofer-Web
cp .env.example .env
编辑 .env,至少设置一个足够长的随机 TOKEN,然后启动:
docker compose up -d --build
curl http://127.0.0.1:8080/healthz
默认监听 0.0.0.0:8080,坐标和收藏夹保存在 Docker volume spoofer_data。生产环境请在容器前配置 Nginx、Caddy 或其他 HTTPS 反向代理,并把 X-Forwarded-Proto 和 X-Forwarded-Host 传给应用,以便生成正确的 Shadowrocket 模块链接。
环境变量:
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
TOKEN |
是 | 无 | 网页和所有定位 API 的访问密码;未设置时服务拒绝启动 |
AMAP_KEY |
否 | 空 | 高德 Web 服务 Key |
PORT |
否 | 8080 |
宿主机暴露端口 |
LISTEN_ADDRESS |
否 | 0.0.0.0 |
宿主机监听地址;只供本机反代时可设为 127.0.0.1 |
升级时执行:
git pull
docker compose up -d --build
🛠 快速部署 (Cloudflare Pages)
本项目专为 Cloudflare Pages 设计,部署于全球边缘节点,实现 零维护、零服务器成本、个人专属。
1. 准备工作
- 注册并登录 Cloudflare 账号。
- 在 Cloudflare Dashboard 左侧菜单找到 Workers & Pages -> KV。
- 创建一个新的 KV 命名空间,命名为
SPOOFER_DATA。
2. Fork 仓库
点击右上角的 Fork,将本仓库 Fork 到您的 GitHub 账号下。
3. 创建 Pages 项目
- 在 Cloudflare Dashboard 侧边栏进入 Workers & Pages -> Overview,点击右上角 Create application (创建应用程序)。
- ⚠️ 关键:请务必点击顶部的「Pages (网页)」标签卡(切勿停留在默认的 Workers 标签卡上),然后点击 Connect to Git (连接到 Git)。
- 授权连接您的 GitHub,选择您刚才 Fork 的仓库。
- 在构建设置 (Build settings) 页面:
- Framework preset (框架预设): 选择
None - Build command (构建命令): 填写
exit 0 - Build output directory (构建输出目录): 填写
public
- Framework preset (框架预设): 选择
- 展开 Environment variables (advanced) (环境变量),添加以下变量:
TOKEN: 您的私有访问密码(必填,用于面板访问与接口鉴权,服务端已做安全脱敏保护)AMAP_KEY: 您的高德地图 Web 服务 Key(用于国内高精度地名搜索,可选但强烈推荐)
- 点击 Save and Deploy(保存并部署)。首次部署由于尚未绑定 KV 会提示无法保存数据,这是正常的,请继续下一步。
4. 绑定 KV 命名空间
- 部署完成后,进入该 Pages 项目的详情页,点击顶部的 Settings -> Functions。
- 往下滚动找到 KV namespace bindings。
- 点击 Add binding:
- Variable name (变量名称): 填入
SPOOFER_DATA(必须完全一致) - KV namespace (KV 命名空间): 选择您在第一步创建的
SPOOFER_DATA。
- Variable name (变量名称): 填入
- 重新部署一次生效:回到该项目的 Deployments (部署) 页面,点击列表最上面一次部署右侧的
...图标 -> Retry deployment (重试部署)。
部署完成后,您将获得一个类似 https://your-project.pages.dev 的专属域名,可直接通过手机访问面板!
📲 Shadowrocket 配置指南
1. 添加为模块 (Module)
- 在手机浏览器打开面板,输入您的 Token 登录。
- 点击页面右上角 「⚙️ 设置」 图标,复制模块链接。
- 打开 Shadowrocket → 底部 「配置」 标签页 → 点击进入 「模块 (Modules)」。
- 点击右上角 「+」 → 粘贴刚才复制的链接 → 点击下载。
- 确保下载好的
iOS Location Spoofer模块开关处于开启状态。
2. 开启 HTTPS 解密与安装证书
点击当前配置文件进入详情 → 「HTTPS 解密」:
- 开启 「HTTPS 解密」 开关
- 开启 「通过 HTTP/2 进行中间人攻击 (MitM)」 开关
- 点击 「证书」 → 「生成新的 CA 证书」 → 「安装证书」
- 前往 iPhone 「设置 → 通用 → 关于本机 → 证书信任设置」,找到 Shadowrocket 证书并完全信任
3. 启动 VPN
回到小火箭首页,开启 VPN 开关,模式保持 「配置 (Config)」 即可。
🧭 日常使用流程
- 打开面板:手机浏览器访问面板地址,输入 Token 登录(登录后 30 天内免密直接进入)
- 选点:拖动地图准星,或顶部搜索框输入地名 / 直接粘贴经纬度(如
39.9087, 116.3975) - 锁定:点击 「锁定」 按钮,地图上出现蓝色图钉,提示"位置已锁定"
- 刷新定位:前往 iPhone 「设置 → 隐私与安全 → 定位服务」,关闭后等 10 秒再重新开启
- 验证:打开高德地图、微信或系统地图,此时模拟定位已顺利生效 ✅
换位置:重复步骤 2-4 即可,无需重启小火箭。
收藏常用地点:锁定位置后点击准星旁的 ⭐ 星标即可收藏,再次点击实心星可取消收藏。
夜间使用:点击设置面板底部的「深色模式」开关,偏好自动记忆。
添加到主屏幕 (PWA):在 Safari 中点击「分享」→「添加到主屏幕」,即可像 App 一样全屏使用。
⚖️ 项目声明与免责条款
- 原创研发:本项目全量源码(包括 Liquid Glass Web 前端设计、Cloudflare Pages Serverless 后端 API 体系、以及基于纯 JS 原生实现的
location-spoofer.js核心代理拦截改写引擎)均为100% 独立自主设计与研发编写。 - 免责声明:本项目仅供开发者用于地图开发测试、地理位置接口调试以及技术性学习研究,请勿用于非法用途。因违规使用产生的一切风险与后果由使用者自行承担。
📄 开源授权与使用条款
本项目采用 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) 许可协议。
核心约束条款:
- 署名 (Attribution):在衍生项目、教程或分享中必须保留原作者信息及本项目 GitHub 仓库链接。
- 非商业性使用 (Non-Commercial):「严禁以任何形式进行二次售卖、转售、商业收费代搭建、打包牟利等行为」。
- 相同方式共享 (Share-Alike):若您修改、转换或以此代码为基础进行创作,必须采用相同或兼容的 CC 协议进行开源共享。





