跳到主要内容

VNC 远程桌面

VNC 会话连接提供 RFB 服务的虚拟机控制台、实验环境或轻量图形桌面。它和 RDP 共用远程桌面 pane,并共享已保存连接、最近使用、标签页和分屏。

VNC 的协议解码运行在独立的 helper 进程中。从源码运行时需要先构建 helper,否则连接会以 HelperMissing 失败,见 开发环境搭建。

连接配置​

基本信息​

字段说明
主机 / 端口RFB 服务地址,默认端口 5900
VNC 密码classic VNC Authentication 使用的密码

安全模式​

模式行为
自动按服务器声明的安全类型协商(默认)
无不做认证
VNC 密码classic VNC Authentication

classic VNC Authentication 只使用密码的前 8 字节。NyaTerm 会拒绝超过 8 字节的密码而不是静默截断,避免你以为设置了长密码。

显示​

缩放 可选 适应(默认)、实际大小 或 拉伸。

剪贴板​

剪贴板 默认开启,同步 Latin-1 文本。限制来自 RFB 协议本身:

  • 只支持 Latin-1 文本,非 Latin-1 字符会被拒绝
  • 单次不超过 1 MiB

这条限制是刻意保留的,避免把二进制或超大内容塞进 VNC 协议路径。

会话行为​

  • 共享会话 — 允许其他查看器保持连接,而不是把它们踢掉
  • 仅查看 — 禁用键盘和指针输入

这两个开关在 helper 进程里强制执行,而不只是在界面上隐藏输入。

重连​

重连 默认开启,对临时传输故障做有限次数重试,默认 5 次。连接超时为 15 秒,握手超时为 30 秒。

传输与编码支持​

当前实现的边界:

  • 传输只支持 direct TCP,没有 TLS / VeNCrypt,也不支持代理或 SSH 隧道承载
  • 画面编码按 DesktopSizePseudo、ZRLE、Tight、Raw 的顺序声明;Tight JPEG 在 helper 里解码成统一的 RGBA framebuffer,Raw 保留为稳定 fallback
  • 不支持 CopyRect、cursor pseudo-encoding 和远程 resize

互通状态​

场景安全模式编码状态
Scripted RFB 3.8 fixture无ZRLE / Tight / Tight JPEG → RGBA已通过自动测试
Scripted RFB 3.8 fixtureVNC 密码ZRLE / Tight / Tight JPEG → RGBA已通过自动测试
TigerVNC无 / VNC 密码Raw / ZRLE / Tight / JPEG真实服务器待测
TightVNC无 / VNC 密码Raw / Tight / JPEG真实服务器待测
x11vnc / LibVNCServer无 / VNC 密码Raw / ZRLE / Tight / JPEG真实服务器待测
QEMU / KVM VNC无 / VNC 密码Raw / ZRLE / Tight / JPEG真实服务器待测

自动测试覆盖的是脚本化的 RFB 3.8 fixture。真实服务器的互通范围仍在验证中,遇到问题请附上服务器实现和版本反馈。

能力边界​

和 RDP 一样,VNC 会话不提供终端命令历史、SFTP 文件浏览器、SSH 代理 / 跳板机或远程主机监控。

错误分类​

类型常见原因
Authentication密码错误;选择 VNC 密码模式但未填写密码
Protocol服务器 RFB 版本或安全类型不受支持
Encoding收到无法解码的编码,例如未协商的 pseudo-encoding
Transport端口不可达、连接被拒或链路中断
Clipboard剪贴板内容超出 Latin-1 或 1 MiB 限制
HelperMissinghelper 可执行文件不在应用旁边
HelperCrashedhelper 进程在会话期间退出