不限系统、不限越狱、普通苹果手机任意修改定位教程

图片[1]-不限系统、不限越狱、普通苹果手机任意修改定位教程-紫竹阁软件

本教程教你用 Shadowrocket(小火箭) 把 iPhone 的定位改到世界任何地方,无需越狱、无需电脑、无需开发者账号。跟着一步步做即可。理论上也支持 Surge / Loon / Quantumult X / Stash

原理一句话:iPhone 靠周围 Wi-Fi、基站问苹果服务器”我在哪”,本模块在苹果回坐标的半路上把坐标改成你指定的地方,iPhone 就以为自己在那里。


开始前你需要

 

  • 一台 iPhone
  • Shadowrocket(小火箭)App(App Store 付费应用,需先买好装好)
  • 能正常联网

此方法适用于包括 iOS 27 beta 在内的各系统版本。改坐标后按第六步”关开定位、多试几次”即可生效。


第一步:导入模块

 

  1. 打开 Shadowrocket
  2. 底部点 「配置」
  3. 找到 「模块」,点右上角 「+」
  4. 选 「来自 URL」,粘贴下面这个地址:
    https://raw.githubusercontent.com/mekos2772/ios-location-spoofer/main/ios-location-spoofer.sgmodule
    
  5. 保存。回到模块列表,确认这条 「iOS Location Spoofer」前面是勾选/启用状态(右侧有个 ✓)

✅ 模块导入完成。


第二步:打开 HTTPS 解密

 

  1. Shadowrocket 底部点 「设置」 → 进 「HTTPS 解密」

  2. 把 「HTTPS 解密」 开关打开(变蓝)

    注意:有的版本这里只有一个开关,那是正常的,它本身就是中间人解密。旧教程截图里多出的”HTTP/2 MitM”开关是可选项,没有不影响。

  3. 看中间的 「域名」 列表,确认包含这四个(导入模块后通常会自动出现):

    gs-loc.apple.com
    gs-loc-cn.apple.com
    bluedot.is.autonavi.com
    bluedot.is.autonavi.com.gds.alibabadns.com
    

    如果没有,点绿色 「+」,把上面这串用逗号分隔粘进去,再点右上角 ✓ 保存

✅ 解密开关和域名就绪。


第三步:安装并信任证书(最关键,别漏)

 

这一步分三个小步骤,少一步定位就改不了。

3.1 生成并安装证书

 

  1. 还在 HTTPS 解密页面,点 「证书」
  2. 点 「生成新的 CA 证书」 → 再点 「安装证书」
  3. 弹出”已下载描述文件”,点好

3.2 去系统里安装描述文件

 

  1. 打开 iPhone 设置 App
  2. 进 设置 → 通用 → VPN 与设备管理
  3. 找到 Shadowrocket 的描述文件 → 点进去 → 点 「安装」(输入锁屏密码)

3.3 信任证书 ⚠️(90% 的人漏这步)

 

  1. 进 设置 → 通用 → 关于本机 → 证书信任设置
  2. 把 Shadowrocket 那个证书的开关打开(启用完全信任)

✅ 三步都做完,解密才能真正工作。


第四步:开启代理

 

  1. 回到 Shadowrocket 首页
  2. 把顶部的总开关打开(变绿色 / 显示”已连接”)
  3. 第一次会弹”是否允许添加 VPN 配置”,点 允许

✅ 代理已开启,上方状态栏会出现 VPN 图标。


第五步:设置你想去的坐标

 

默认定位是苹果总部(美国库比提诺)。改成你想要的地点:

  1. Shadowrocket → 配置 → 模块 → 点开 「iOS Location Spoofer」
  2. 找到 argument= 那一行,改里面这两个数字:
    • latitude= → 你的纬度
    • longitude= → 你的经度
  3. 保存

几个常用坐标可直接抄:

地点 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 重新向苹果请求定位。方法很简单:

  1. 打开 设置 → 隐私与安全性 → 定位服务
  2. 整个关掉,等 10 秒以上,再打开
  3. 打开 地图 或 天气 App 查看定位
  4. 没变就重复关/开定位几次,多试几遍就会生效

苹果对定位有缓存,需要重新发请求才会被拦截修改,所以有时要多关开几次、多试几遍才命中。生效后通常会稳定保持,不用一直关开。

补充触发技巧:还可以彻底杀掉地图/天气 App 再重开,或用 Apple 自带「地图」点右下角定位箭头强制重新定位。


进阶(可选):用网页地图选点,告别手动改参数

 

前面第五步是手动去模块里改 latitude / longitude / altitude 数字——偶尔换一次没问题,但经常换、还要每次查海拔就很烦

项目自带一个网页地图选点工具location-picker/server.js),把这些全自动化了:

  • 手指点地图哪里,定位就到哪里,不用手查经纬度
  • 海拔按地形自动获取(点哪自动填哪的真实海拔),不用自己查
  • 水平精度 / 垂直精度在网页上直接调,点「保存」即可
  • 支持高德 / 卫星 / 国外地图切换,自动处理国内地图偏移
  • 搜索地名能列出多个候选,像真地图一样选
  • 一键”恢复真实定位”:不用去关模块,网页点一下就让脚本放行、回到真实位置(再点一下恢复伪造)

用它需要什么

 

  • 一台能长期运行的服务器 / VPS / NAS(用来跑这个小工具)
  • 有一点点动手能力(会用 SSH、systemd)

如果你没有服务器、只是偶尔改一次定位 → 不用装这个,按第五步手动改数字就够了。 如果你经常换地方、想”点地图就搞定” → 值得装。

怎么装

 

  1. 把项目里的 location-picker/server.js 上传到你的服务器运行(文件开头的注释写了启动命令,支持自带 https 复用已有证书)
  2. 在 Shadowrocket 模块的 argument= 末尾追加(前面的参数都保留):
    &configUrl=https://你的域名:端口/loc.json?token=你的密码
    
  3. 之后改定位就是:打开网页 → 点地图 → 按第六步关开定位生效

详细部署步骤(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:定位一直不变? 按这个顺序查:

  1. 证书信任设置里的开关有没有真的打开(第 3.3 步,最常见原因)
  2. 模块是不是在「模块」里且已启用(右侧有 ✓)
  3. HTTPS 解密开关是否打开、四个苹果域名是否都在
  4. 有没有多试几次关/开定位(苹果有缓存,往往要重复几遍才生效)
  5. 把模块 argument= 里的 debug=false 改成 debug=true,去 Shadowrocket「数据/日志」看有没有拦截到 wloc 请求——能看到说明拦截成功

Q:模块导入后域名没自动出现? 手动在 HTTPS 解密页面把那四个域名加进去,记得点右上角 ✓ 保存。

Q:可以恢复真实定位吗? 可以。关掉模块(取消 ✓)或关掉 Shadowrocket 总开关,然后按第六步刷新一次定位即可恢复。


操作顺序速查

 

导入模块 → 开HTTPS解密+加域名 → 装证书并信任 → 开代理 → 改坐标保存
→ 关定位等10秒再开(没变就多试几次) → 打开地图验证

祝配置顺利。卡在哪一步,对照上面”常见问题排查”逐条检查即可。

开源地址:

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容