✨ 新增 VNC 与 RDP 远程连接#227
Open
fr58386612 wants to merge 16 commits into
Open
Conversation
新增 VNC/RDP 资产、代理链连接、内嵌 noVNC 会话与系统 RDP 启动,并修复 RealVNC 认证、连接状态及中文 GBK 剪贴板兼容。 Refs opskat#222
Collaborator
|
“RDP 首版使用 Windows 系统远程桌面客户端。” 我正在实现golang原生的rdp #227 处理完后再合并处理一下 |
让发布工作流使用当前仓库生成 Release 信息,支持 fork 自动发布。
处理远程桌面连接关闭错误、VNC 协议安全告警、RDP 子进程检查和测试切片初始化问题。\n\nRefs opskat#222
VNC 仅在服务端实际启用密码认证时报告验证成功;RDP 通过代理链执行 NLA/CredSSP 真实凭据认证。\n\nRefs opskat#222
为 Release 工作流增加版本号输入、版本校验和基于当前提交的自动 Tag/Release 创建。
CodFrm
reviewed
Jul 10, 2026
Contributor
Author
|
合并了最新的上游代码,其中RDP实现使用你的代码,保留我的vnc实现及代理链配置 |
将 main(代理链配置 opskat#221、RDP opskat#225、OSS opskat#223 等)合入 codex/vnc-rdp-222: - connpool/k8s:统一采用 main 的 chainDialFunc(ctx) 与 ProxyChainDialContext - proxyConfig/ConnectionMethodFields:采用 main 重设计的代理链 UI(DnD 分层校验) - README/i18n:保留 main 更完整的代理链描述,补充 VNC 相关文案 - wails.json:pnpm 统一为 10.11.0,与 CI 对齐
Collaborator
Code reviewFound 3 issues:
opskat/frontend/src/components/remote-desktop/RemoteDesktopPanel.tsx Lines 386 to 395 in 31421b6
opskat/frontend/src/components/remote-desktop/RemoteDesktopPanel.tsx Lines 237 to 244 in 31421b6 opskat/frontend/src/lib/vncClipboard.ts Lines 57 to 63 in 31421b6
opskat/internal/ai/tool/tools_asset.go Lines 55 to 59 in 31421b6 🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
- pasteVNCClipboardText 返回是否已写入剪贴板;keysym 直接键入(GBK 无法编码的 emoji/日韩等)时不再补发 Ctrl+V,避免把远端旧剪贴板内容多粘一次 - 拆分合并的断开 effect(原来 [session?.id, fileSessionId] 共用一个 cleanup),打开文件面板不再误断开在线 VNC 会话 - 顺带移除 VNC 面板中不可达的 RDP 分支与相关 import - 补充回归测试:去掉修复即失败
- 删除无引用的 RDPConfigSection 导出,将远程桌面表单/详情卡收敛为 VNC-only(去掉 vnc|rdp 类型参数与 RDP 专属字段/校验) - 删除只被死代码引用的 i18n key(rdpExternal*、width/height/colorDepth/ignoreCert、重复的 asset.domain、formMissingHostOrUsername)与重复的 nav.rdp - 新标签打开改为按资产类型注册表 connectAction === 'page' 派发,去掉 App.tsx 中 asset.Type === 'vnc' 硬编码分支
- 将 RFB 版本协商/安全类型/密码认证从 app 绑定层移到 remote_desktop_svc.Manager.TestConfig,绑定层收敛为 解析→解密→委派,与 rdp_svc/etcd_svc 一致;协议测试一并迁到 service 包 - manager 补 会话 open/end/fail 三态日志,改用 logger.Ctx(ctx),替换两处裸 zap.L() - 移除从未赋值的 Session.Message 死字段
- list_assets/add_asset/update_asset schema 补充 vnc 类型枚举及 security_type/file_ssh_asset_id 参数(依据 docs/adding-an-asset-type.md) - 新增 vnc_test 覆盖 ValidateCreateArgs/ApplyCreateArgs/ApplyUpdateArgs 与 SafeView 脱敏
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
vnc、rdp两类资产,补齐资产表单、图标、详情页和远程桌面标签页入口。.rdp配置并启动系统远程桌面客户端,不依赖guacd。RFB 005.000降级握手,错误密码不再误报成功。Ctrl+V。依赖关系
本 PR 基于代理链 PR #221。建议先合并 #221;合并后本 PR 中重复显示的代理链基础提交会自动从差异中消失。
关联 Issue
Closes #222
验证
go test ./internal/app/remote_desktop ./internal/service/remote_desktop_svc ./internal/model/entity/asset_entitycorepack pnpm@9.15.9 lintcorepack pnpm@9.15.9 test(162 个测试文件,1641 项测试通过)corepack pnpm@9.15.9 buildgit diff --check说明
guacd;文件上传下载仍需绑定 SSH/SFTP 资产。