VprixVncProxy 是 Golang 实现的 Vnc 远程桌面代理组件,完全解析 rfb 协议,支持远程桌面代理,rbs 文件录屏,rbs 文件回放,截图,录制视频。
- 全协议支持的 VncProxy。
- 支持 Tcp 代理
- 支持 WebSocket 代理
- 支持远程桌面操作保存为 rbs 文件。
- 支持使用 rbs 文件作为重播服务,通过 vnc 客户端连接 player 服务,回放远程桌面的操作。
-
支持实时录制视频。
-
支持通过 rbs 文件录制视频
-
支持屏幕截图
应用场景
- 远程桌面中间人角色,可以进行审计。
- 需要对远程桌面更多权限控制的场景。
- 内网隔离场景
组件说明
Proxy
- 启动 `server` 接受 `vnc viewer` 的链接.
- 启动 `client` 连接到指定的 `vnc server`.
- 为 `vnc viewer` 和 `vnc server` 之间建立起消息转发通道。
- 因为 `rfb` 协议被完全解析,可以针对通信的消息进行转发处理,产生了后续的功能。
Recorder
1. 启动 `client` 连接到指定的 `vnc server`.
2. 发送帧缓冲区更新消息 `FramebufferUpdateRequest` 到 `vnc server`。
3. 处理 `vnc server` 回复的界面更新消息 `FramebufferUpdate`。
4. 把这一过程以 `rbs` 文件格式记录下来。
Player
1. 启动 `server` 接受 `vnc viewer` 的链接.
2. 读取 `rbs` 文件,并按格式生成 `FramebufferUpdate` 消息发送给 `vnc viewer`。
3. `vnc viewer` 的界面就会回放动作。
Screenshot
1. 支持 `Proxy`,`Recorder` 和 `rbs` 文件作为输入源。
2. 把当前的界面视图转换为图片文件。
Video
1. 支持 `Proxy`,`Recorder` 和 `rbs` 文件作为输入源。
2. 把 `FramebufferUpdate` 消息转换为视频文件。