Releases: steven-ld/PowerMap
Release list
v0.7.0
Added
- 控制台新增“关于”页:集中展示稳定版更新、发布说明、运行方式和连接诊断;右上角在检测到新版本时给出提示。
- 映射健康摘要:概览页汇总健康、异常、已停止和未启用映射;状态恶化时给出一次性页内提醒。
- 一键脱敏诊断报告:可下载版本、连接路径、延迟、映射统计和近期事件,自动移除令牌、Bearer 凭证及本机路径。
- 新建映射新增常用服务模板和回环本地端口建议;端口检查只在
127.0.0.1的有限候选范围内进行。 GET /api/runtime、/api/diagnostics、/api/mapping-health和/api/diagnostic-report提供运行、连接和映射健康的只读状态。
Changed
- 节点页只处理身份与连接;软件更新入口移动到“关于”页。实时流量与刷新控制从侧栏迁移到概览主页。
- 配置导出默认脱敏;含凭证的完整导出需在控制台明确确认。
- 更新元数据在服务端缓存 30 秒,前端轮询不会每 2 秒请求 GitHub。
- Release 工作流显式安装 Rust 工具链;Docker 镜像从已验证的 Release 归档取得二进制,支持从 Fork 的仓库名下载资产。
Compatibility
- 现有统一配置、旧单租户 token、节点身份、凭证、端口映射和域名映射均无需迁移。
- 默认导出的脱敏配置不包含接入 token;需要导入后立即恢复远端连接时,请选择“完整导出”并妥善保管文件。
v0.6.0
Added
- 节点页新增稳定版检查与一键更新:从 GitHub Release 下载当前平台包、解析校验文件并验证 SHA-256 后,安全解包、原子替换并优雅重启。原生 macOS/Linux 可在进程内完成;Docker 与 Windows 会给出可复制的宿主机升级命令。
v0.5.0
Added
- 域名映射:把完整 DNS 域名写入本机 hosts,并通过共享的
127.0.0.1:443HTTPS 入口按 TLS SNI 分发到远端服务。支持创建、更新、启停、恢复与状态诊断。 - 域名映射的 hosts 标记管理、并发协作锁、SNI 首包回放和连接限流;映射异常会保留可诊断状态,不会阻断普通端口映射启动。
Changed
- 管理 API 当前不启用
web_token鉴权。旧配置字段继续保留并可读写,供未来版本启用时兼容;Docker 与 root 启动不再要求或生成管理 token。 - 控制台移除管理 token 的输入、轮换与会话状态控件;管理页可直接操作。
Compatibility
- 既有
access.web_token配置会被保留,但不参与当前版本的启动校验或 API 行为。 - 域名映射只支持 macOS/Linux,仍要求以管理员身份运行,以便维护系统 hosts 文件和本机 443 监听。
v0.4.0
Added
-
UDP 隧道:映射新增
udp模式,本地绑定 UDP socket,数据报经隧道由 expose 能力拨 UDP 目标;适用于 DNS、WireGuard、游戏服务器等无连接协议。access 端按来源地址维护会话并在空闲 60 秒后回收。 -
HTTP 反向代理网关:映射新增
http模式,单个本地端口按请求Host头分流到多个内网后端(routes路由表,最多 32 条,空host_match为兜底后端)。 -
反向映射:把本机 access 侧服务暴露给 expose 所在内网。复用同一条 QUIC 连接的双向流,expose 在内网监听、把连接交回 access 拨本地目标。默认全部拒绝:access 需显式启用并列出允许回拨的网段与端口才放行(
reverse_enabled+reverse_allow_networks+reverse_allow_ports);expose 用[[expose.clients]]下的reverse声明内网监听地址。 -
Mapping新增mode与routes字段;旧配置省略时按tcp处理,向后兼容。 -
映射命名:
Mapping新增可选name字段(旧配置默认为空,向后兼容)。列表以名称为主标识、本地地址降为副信息,搜索同时覆盖名称。 -
一键启用/停用全部映射(
POST /api/mappings/toggle-all):逐条重建把手,单条失败不影响其余并计入返回;列表头按钮随当前状态在“全部停用/全部启用”间切换。 -
映射列表排序(异常优先/名称/本地地址/流量,选择持久化);端口映射标签页新增异常映射计数徽章,切换到其他标签也能看到有几条映射异常。
-
导入合并模式(
POST /api/import?mode=merge):只叠加新增、按本地地址更新同名,保留导入未提及的现有映射;导入时可选择“覆盖”或“合并”。 -
连接时长:
/api/status暴露connected_since,连接状态卡显示当前连接已保持时长。 -
连接质量趋势:连接状态卡以迷你趋势图展示往返延迟(RTT)历史,断线以缺口体现,便于看出链路抖动。
-
断线桌面通知(可选开启):连接断开/恢复且页面不可见时发系统通知,与页内提示互补。
-
就地编辑映射(
PUT /api/mappings/{id}):仅改目标时复用原监听、不中断已建隧道;改本地地址时先绑新址再停旧址。管理页新增编辑模式与每行“复制本地地址”。 -
连接从“已连接”跌为断开时提醒一次;标签页隐藏时暂停轮询、重新可见时立即刷新。
-
映射启用/停用(
POST /api/mappings/{id}/toggle):停用释放本地端口并 drain 在途连接、保留配置可随时再启用;Mapping新增持久化enabled字段,旧配置默认启用。 -
连接级明细:
/api/stats每条映射附活跃连接列表(来源、时长、上/下行字节);管理页可展开映射查看“哪条连接在忙”。 -
事件页支持关键字搜索与导出为 JSON(按当前筛选导出,便于留存排查证据)。
-
每条映射的迷你流量趋势图,历史留存于浏览器本地存储,刷新后不断档。
-
命令面板(
⌘/Ctrl+K)与键盘快捷键(N新建、R刷新、1/2/3切页、?帮助)。 -
可选轮询间隔(2/5/10 秒或手动)与暂停开关;映射列表支持以某条为模板克隆新建。
Changed
- 发布物、安装脚本、systemd、launchd、Windows 任务计划与 Docker 统一为单个
powermap可执行文件;直接启动后按powermap.toml中的[expose]、[access]运行相应能力。 - 管理控制台重组为概览、端口映射、节点和事件四个页面。节点页默认进入“远端节点”以连接其他设备;概览显示当前连接的对端 IP,映射创建默认 TCP,UDP / HTTP 作为高级选项。
- 控制台视觉系统更新为冷灰画布、白色卡片和
#3370FF主蓝;浏览器标题不再注入状态 emoji,favicon 更新为蓝色节点网络标识。
Compatibility
- 首次启动时,如未存在
powermap.toml,会自动读取powermap-server.toml与powermap-client.toml,合并并写入统一配置;只有新配置成功落盘后才删除旧文件。 - 旧映射未填写
mode时继续按 TCP 运行;旧的单租户token继续兼容并规范化为default客户。 - 新 Release 不再提供
powermap-server与powermap-client。需要回退到旧二进制前,请备份powermap.toml、powermap.key与powermap.credential.json,并保留原始 role 配置副本。
Security
- 管理页新增“清除访问令牌”入口,随时抹除本页内存中的 web_token;覆盖已配置凭证前二次确认,避免误操作断连。
v0.3.0
Added
- 映射命名:
Mapping新增可选name字段(旧配置默认为空,向后兼容)。列表以名称为主标识、本地地址降为副信息,搜索同时覆盖名称。 - 一键启用/停用全部映射(
POST /api/mappings/toggle-all):逐条重建把手,单条失败不影响其余并计入返回;列表头按钮随当前状态在“全部停用/全部启用”间切换。 - 映射列表排序(异常优先/名称/本地地址/流量,选择持久化);端口映射标签页新增异常映射计数徽章,切换到其他标签也能看到有几条映射异常。
- 导入合并模式(
POST /api/import?mode=merge):只叠加新增、按本地地址更新同名,保留导入未提及的现有映射;导入时可选择“覆盖”或“合并”。 - 连接时长:
/api/status暴露connected_since,连接状态卡显示当前连接已保持时长。 - 连接质量趋势:连接状态卡以迷你趋势图展示往返延迟(RTT)历史,断线以缺口体现,便于看出链路抖动。
- 断线桌面通知(可选开启):连接断开/恢复且页面不可见时发系统通知,与页内提示互补。
- 就地编辑映射(
PUT /api/mappings/{id}):仅改目标时复用原监听、不中断已建隧道;改本地地址时先绑新址再停旧址。管理页新增编辑模式与每行“复制本地地址”。 - 连接从“已连接”跌为断开时提醒一次;标签页隐藏时暂停轮询、重新可见时立即刷新。
- 映射启用/停用(
POST /api/mappings/{id}/toggle):停用释放本地端口并 drain 在途连接、保留配置可随时再启用;Mapping新增持久化enabled字段,旧配置默认启用。 - 连接级明细:
/api/stats每条映射附活跃连接列表(来源、时长、上/下行字节);管理页可展开映射查看“哪条连接在忙”。 - 事件页支持关键字搜索与导出为 JSON(按当前筛选导出,便于留存排查证据)。
- 每条映射的迷你流量趋势图,历史留存于浏览器本地存储,刷新后不断档。
- 命令面板(
⌘/Ctrl+K)与键盘快捷键(N新建、R刷新、1/2/3切页、?帮助)。 - 可选轮询间隔(2/5/10 秒或手动)与暂停开关;映射列表支持以某条为模板克隆新建。
Security
- 管理页新增“清除访问令牌”入口,随时抹除本页内存中的 web_token;覆盖已配置凭证前二次确认,避免误操作断连。
v0.2.0
Added
- 首次映射引导、目标预检与异常映射诊断;创建映射前会检查本地监听、凭证、server 策略与目标 TCP 拨号。
published_targets:server 可向指定 client 发布候选服务;控制台仅展示 server 实际验证可达的目标,并支持一键填入映射。- 管理页实时监控:上/下行速率、累计流量、趋势图、映射级速率、活跃隧道与运行计数。
- Linux systemd、macOS launchd、Windows 任务计划部署模板,以及 SSH / mTLS Nginx 远程管理指南。
Changed
- 管理控制台改为更紧凑的运维界面,改善小屏布局、键盘操作、状态反馈与首次使用路径。
- README 提供校验安装、使用边界、受管部署和自动化入口的快速导航。
Security
- 管理 API 仅接受 Bearer 令牌;移除 URL 查询令牌,强化配置落盘、导入事务与远程管理边界。
v0.1.0
PowerMap 首个公开版本 —— 基于 iroh(P2P / QUIC)的内网穿透工具。把内网服务安全地映射到本地端口,单可执行、零依赖。
官网:https://powermap.ga666666.com
安装
下载对应平台的预编译包并校验:
VERSION=v0.1.0
TARGET=aarch64-apple-darwin # 见下表
BASE=https://github.com/steven-ld/PowerMap/releases/download/$VERSION
curl -LO $BASE/powermap-$TARGET.tar.gz
curl -LO $BASE/powermap-$TARGET.sha256
shasum -a 256 -c powermap-$TARGET.sha256
tar xzf powermap-$TARGET.tar.gz| 平台 | 归档 |
|---|---|
| Linux x86_64 | powermap-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | powermap-aarch64-unknown-linux-gnu.tar.gz |
| macOS Intel | powermap-x86_64-apple-darwin.tar.gz |
| macOS Apple Silicon | powermap-aarch64-apple-darwin.tar.gz |
| Windows x86_64 | powermap-x86_64-pc-windows-msvc.zip |
每个归档都附带同名 .sha256 校验文件。上手步骤见 README。
本版内容
Added
- 基于 iroh(P2P / QUIC)的内网穿透:
powermap-server(穿透端)暴露 ALPN 服务,powermap-client(用户端)把内网目标映射到本地端口。 - Web 管理页(:8088):端口映射页(连接状态、传输路径 P2P/中继、流量指标、增删映射)与连接页(粘贴凭证接入、切换连接目标),支持浅色 / 深色主题。
- 凭证持久化:
node_id+token写入powermap-client.toml,重启自动恢复。 - 多租户:
[[clients]]为每个客户配独立 token、网段/端口白名单与并发上限,支持轮换与吊销。 - 安全:token 常量时间比较、B 端目标白名单(防 DNS 重绑定 TOCTOU)、审计日志、资源上限、Web 管理页 Bearer 鉴权与可选 HTTPS。
- 可观测:A 端 Prometheus
/metrics,B 端周期性把指标打进日志。 - 运维:优雅关闭(drain 在途隧道)、断线指数退避重连、看门狗热连接。
- Docker 部署(
Dockerfile+docker-compose.yml)。
完整 changelog: https://github.com/steven-ld/PowerMap/blob/main/CHANGELOG.md