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

新手图文教程

照着一步步做即可完成安装与使用。全程约 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 上,二选一:

  • 扫码:用 iPhone 自带「相机」对准终端里的二维码,点弹出的横幅。
  • 打开链接:用 Safari 打开终端输出的那个 http://…:18080/… 下载地址。

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 指纹,应与下一步安装描述文件时看到的一致。

📡

让手机能连到这个端口:该临时下载是 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 的定位请求经过落地机。

重启一次 iPhone

描述文件装好、完全信任打开、节点也连上之后,把手机重启一次。重启能让系统定位服务干净地按新的证书信任与隧道路由生效,避免「装好了但定位没变」的中间状态。

🔁

关机再开机即可。开机后确认代理客户端仍是全局连接、描述文件与完全信任都还在。

验证定位已经改变

验证前,先进入 设置 → 隐私与安全性 → 定位服务,关闭顶部的「定位服务」,等待 5 秒后再重新打开,让系统重新请求定位结果。然后保持在室内(避免 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 后,新定位请求会立即恢复改写。暂停状态跨重启保留。

常见问题

普通网页能上,但定位没变?

重启一次手机(第 ⑧ 步,最容易被忽略)。仍不行再检查:① 客户端是全局 / TUN 模式;② 第 ⑥ 步的证书信任开关已打开;③ 你在室内(户外 GPS 会盖过网络定位);④ Wi-Fi 保持开启(Wi-Fi 关闭时定位查询可能不同)。落地机上 sudo hle status 看服务是否 active。

节点链接连不上?

如果落地机在 NAT 后、入口和出口 IP 不同、或你前面还有中转机,安装时检测到的地址可能不对。用 --server 你的入口地址 重新安装,并检查云厂商安全组是否放行了对应端口。详见前置配置

描述文件装不上 / 提示未验证?

「未验证」是正常的(自签 CA)。关键是装好后到证书信任设置里把开关打开。若 iOS 版本较新,安装入口在 设置 → 通用 → VPN 与设备管理

定位在真假之间来回跳?

一些 App 会综合多种信号(GPS、蓝牙、账号、IP)。本项目只改写 Apple 网络定位,无法覆盖全部信号,结果可能不稳定。这是方案的固有局限,请阅读安全与局限

怎样临时停止修改定位,但继续使用代理?

在落地机运行 sudo hle pause。它不会停掉代理服务或定位修改器,而是把 Apple 原始定位响应不作坐标改写地返回。用 sudo hle status 应看到 Modification: paused;需要恢复时运行 sudo hle resume

➡️

想用 Telegram 菜单切换多个地点?请看 进阶控制教程。需要中转机、NAT 或仅定位模式接线,可继续查看前置配置与高手对接。