连接流程
了解 Shield CLI 从执行命令到浏览器可访问的完整过程。
整体架构
内网服务 ←→ Shield CLI ←→ 公网网关 ←→ 浏览器
(SSH/RDP/...) (加密隧道) (HTML5) (任意设备)连接步骤
命令行模式
- 解析地址 — 根据协议和输入参数确定目标 IP 和端口
- 加载凭证 — 读取或首次生成加密凭证(基于机器指纹)
- 认证输入 — 交互式提示或使用命令行参数提供目标服务的用户名密码
- 调用服务端 — 向公网网关发起快速配置请求
- 建立主隧道 — 通过 WebSocket 建立加密隧道
- 建立资源隧道 — 在主隧道上创建到目标服务的端口映射
- 分配 URL — 获得唯一的 Access URL
- 自动打开浏览器 — 在默认浏览器中打开访问地址
- 启动本地 API — 在 4000-5000 端口启动健康检查和管理 API
Web UI 模式
- 启动 —
shield start启动 Web 服务和管理面板 - 添加应用 — 用户在 UI 中配置应用(本地加密存储)
- 点击连接 — 后台异步建立隧道
- 调用快速配置 API(带重试逻辑)
- 建立主隧道(共享)
- 建立资源隧道(每个应用独立)
- 轮询目标站点直到可访问
- 状态更新 — 前端每 2 秒轮询状态(连接中 → 已连接)
- 自动打开 — 连接成功后自动在新标签页打开 Access URL
- 断开连接 — 关闭资源隧道,保留主隧道供下次使用
断线重连
Shield CLI 内置自动重连机制:
- 检测到连接断开后立即尝试重连
- 使用指数退避策略,最大重试间隔 10 秒
- 重连过程对用户透明,无需手动干预
端口分配
| 端口 | 用途 |
|---|---|
8181(可自定义) | Web UI 管理面板 |
4000-5000 | 本地 API 服务器(健康检查、隧道管理) |
62888 | 公网网关通信 |