🍎 新手 · 完整模式 · 图文跟做

新手图文教程

照着一步步做即可完成安装与使用。全程约 15 分钟,需要:一台干净的 Linux VPS、一部 iPhone、一个兼容安装器所生成节点的客户端 App。

🧭

你将依次完成:① 装好落地机 → ② 一键安装 → ③ 读懂输出 → ④ 任选一种方式下载描述文件 → ⑤ 安装描述文件 → ⑥ 开启完全信任 → ⑦ 导入节点并全局连接 → ⑧ 关闭定位服务、准备刷新 → ⑨ 开启定位并验证。

项目更推荐进阶模式:它包含本页的完整代理与定位功能,并增加 Telegram 地点菜单、节点链接和描述文件交付。只想完成最简安装时,再继续使用本页的新手模式。

准备一台干净的落地机

准备一台 Debian 12/13 或 Ubuntu 22.04/24.04 的 VPS(amd64 或 arm64 都行,内存 ≥ 384 MiB)。这台机器所在的国家/城市,就是你「假装所在」的位置——想显示在美国,就买一台美国 VPS。

用 SSH 以 root(或能 sudo 的用户)登录:

# 把 IP 换成你的落地机地址
ssh root@你的落地机IP

建议用一台专门的新机器,不要装在已经运行其它代理服务或网站的服务器上。

一键安装(选「完整模式」)

在落地机上粘贴下面这一条命令,回车。安装器会问你选哪种模式,输入 1 或直接回车选择新手完整模式。安装成功后会自动进入 CA 描述文件临时下载,不用再手动输入下载命令。

curl -fsSL https://raw.githubusercontent.com/Loading886/Home-Location-Endpoint/v0.3.0/install.sh \
  | sudo env HLE_VERSION=v0.3.0 bash

想跳过提问、直接装完整模式,也可以:

curl -fsSL https://raw.githubusercontent.com/Loading886/Home-Location-Endpoint/v0.3.0/install.sh \
  | sudo env HLE_VERSION=v0.3.0 bash -s -- --mode full --port 443
root@landing: ~ # curl … | sudo bash Choose an installation mode: 1) Full proxy endpoint + location modifier (recommended) 2) Proxy endpoint + Telegram controller (advanced) 3) Location modifier only (expert) Selection [1]: 1 ==> Installing the managed proxy endpoint … ==> Validating transport parameters … Home-Location-Endpoint is ready in full mode.
输入 1 选完整模式,几分钟后看到「ready in full mode」即安装成功。

读懂输出:你会拿到「两样东西」

安装成功后,屏幕最后会打印一段总结。你需要关注其中三处:

Home-Location-Endpoint is ready in full mode. Random location city: Santa Clara, US Node URI: protocol://credential…@203.0.113.7:443?…#Home-Location-Endpoint iOS CA profile: /etc/home-location-endpoint/Home-Location-Endpoint-CA.mobileconfig CA SHA-256: 12:CC:44:03:F1:DB:…:4C:0E ① 节点链接 → 导入客户端 ② 描述文件 → 装进 iPhone ③ 指纹 → 装描述文件时核对
①节点链接 ②CA 描述文件路径 ③CA 的 SHA-256 指纹

随时可以再看这两样:

# 再次打印节点链接
sudo hle show-link
# 打印描述文件所在路径
sudo hle profile

任选一种方式把描述文件下载到 iPhone

不用手动传文件。交互式安装成功后,安装器会自动生成一个带随机令牌的临时下载地址,并在终端打印二维码。扫码和手动打开链接是两种可选方式,任选一种即可,不需要两种都做。

如果你按了 Ctrl+C、链接过期,或者以后需要重新下载,再手动运行:

sudo hle profile serve

阅后即焚:下载链接默认有效 100 分钟,并且只要成功下载一次就立即失效、下载服务自动关闭。过期或用完了,再跑一次 sudo hle profile serve 重新生成即可。

root@landing: ~ 安装完成后自动启动 hle profile serve 临时 CA 描述文件下载 下载地址: http://203.0.113.7:18080/Xk7Rf9q…/CA.mobileconfig 有效时间: 100 分钟 下载次数: 1 CA 指纹 : 12:CC:44:03:…:4C:0E 请临时确保 TCP 18080 可以到达本机。 正在等待一次成功下载…… iPhone 相机扫码
安装完成后,终端自动给出临时下载地址 + 二维码、CA 指纹、有效期与「下载次数:1」。

在 iPhone 上从下面两种方式中任选一种:

  1. 扫描二维码:用 iPhone 自带「相机」对准终端里的二维码,点弹出的横幅。
  2. 手动打开链接:把终端输出的 http://…:18080/… 下载地址发到 iPhone,再用 Safari 打开。

