这是一份独立的完整教程:从准备服务器、安装描述文件和节点,到用 Telegram 菜单切换地点,全程约 20 分钟,不需要先阅读新手页。
你将依次完成:① 准备落地机 → ② 创建 Telegram Bot → ③ 安装进阶模式 → ④ 读懂输出 → ⑤ 任选一种方式下载描述文件 → ⑥ 安装描述文件 → ⑦ 开启完全信任 → ⑧ 导入节点并全局连接 → ⑨ 关闭定位服务、准备刷新 → ⑩ 开启定位并验证 → ⑪ 使用 Telegram 菜单。
准备一台 Debian 12/13 或 Ubuntu 22.04/24.04 的 VPS(amd64 或 arm64 都行,内存 ≥ 384 MiB)。这台机器所在的国家/城市,就是你「假装所在」的位置——想显示在美国,就买一台美国 VPS。
用 SSH 以 root(或能 sudo 的用户)登录:
# 把 IP 换成你的落地机地址 ssh root@你的落地机IP
建议用一台专门的新机器,不要装在已经运行其它代理服务或网站的服务器上。
Bot Token 相当于控制密码,只粘贴到你自己的服务器安装器里。不要与其他程序共用这个 Bot,否则它们会争抢消息。
在落地机上粘贴下面的命令。模式选择时输入 2 安装项目推荐的进阶模式,再按安装器提示选择兼容的传输协议,最后粘贴 Bot Token 和数字 Chat ID。
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 \
HLE_TELEGRAM_BOT_TOKEN='BOT_TOKEN' \
HLE_TELEGRAM_CHAT_ID='NUMERIC_CHAT_ID' \
bash -s -- --mode advanced --protocol vless-reality --port 443安装成功后,屏幕最后会打印节点链接、CA 描述文件和指纹;同时会确认 Telegram 控制器已经启动。
安装完成后会主动交付:Bot 依次发送四条独立消息:凭据提示、可直接复制的节点链接、CA 安装说明,以及可直接点击的下载链接。下载链接有效 100 分钟,首次成功下载后立即失效;之后仍可从 Bot 菜单重新获取节点链接或 CA 描述文件附件。
也可以在服务器随时再看这两样:
# 再次打印节点链接 sudo hle show-link # 打印描述文件所在路径 sudo hle profile
下面三种方式任选一种即可,不需要依次全部操作:
第 2、3 种方式使用的是同一个一次性令牌,二选一即可;其中一种成功下载后,另一种会随即失效。如果链接过期、已使用,或者以后需要重新下载,再运行:
sudo hle profile serve
阅后即焚:下载链接默认有效 100 分钟,并且只要成功下载一次就立即失效、下载服务自动关闭。过期或用完了,再跑一次 sudo hle profile serve 重新生成即可。
用 Safari 打开通常最顺:会直接提示「此网站正尝试下载一个配置描述文件」,点允许,随后到设置里安装(下一步)。
用夸克、QQ 等第三方浏览器扫码时,文件可能先被存到浏览器的「下载 / 暂存」或「文件」App,不会自己打开。到「文件」App 找到刚下载的 Home-Location-Endpoint-CA(约 2 KB)→ 点它 → 在弹出的「选择设备 / Choose a Device」里点 iPhone,系统才会跳到「设置」里安装(下一步)。若只弹出分享菜单,选 存到文件 或 在 iPhone 上打开,再从「文件」里点开即可。
核对指纹:终端打印的 CA SHA-256 指纹,应与下一步安装描述文件时看到的一致。
该临时下载是 HTTP 明文,默认端口 18080。需要临时确保 TCP 18080 能从手机到达落地机(在云安全组/防火墙里临时放行,用完就关)——安装器不会自动改防火墙。若落地机在 NAT 后、用了 Realm 前置、或是仅定位模式没记录手机可达地址,请加参数 --host 手机可访问的地址。
想要更强的传输保护,可改用 SCP / SFTP 或自建可信 HTTPS。可调参数还有 --port、--host、--bind、--timeout-minutes、--no-qr。
拿到文件后,iPhone 会提示「已下载描述文件」。打开 设置 → 顶部会出现「已下载描述文件」(或到 设置 → 通用 → VPN 与设备管理)→ 点开它 → 右上角安装,按提示输入锁屏密码并再次确认安装。
核对指纹(可选但推荐):安装页可查看证书详情,其 SHA-256 应与安装输出的第 ③ 处一致,确认没被中途替换。
装好描述文件后,还要手动打开完全信任,证书才会真正生效:进入 设置 → 通用 → 关于本机 → 证书信任设置,把 Home Location Endpoint Root CA 的开关打开。
不开这个开关,定位改写会因证书不受信任而失败。这是最容易漏的一步。
复制安装输出里的节点链接(第 ① 处,或用 sudo hle show-link 再打印),在兼容所选传输协议的 iOS 客户端里“从剪贴板导入”。连接时务必使用 全局 / Global(全隧道 TUN)模式。
只装 CA、或只让浏览器走代理都不够。必须全局隧道,才能让 iOS 的定位请求经过落地机。
进入 设置 → 隐私与安全性 → 定位服务,先关闭顶部的「定位服务」。保持在室内并远离窗边,避免 GPS 信号压过网络定位。
通常不需要重启。如果此前已经积累了较多旧定位缓存,可在定位服务保持关闭时最多重启一次。开机后尽快用全局模式连上落地机,再进行下一步。
确认客户端已经使用全局模式连接落地机,并保持 Wi-Fi 开关开启(可以不连接任何无线网络)。然后重新开启「定位服务」,打开「地图」App 点定位按钮。定位应落在你选择的地点;若没有立即变化,按下方常见问题继续排查。
定位成功后,打开 Telegram Bot 发送 /menu,即可从菜单切换到其他地点,无需重装、无需重连。
安装完成后,向你的 Bot 发送 /menu、/start、/location 或 /status,都会打开同一个定位控制菜单。
点击地点后,服务端配置会立即切换,但 iPhone 可能继续使用定位缓存。请先等待几分钟;仍未变化时,到“设置 → 隐私与安全性 → 定位服务”关闭后重新打开,必要时重启手机。
点击“真实定位”会暂停改写,但代理仍保持连接;再次选择地点即可恢复。
按菜单提示输入名称、地址和“纬度, 经度”,确认后保存为新的按钮。
选择不再需要的地点并二次确认。当前正在使用的地点不会被误删。
进阶模式内置多个常用地点,并会保留你后来增加的地点。重复运行同一模式的安装器不会清空地点菜单。
只有安装时填写的 Chat ID 能控制这台服务器。Bot 不需要开放公网入站端口;仍请妥善保管 Bot Token,不要把同一个 Bot 交给其他控制程序。
都在落地机上运行,需要 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 分钟、下载一次即失效) |
| Telegram /menu | 打开地点菜单,切换、增加、删除地点或恢复真实定位 |
| sudo systemctl status home-location-telegram-bot | 检查 Telegram 控制器是否正常运行 |
| sudo hle uninstall | 停服务并删除本项目安装的全部文件、证书与账户(加 --yes 免确认) |
不用了想彻底删除时,在落地机上运行 sudo hle uninstall 即可;装到手机上的描述文件也记得从手机移除。
只想临时还原真实定位?优先点击 Bot 菜单里的“真实定位”。也可以在服务器运行 sudo hle pause,需要恢复时运行 sudo hle resume。
支持。如果使用时遇到问题,主要原因通常是网络定位权重不够高,或 iPhone 仍在使用旧定位缓存。
先确认使用的是项目最新版,然后按顺序操作:
这通常说明已经成功了一半:旧定位缓存正在与服务器下发的新定位竞争。退出地图后重新进入,主动触发几次刷新,让系统更快清理旧缓存并接受新定位。
实测 iOS 的 locationd 本地 AP 缓存龄约为 14.5 分钟。快时一两分钟即可生效;如果什么也不做,通常等待约 15 分钟也会逐渐切换到新地点。
需要。Wi-Fi 可以不连接任何无线网络,但 Wi-Fi 开关必须保持开启,否则系统可用的网络定位信息会不足。
GPS 定位通常需要同时获得至少 4 颗卫星,而 GPS 在地面的信号本来就非常微弱,并且依赖较好的天空视野。
土层、墙体和楼板会让信号进一步衰减。
因此,关键不是“找一面墙挡住手机”,而是让手机从各个方向看到的天空范围尽可能接近零。
| 位置 | 避免 GPS 接收的效果 | 选择要点 |
|---|---|---|
| 大型建筑 B2、B3 或更深的地下空间中央 | ★★★★★ | 地下停车场、地下商场、深层地铁站;必须远离车道坡口、出口和采光井 |
| 地下无窗房间或地下商业层的最内侧区域 | ★★★★★ | 上方和四周都有混凝土,附近没有贯通室外的开口 |
| 大型商场、医院、办公塔楼低层的中央内区 | ★★★★☆ | 靠近建筑核心区,但不要处于中庭、电梯厅大开口或玻璃穹顶附近 |
| 低层商场里的电影院、内部仓库、无窗服务走廊 | ★★★★☆ | 前提是电影院不是位于建筑顶层,且远离外墙 |
| 普通钢筋混凝土住宅或办公室的无窗内间 | ★★☆☆☆ 至 ★★★★☆ | 效果取决于建筑厚度和离窗户的距离,通常远离窗户的室内就足够屏蔽信号,达到可以使用本项目的基本条件 |
| 靠外墙、窗边、玻璃幕墙附近 | ★☆☆☆☆ | 即使人在室内,手机仍可能从窗口方向收到多颗卫星 |
| 顶层、阁楼、玻璃顶、中庭、采光井附近 | ☆☆☆☆☆ | 上方天空暴露较多,通常最不适合 |
| 仅仅躲在屋檐下、桥下或两栋楼之间 | ★☆☆☆☆ | 只能挡住部分天空,剩余方向通常仍有卫星可见 |