![图片[1]-不限系统、不限越狱、普通苹果手机任意修改定位教程-紫竹阁软件](https://cdn.zizhuyunxuan.com/zizhuge/2026/07/20260702042559428.webp)
本教程教你用 Shadowrocket(小火箭) 把 iPhone 的定位改到世界任何地方,无需越狱、无需电脑、无需开发者账号。跟着一步步做即可。理论上也支持 Surge / Loon / Quantumult X / Stash
原理一句话:iPhone 靠周围 Wi-Fi、基站问苹果服务器”我在哪”,本模块在苹果回坐标的半路上把坐标改成你指定的地方,iPhone 就以为自己在那里。
开始前你需要
- 一台 iPhone
- Shadowrocket(小火箭)App(App Store 付费应用,需先买好装好)
- 能正常联网
此方法适用于包括 iOS 27 beta 在内的各系统版本。改坐标后按第六步”关开定位、多试几次”即可生效。
第一步:导入模块
- 打开 Shadowrocket
- 底部点 「配置」
- 找到 「模块」,点右上角 「+」
- 选 「来自 URL」,粘贴下面这个地址:
https://raw.githubusercontent.com/mekos2772/ios-location-spoofer/main/ios-location-spoofer.sgmodule - 保存。回到模块列表,确认这条 「iOS Location Spoofer」前面是勾选/启用状态(右侧有个 ✓)
✅ 模块导入完成。
第二步:打开 HTTPS 解密
-
Shadowrocket 底部点 「设置」 → 进 「HTTPS 解密」
-
把 「HTTPS 解密」 开关打开(变蓝)
注意:有的版本这里只有一个开关,那是正常的,它本身就是中间人解密。旧教程截图里多出的”HTTP/2 MitM”开关是可选项,没有不影响。
-
看中间的 「域名」 列表,确认包含这四个(导入模块后通常会自动出现):
gs-loc.apple.com gs-loc-cn.apple.com bluedot.is.autonavi.com bluedot.is.autonavi.com.gds.alibabadns.com如果没有,点绿色 「+」,把上面这串用逗号分隔粘进去,再点右上角 ✓ 保存。
✅ 解密开关和域名就绪。
第三步:安装并信任证书(最关键,别漏)
这一步分三个小步骤,少一步定位就改不了。
3.1 生成并安装证书
- 还在 HTTPS 解密页面,点 「证书」
- 点 「生成新的 CA 证书」 → 再点 「安装证书」
- 弹出”已下载描述文件”,点好
3.2 去系统里安装描述文件
- 打开 iPhone 设置 App
- 进 设置 → 通用 → VPN 与设备管理
- 找到 Shadowrocket 的描述文件 → 点进去 → 点 「安装」(输入锁屏密码)
3.3 信任证书 ⚠️(90% 的人漏这步)
- 进 设置 → 通用 → 关于本机 → 证书信任设置
- 把 Shadowrocket 那个证书的开关打开(启用完全信任)
✅ 三步都做完,解密才能真正工作。
第四步:开启代理
- 回到 Shadowrocket 首页
- 把顶部的总开关打开(变绿色 / 显示”已连接”)
- 第一次会弹”是否允许添加 VPN 配置”,点 允许
✅ 代理已开启,上方状态栏会出现 VPN 图标。
第五步:设置你想去的坐标
默认定位是苹果总部(美国库比提诺)。改成你想要的地点:
- Shadowrocket → 配置 → 模块 → 点开 「iOS Location Spoofer」
- 找到
argument=那一行,改里面这两个数字:latitude=→ 你的纬度longitude=→ 你的经度
- 保存
几个常用坐标可直接抄:
| 地点 | latitude(纬度) | longitude(经度) |
|---|---|---|
| 北京天安门 | 39.9087 | 116.3975 |
| 上海外滩 | 31.2397 | 121.4900 |
| 广州塔 | 23.1066 | 113.3245 |
| 东京塔 | 35.6586 | 139.7454 |
怎么查任意地点的坐标:用电脑或手机打开 Google 地图 / 高德地图,找到目标位置,右键或长按 → 复制坐标,会得到两个数字。顺序是 纬度在前、经度在后。
顺手把海拔等参数也调一下(建议,别只改经纬度)
argument= 里除了经纬度,还有几个参数一起构成”完整的一次定位”。只改经纬度、海拔却停在默认的 530 米,跑到上海(近海平面)或拉萨(3600 米)时就会明显对不上、容易露馅。建议按目标地点顺手调一下:
| 参数 | 默认值 | 含义 | 建议 |
|---|---|---|---|
altitude |
530 | 海拔(米),支持负数 | 改成目标地点的真实海拔(下面教你查)。上海≈4、北京≈44、拉萨≈3650、吐鲁番可为负 |
horizontalAccuracy |
39 | 水平精度(米),越小越”精准” | 想更像 GPS 可设 5~15;保持 39 也正常 |
verticalAccuracy |
1000 | 垂直精度(米) | 配了真实海拔后可调小到 10~30,让海拔显得更可信 |
怎么查目标地点海拔:浏览器搜”地名 海拔”,或用高德/Google 地图;也可以打开这个免费接口直接看(把经纬度换成你的):
https://api.open-meteo.com/v1/elevation?latitude=31.2397&longitude=121.4900返回里的
elevation就是海拔(米)。
改法和经纬度一样:在 argument= 那行找到对应参数改数字,保存即可。其余参数(motionActivityType 等运动状态)一般不用动。
第六步:让定位生效
改完坐标不会立刻生效,需要”逼” iPhone 重新向苹果请求定位。方法很简单:
- 打开 设置 → 隐私与安全性 → 定位服务
- 整个关掉,等 10 秒以上,再打开
- 打开 地图 或 天气 App 查看定位
- 没变就重复关/开定位几次,多试几遍就会生效
苹果对定位有缓存,需要重新发请求才会被拦截修改,所以有时要多关开几次、多试几遍才命中。生效后通常会稳定保持,不用一直关开。
补充触发技巧:还可以彻底杀掉地图/天气 App 再重开,或用 Apple 自带「地图」点右下角定位箭头强制重新定位。
进阶(可选):用网页地图选点,告别手动改参数
前面第五步是手动去模块里改 latitude / longitude / altitude 数字——偶尔换一次没问题,但经常换、还要每次查海拔就很烦。
项目自带一个网页地图选点工具(location-picker/server.js),把这些全自动化了:
- 手指点地图哪里,定位就到哪里,不用手查经纬度
- 海拔按地形自动获取(点哪自动填哪的真实海拔),不用自己查
- 水平精度 / 垂直精度在网页上直接调,点「保存」即可
- 支持高德 / 卫星 / 国外地图切换,自动处理国内地图偏移
- 搜索地名能列出多个候选,像真地图一样选
- 一键”恢复真实定位”:不用去关模块,网页点一下就让脚本放行、回到真实位置(再点一下恢复伪造)
用它需要什么
- 一台能长期运行的服务器 / VPS / NAS(用来跑这个小工具)
- 有一点点动手能力(会用 SSH、systemd)
如果你没有服务器、只是偶尔改一次定位 → 不用装这个,按第五步手动改数字就够了。 如果你经常换地方、想”点地图就搞定” → 值得装。
怎么装
- 把项目里的
location-picker/server.js上传到你的服务器运行(文件开头的注释写了启动命令,支持自带 https 复用已有证书) - 在 Shadowrocket 模块的
argument=末尾追加(前面的参数都保留):&configUrl=https://你的域名:端口/loc.json?token=你的密码 - 之后改定位就是:打开网页 → 点地图 → 按第六步关开定位生效
详细部署步骤(systemd 常驻、证书、端口、Cloudflare 等)都写在
location-picker/server.js文件顶部的注释里,跟着做即可。
配置环境变量(必读)
server.js 通过环境变量控制,TOKEN 不设进程会直接退出,不会用弱口令兜底——这是防呆设计,避免你部署完忘了改默认密码被人扫。
| 变量 | 是否必设 | 默认值 | 说明 |
|---|---|---|---|
TOKEN |
必设 | 无 | 网页端和模块 configUrl 里的 token= 必须一致。建议 openssl rand -hex 24 生成 |
PORT |
否 | 8080 |
监听端口;1024 以下需 root |
CERT |
否 | 空 | HTTPS 证书 fullchain 路径;与 KEY 同时设置才走 https |
KEY |
否 | 空 | HTTPS 私钥路径;与 CERT 同时设置才走 https |
启动示例:
# http(先跑通流程,再用 https)
TOKEN=$(openssl rand -hex 24) PORT=8080 node server.js
# https(复用 acme.sh 证书,续期无需重启,进程每 12 小时自动热加载)
TOKEN=$(openssl rand -hex 24) PORT=8443 \
CERT=/root/cert/example.com/fullchain.pem \
KEY=/root/cert/example.com/privkey.pem \
node server.js
然后模块 argument= 末尾的 configUrl 写成:
&configUrl=https://example.com:8443/loc.json?token=上面那个TOKEN
数据文件 loc.json 自动落在 server.js 同目录,记录当前坐标 / 海拔 / 精度;已写入 .gitignore,不会污染仓库。
⚠️ 不要把
TOKEN直接写在命令行里——推荐用 systemd 的Environment=或.env+direnv,避免history和ps aux泄露出去。⚠️ iPhone 的 Shadowrocket 第一次访问
configUrl时会弹一次”是否信任证书”,点信任。
常见问题排查
Q:定位一直不变? 按这个顺序查:
- 证书信任设置里的开关有没有真的打开(第 3.3 步,最常见原因)
- 模块是不是在「模块」里且已启用(右侧有 ✓)
- HTTPS 解密开关是否打开、四个苹果域名是否都在
- 有没有多试几次关/开定位(苹果有缓存,往往要重复几遍才生效)
- 把模块
argument=里的debug=false改成debug=true,去 Shadowrocket「数据/日志」看有没有拦截到wloc请求——能看到说明拦截成功
Q:模块导入后域名没自动出现? 手动在 HTTPS 解密页面把那四个域名加进去,记得点右上角 ✓ 保存。
Q:可以恢复真实定位吗? 可以。关掉模块(取消 ✓)或关掉 Shadowrocket 总开关,然后按第六步刷新一次定位即可恢复。
操作顺序速查
导入模块 → 开HTTPS解密+加域名 → 装证书并信任 → 开代理 → 改坐标保存
→ 关定位等10秒再开(没变就多试几次) → 打开地图验证
祝配置顺利。卡在哪一步,对照上面”常见问题排查”逐条检查即可。
开源地址:










暂无评论内容