Safari 打开通常最顺:会直接提示「此网站正尝试下载一个配置描述文件」,点允许,随后到设置里安装(下一步)。

如果下载后没有直接弹出安装
📂

用夸克、QQ 等第三方浏览器扫码时,文件可能先被存到浏览器的「下载 / 暂存」或「文件」App,不会自己打开。到「文件」App 找到刚下载的 Home-Location-Endpoint-CA(约 2 KB)→ 点它 → 在弹出的「选择设备 / Choose a Device」里点 iPhone,系统才会跳到「设置」里安装(下一步)。若只弹出分享菜单,选 存到文件在 iPhone 上打开,再从「文件」里点开即可。

‹ Search 暂存 ⌄ 🔍 Search Home-Location-Endpoint-CA 02:59 · 2 KB 👆 Choose a Device On which device would you like to install this profile? iPhone Other Devices… Cancel
第三方浏览器下载后:在「文件」里点开该文件 → 选 iPhone → 才会进入设置安装。用 Safari 则一般会直接提示安装。
🔎

核对指纹:终端打印的 CA SHA-256 指纹,应与下一步安装描述文件时看到的一致。

无法下载?排除故障:让手机能连到 18080 端口
📡

该临时下载是 HTTP 明文,默认端口 18080。需要临时确保 TCP 18080 能从手机到达落地机(在云安全组/防火墙里临时放行,用完就关)——安装器不会自动改防火墙。若落地机在 NAT 后、用了 Realm 前置、或是仅定位模式没记录手机可达地址,请加参数 --host 手机可访问的地址

想要更强的传输保护,可改用 SCP / SFTP 或自建可信 HTTPS。可调参数还有 --port--host--bind--timeout-minutes--no-qr

在 iPhone 上安装描述文件

拿到文件后,iPhone 会提示「已下载描述文件」。打开 设置 → 顶部会出现「已下载描述文件」(或到 设置 → 通用 → VPN 与设备管理)→ 点开它 → 右上角安装,按提示输入锁屏密码并再次确认安装。

9:41 📶 🔋 ‹ 通用 安装描述文件 安装 📍 Home Location Endpoint CA 签名者 未验证 包含 证书 描述 安装用于改写受限 Apple 网络定位 响应的私有 CA。 证书 Home Location Endpoint Root CA 点右上角「安装」,输入锁屏密码 并在弹窗中再次确认安装
设置 → 通用 → VPN 与设备管理 → 打开该描述文件 → 右上角「安装」。
🔎

核对指纹(可选但推荐):安装页可查看证书详情,其 SHA-256 应与安装输出的第 ③ 处一致,确认没被中途替换。

开启对该 CA 的「完全信任」

装好描述文件后,还要手动打开完全信任,证书才会真正生效:进入 设置 → 通用 → 关于本机 → 证书信任设置,把 Home Location Endpoint Root CA 的开关打开。

‹ 关于本机 证书信任设置 针对根证书启用完全信任 Home Location Endpoint Root CA 对根证书启用完全信任后, 该证书可用于所在设备。 开关变绿 = 完全信任已开启
设置 → 通用 → 关于本机 → 证书信任设置 → 打开该 CA 的开关。
⚠️

不开这个开关,定位改写会因证书不受信任而失败。这是最容易漏的一步。

把节点导入客户端,并用「全局模式」连接

复制安装输出里的节点链接(第 ① 处,或用 sudo hle show-link 再打印),在兼容对应传输协议的 iOS 客户端里“从剪贴板导入”。连接时务必选择 全局 / Global(全隧道 TUN)模式,让系统定位服务的流量也进隧道。

代理客户端 📍 Home-Location-Endpoint 加密传输 · 24ms 路由模式 全局 Global 规则 Rule 已连接 开启全局后,系统定位流量也走隧道
导入节点 → 选「全局 / Global」→ 连接。示意界面,实际以你所用客户端为准。
📶

只装 CA、或只让浏览器走代理都不够。必须全局隧道,才能让 iOS 的定位请求经过落地机。

关闭定位服务,准备首次验证

进入 设置 → 隐私与安全性 → 定位服务,先关闭顶部的「定位服务」。保持在室内并远离窗边,避免 GPS 信号压过网络定位。

🔁

通常不需要重启。如果此前已经积累了较多旧定位缓存,可在定位服务保持关闭时最多重启一次。开机后尽快用全局模式连上落地机,再进行下一步。

验证定位已经改变

确认客户端已经使用全局模式连接落地机,并保持 Wi-Fi 开关开启(可以不连接任何无线网络)。然后重新开启「定位服务」,打开「地图」App 点定位按钮。定位应落在你落地机所在的城市;若没有立即变化,按下方常见问题继续排查。

📍 Santa Clara, CA
网络定位落在落地机所在城市。若显示真实位置或「无定位」,见下方常见问题。
🔄

