面向 OpenWrt / ImmortalWrt 的 Wi‑Fi Calling + Apple WLOC 一体化网关
Wi‑Fi Calling + Location Gateway 将两个服务组织在同一台路由器上:
- Wi‑Fi Calling Gateway 为指定局域网设备选择 sing-box 节点,并保持 UDP 500/4500 的 ePDG/IPsec 通道独立运行。
- WLOC 服务只处理指定测试设备发往 Apple WLOC 主机的 TCP 443 流量;自动模式根据该设备绑定节点的出口 IP 解析目标地区,手动模式使用管理员选择的坐标。
LuCI 界面提供节点、设备策略、自动/手动位置、证书安装、运行状态和脱敏日志入口。
项目的核心边界是“独立、精确、可回退”:WLOC 使用自己的进程、UCI 配置、Unix Socket 、nftables 表和日志,不接管 Gateway 的 nftables 表,也不拦截 UDP 500/4500 。遇到未知协议、无效地理数据或服务异常时,不生成默认虚假坐标。
Rust 静态守护进程,针对 OpenWrt 的 musl 环境和小体积发布配置优化。自动跟随设备所绑定代理节点的出口国家、城市、时区和坐标;切换设备节点后约 10 秒内自动跟随,监控页也可一键“刷新 IP”立即重探测。手动地点搜索、经纬度输入和常用位置预设。证书与拦截全程适配任意局域网网段:证书链接、DNS 劫持和 TPROXY 规则按路由器实际 LAN IP 动态生成,不再写死 192.168.31.x 。
本地生成并持久化 WLOC 根证书,提供 iPhone .mobileconfig 安装入口与指纹核验。“添加局域网设备”弹窗自动列出局域网内已连接设备( DHCP 租约 + ARP ),选择后自动填入设备名称与真实 IP 。有界 TLS 、HTTP/2 和 WLOC 协议处理;上游证书与主机名验证不降级。
精确到“指定设备 + 授权主机 + TCP 443”的 DNS/nftables 隔离。root-only Unix Socket 控制 API ,以及经 rpcd 授权的 LuCI 管理桥接。
Wi‑Fi Calling 隧道状态、WLOC 当前目标与脱敏事件日志。每个节点提供 nodeTest 测试按钮:随时执行一次新的连接测试——WireGuard 节点进行真实握手(绕过监控循环的结果缓存),其他协议执行 TCP 连通性探测;结果显示出口 IP 或分类失败原因(配置缺失 / 超时 / 不可达),横幅带关闭按钮且不会自动消失。只把设备策略实际引用的代理节点编译进 sing-box.json 并加载到内存——未引用的 WireGuard 隧道和协议栈不驻留,内存随实际使用节点数而非配置总数增长( AX6S 实测:sing-box RSS 从约 19-23 MB 降到约 15 MB )。
IPK ( OpenWrt 24.10 / iStoreOS 24.10 )与原生 APK v3 ( OpenWrt 25.12 )打包。固定 SDK/工具链、离线锁定编译、依赖审计、覆盖率门禁和 Docker 启动验证。
项目地址: [项目链接](https://github.com/smthdagg/wificalling-location-gateway)
当前 1.22 版本: [版本链接](https://github.com/smthdagg/wificalling-location-gateway/releases)
---
原文链接:[点击查看](https://www.v2ex.com/t/1235676)
- Wi‑Fi Calling Gateway 为指定局域网设备选择 sing-box 节点,并保持 UDP 500/4500 的 ePDG/IPsec 通道独立运行。
- WLOC 服务只处理指定测试设备发往 Apple WLOC 主机的 TCP 443 流量;自动模式根据该设备绑定节点的出口 IP 解析目标地区,手动模式使用管理员选择的坐标。
LuCI 界面提供节点、设备策略、自动/手动位置、证书安装、运行状态和脱敏日志入口。
项目的核心边界是“独立、精确、可回退”:WLOC 使用自己的进程、UCI 配置、Unix Socket 、nftables 表和日志,不接管 Gateway 的 nftables 表,也不拦截 UDP 500/4500 。遇到未知协议、无效地理数据或服务异常时,不生成默认虚假坐标。
Rust 静态守护进程,针对 OpenWrt 的 musl 环境和小体积发布配置优化。自动跟随设备所绑定代理节点的出口国家、城市、时区和坐标;切换设备节点后约 10 秒内自动跟随,监控页也可一键“刷新 IP”立即重探测。手动地点搜索、经纬度输入和常用位置预设。证书与拦截全程适配任意局域网网段:证书链接、DNS 劫持和 TPROXY 规则按路由器实际 LAN IP 动态生成,不再写死 192.168.31.x 。
本地生成并持久化 WLOC 根证书,提供 iPhone .mobileconfig 安装入口与指纹核验。“添加局域网设备”弹窗自动列出局域网内已连接设备( DHCP 租约 + ARP ),选择后自动填入设备名称与真实 IP 。有界 TLS 、HTTP/2 和 WLOC 协议处理;上游证书与主机名验证不降级。
精确到“指定设备 + 授权主机 + TCP 443”的 DNS/nftables 隔离。root-only Unix Socket 控制 API ,以及经 rpcd 授权的 LuCI 管理桥接。
Wi‑Fi Calling 隧道状态、WLOC 当前目标与脱敏事件日志。每个节点提供 nodeTest 测试按钮:随时执行一次新的连接测试——WireGuard 节点进行真实握手(绕过监控循环的结果缓存),其他协议执行 TCP 连通性探测;结果显示出口 IP 或分类失败原因(配置缺失 / 超时 / 不可达),横幅带关闭按钮且不会自动消失。只把设备策略实际引用的代理节点编译进 sing-box.json 并加载到内存——未引用的 WireGuard 隧道和协议栈不驻留,内存随实际使用节点数而非配置总数增长( AX6S 实测:sing-box RSS 从约 19-23 MB 降到约 15 MB )。
IPK ( OpenWrt 24.10 / iStoreOS 24.10 )与原生 APK v3 ( OpenWrt 25.12 )打包。固定 SDK/工具链、离线锁定编译、依赖审计、覆盖率门禁和 Docker 启动验证。
项目地址: [项目链接](https://github.com/smthdagg/wificalling-location-gateway)
当前 1.22 版本: [版本链接](https://github.com/smthdagg/wificalling-location-gateway/releases)
---
原文链接:[点击查看](https://www.v2ex.com/t/1235676)
评论
暂无评论。