docs: README 跟上授权延长与通道组,截图和动图改为一条命令重新生成
README - 申请延长写清规则:授权有效期间也可申请,有效的从原到期时间顺延、已结束的从批准时起算, 被撤销的不能延长;批准延长时通道会开到授权结束(与最长开启时长的关系) - 修正通道组「一起开关」与「可以单独开关」的矛盾:闲置按整组计算,每个地址仍可单独开关 - 时长选项用界面上的「通道开启期间」;快速开始按实际流程写(保存后自动弹出邀请设置) - 新增同事端申请延长的三张截图;流程图补上 30 分钟、自定义与 2 小时内可申请延长 截图与动图 - 授权管理、编辑通道、邀请文案、授权成功页、网页面板(含通道组)更新为当前界面 - 离屏渲染时控件按激活状态绘制,开关不再显示成灰色 - 新增 make readme-images:App 离屏渲染、动图合成、授权页与网页面板的无头 Chrome 截图一次完成, 写入 docs/images;授权页 HTML 由服务端测试用模拟状态生成,网页面板用本机模拟 API 界面 - 计时文字第二个单位补零(27分05秒),卡片上的徽标不再随秒数左右跳动;App 与网页面板一致 - 待审批与延长申请的时间格式统一为不带秒;App 预览的分享文案补上延长提示
This commit is contained in:
1 parent
6f2a1472b6
commit
3272e66247
26 files changed
+392
-37
No files matched your search
@@ -51,18 +51,18 @@ PortRelay 把这件事变成三步:
|
||||
**访问控制**
|
||||
|
||||
- 三种访问方式:**仅授权链接**(默认,最安全)、IP / 网段白名单(可与授权链接叠加),以及全部放通。
|
||||
- 邀请链接可以设置链接有效期、可用设备数、授权后可访问时长(30 分钟、1 小时、2 小时、8 小时、当天有效、直到通道关闭,或自定义),以及是否需要审批。
|
||||
- 邀请链接可以设置链接有效期、可用设备数、授权后可访问时长(30 分钟、1 小时、2 小时、8 小时、当天有效、通道开启期间,或自定义),以及是否需要审批。
|
||||
- 需要审批时,App 会弹出系统通知,一键批准或拒绝;访问者的页面会自动刷新结果。
|
||||
- **计时从首次连接开始**:同事拿到授权后不用急着连,开始用的时候才开始计时。
|
||||
- 授权到期或被撤销后,**已建立的连接也会立刻断开**;未授权的连接直接被重置(TCP RST)并留下拦截记录。
|
||||
- **申请延长**:访问结束后 2 小时内(通道已关闭也可以),同事重新打开原链接点「申请延长」;你在 App、菜单栏或网页面板里选择延长多久即批准,关闭的通道会自动重新开启。你也可以对已授权或刚结束的设备主动延长。
|
||||
- **申请延长**:同事重新打开原来的邀请链接,点「申请延长」,你在 App、菜单栏或网页面板里选好延长多久即可批准。授权还没到期时,从原到期时间往后顺延;已经结束的从批准时算起,结束后 2 小时内都能申请,通道关了也没关系,批准后会自动重新开启。被撤销的授权不能延长。你也可以主动给已授权或刚结束的设备延长。
|
||||
- **通道组**:添加通道时目标是一个列表,每行一台主机、多个端口用逗号隔开(也可以直接粘贴一串 IP),每个地址一个通道,自动分配一段连续端口,并放进同一个通道组。组内地址共用一条邀请链接和同一份授权:同事授权一次即可访问整组,撤销一次全组断开。
|
||||
|
||||
**通道生命周期**
|
||||
|
||||
- **闲置自动关闭**:没有连接、没有有效授权、没有待处理申请,也没有还能使用的邀请链接时开始计时,默认 30 分钟后关闭。
|
||||
- 可选的**最长开启时长**,到点无论是否在用都关闭。
|
||||
- 通道组内任一地址在用,整组都不算闲置,一起开关、一起关闭。
|
||||
- 可选的**最长开启时长**,到点无论是否在用都关闭。批准延长时,如果新的授权到期时间更晚,通道会开到授权结束。
|
||||
- 通道组的闲置按整组计算:任一地址在用,整组都不会因闲置关闭,到时也是整组一起关。每个地址仍然可以单独开关。
|
||||
- 记录首次连接时间、实际连接时长和每次关闭的原因。
|
||||
- 编辑通道不会打断现有连接;更换端口时先绑定新端口再释放旧端口。
|
||||
|
||||
@@ -104,13 +104,23 @@ PortRelay 把这件事变成三步:
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
授权快到期或刚结束时,同事再打开同一个链接,就能看到自己的授权状态并申请延长。你选好时长批准后,页面会显示新的到期时间。
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><img src="docs/images/auth-renew.png" alt="申请延长" width="100%"><br><sub>④ 再次打开链接,申请延长</sub></td>
|
||||
<td align="center"><img src="docs/images/auth-renew-pending.png" alt="等待批准延长" width="100%"><br><sub>⑤ 等待管理员选择时长</sub></td>
|
||||
<td align="center"><img src="docs/images/auth-renew-ok.png" alt="延长已批准" width="100%"><br><sub>⑥ 延长已批准</sub></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
**通道组**:组卡片汇总整组的状态与流量,下面逐行列出每个访问地址,可以单独开关、单独邀请或移出组。
|
||||
|
||||
<p align="center">
|
||||
<img src="docs/images/app-group.png" alt="通道组" width="100%">
|
||||
</p>
|
||||
|
||||
**连接与授权管理**:待审批的申请、已授权设备(在线状态与剩余时间),以及仍然有效的邀请链接,都在同一处管理。
|
||||
**连接与授权管理**:访问申请和延长申请、已授权设备(在线状态与剩余时间)、最近结束的授权,以及仍然有效的邀请链接,都在这里处理。给设备延长只需选一个时长,不用重新发链接。
|
||||
|
||||
<p align="center">
|
||||
<img src="docs/images/app-access.png" alt="授权管理" width="80%">
|
||||
@@ -210,10 +220,10 @@ make server # 产物:dist/portrelay-server-linux-{amd64,arm64}
|
||||
### 3. 创建通道并邀请同事
|
||||
|
||||
1. 点 **添加通道**,填写名称和目标主机、端口(如 `10.0.1.16`、`3306`)。可以先测试一下本机能否连通;网关上的访问端口自动分配。
|
||||
2. 访问方式保持默认的 **仅授权链接**,然后点 **邀请**,选择授权后可访问时长、可用设备数,以及是否需要审批。
|
||||
2. 访问方式保持默认的 **仅授权链接**。保存后会直接弹出邀请设置,选择授权后可访问时长、可用设备数,以及是否需要审批。以后要再发邀请,点通道卡片上的 **邀请**。
|
||||
3. 把生成的文案或二维码发给同事。同事打开链接、填写姓名后,就可以用数据库客户端或 SSH 连接 `192.168.1.10:33660`。
|
||||
|
||||
需要一次开放多台主机时(比如一组服务器),同样点 **添加通道**,每行填一台主机(端口用逗号隔开,可以直接粘贴一串 IP),表单会预览端口映射并自动放进新建的通道组,闲置关闭、限速、访问控制等设置对每个地址都生效。创建后点 **邀请整组**。之后要加地址,点组卡片上的 **添加地址**;已有通道可以在编辑时选择加入某个组。组的「连接与授权」可以按设备或按地址查看在线连接和接入记录。
|
||||
需要一次开放多台主机时(比如一组服务器),同样点 **添加通道**,每行填一台主机(端口用逗号隔开,可以直接粘贴一串 IP),表单会预览端口映射并自动放进新建的通道组,闲置关闭、限速、访问控制等设置对每个地址都生效。创建后弹出的邀请对整组有效。之后要加地址,点组卡片上的 **添加地址**;已有通道可以在编辑时选择加入某个组。组的「连接与授权」可以按设备或按地址查看在线连接和接入记录。
|
||||
|
||||
## 配置参考
|
||||
|
||||
@@ -299,6 +309,7 @@ make agent # 编译当前平台的 Agent 到 bin/
|
||||
make app # 构建 PortRelay.app(UNIVERSAL=1 ./build-app.sh 构建通用二进制)
|
||||
make release # 打包全部平台的网关与 Agent 到 dist/
|
||||
make snapshots # 离屏渲染 App 各界面截图到 tools/ui-snapshots/out/
|
||||
make readme-images # 重新生成 README 的全部截图和动图到 docs/images/
|
||||
```
|
||||
|
||||
```text
|
||||
@@ -309,10 +320,10 @@ client/ Agent:配置、隧道、本地 API、闲置关闭、流
|
||||
core/ 协议消息、ACL、流量计量与限速
|
||||
mac-native/ SwiftUI 菜单栏 App
|
||||
deploy/ systemd、Docker Compose 部署示例与安装脚本
|
||||
tools/ui-snapshots/ 离屏截图工具与 README 动图生成(mkgif)
|
||||
tools/ui-snapshots/ README 截图与动图:App 离屏渲染、网页截图、GIF 合成
|
||||
```
|
||||
|
||||
README 里的截图和动图都用模拟数据生成:`tools/ui-snapshots/render.sh readme` 渲染截图,`FRAMES=40 tools/ui-snapshots/render.sh gif` 渲染逐帧画面,再用 `go run ./tools/ui-snapshots/mkgif` 合成 GIF。
|
||||
README 里的截图和动图都使用模拟数据,改了界面后运行 `make readme-images` 即可全部重新生成(需要 Google Chrome)。App 界面离屏渲染,动图由逐帧画面合成,授权页和网页面板用无头 Chrome 截图。
|
||||
|
||||
欢迎提交 Issue 和 Pull Request。提交前请先运行 `make test`。
|
||||
|
||||
|
||||
Reference in new issue
Block a user