想在同一城市换一个随机点,在落地机上运行 sudo hle relocate 即可,无需重装、无需重连。

常用运维命令

都在落地机上运行,需要 root(前面加 sudo)。

命令作用
sudo hle status查看当前城市、坐标、定位修改状态与服务运行状态
sudo hle pause暂停坐标改写,保持代理正常并返回 Apple 原始定位响应
sudo hle resume恢复坐标改写,无需重启服务或重新连接节点
sudo hle verify本地完整性自检(证书、权限、监听、服务等)
sudo hle show-link再次打印节点链接
sudo hle profile打印 CA 描述文件路径
sudo hle profile serve生成一次性令牌链接 + 二维码把描述文件下到手机(100 分钟、下载一次即失效)
sudo hle relocate在同一出口城市内重新随机取点
sudo hle uninstall停服务并删除本项目安装的全部文件、证书与账户(加 --yes 免确认)

不用了想彻底删除时,在落地机上运行 sudo hle uninstall 即可;装到手机上的描述文件也记得从手机移除。

⏸️

只想临时还原真实定位?不要停代理服务、不要卸载证书,运行 sudo hle pause 即可。此时代理和普通上网不受影响;运行 sudo hle resume 后,服务端会立即恢复改写,但 iPhone 画面仍可能因本地定位缓存而延迟变化。暂停状态跨重启保留。

常见问题

最新版 iOS 支持吗?

支持。如果使用时遇到问题,主要原因通常是网络定位权重不够高,或 iPhone 仍在使用旧定位缓存。

使用问题排查与解决

先确认使用的是项目最新版,然后按顺序操作:

  1. 远离窗边,不要在室外;否则 GPS 可能主导定位。进入 设置 → 隐私与安全性 → 定位服务,关闭顶部的「定位服务」。
  2. 通常不需要重启。如需清理旧缓存,最多重启一次即可。
  3. 开机后尽快用全局模式连接运行本项目的落地机,避免系统先生成更多旧定位缓存。
  4. 重新开启「定位服务」。
  5. 打开 Apple 地图,检查位置是否已经变成新地点。
  6. 如果没变,强制退出地图,再关闭「定位服务」,等待 5–10 秒。
  7. 重新开启「定位服务」,再次打开 Apple 地图。

做到第 6 步仍未成功,怎么看现象?

状态 A:有定位蓝点,但仍是真实位置

状态 B:定位蓝点消失,地图重新加载后空白

这通常说明已经成功了一半:旧定位缓存正在与服务器下发的新定位竞争。退出地图后重新进入,主动触发几次刷新,让系统更快清理旧缓存并接受新定位。

为什么等一会儿又会正常?

实测 iOS 的 locationd 本地 AP 缓存龄约为 14.5 分钟。快时一两分钟即可生效;如果什么也不做,通常等待约 15 分钟也会逐渐切换到新地点。

使用手机流量 + VPN 时需要打开 Wi-Fi 吗?

需要。Wi-Fi 可以不连接任何无线网络,但 Wi-Fi 开关必须保持开启,否则系统可用的网络定位信息会不足。

怎样选择尽量收不到 GPS 的室内位置?

GPS 定位通常需要同时获得至少 4 颗卫星,而 GPS 在地面的信号本来就非常微弱,并且依赖较好的天空视野。

土层、墙体和楼板会让信号进一步衰减。

因此,关键不是“找一面墙挡住手机”,而是让手机从各个方向看到的天空范围尽可能接近零。

位置避免 GPS 接收的效果选择要点
大型建筑 B2、B3 或更深的地下空间中央★★★★★地下停车场、地下商场、深层地铁站;必须远离车道坡口、出口和采光井
地下无窗房间或地下商业层的最内侧区域★★★★★上方和四周都有混凝土,附近没有贯通室外的开口
大型商场、医院、办公塔楼低层的中央内区★★★★☆靠近建筑核心区,但不要处于中庭、电梯厅大开口或玻璃穹顶附近
低层商场里的电影院、内部仓库、无窗服务走廊★★★★☆前提是电影院不是位于建筑顶层,且远离外墙
普通钢筋混凝土住宅或办公室的无窗内间★★☆☆☆ 至 ★★★★☆效果取决于建筑厚度和离窗户的距离,通常远离窗户的室内就足够屏蔽信号,达到可以使用本项目的基本条件
靠外墙、窗边、玻璃幕墙附近★☆☆☆☆即使人在室内,手机仍可能从窗口方向收到多颗卫星
顶层、阁楼、玻璃顶、中庭、采光井附近☆☆☆☆☆上方天空暴露较多,通常最不适合
仅仅躲在屋檐下、桥下或两栋楼之间★☆☆☆☆只能挡住部分天空,剩余方向通常仍有卫星可见