RDP 直连控制台
能得到什么
这不是 Windows 自己的远程桌面,而是由宿主提供的虚拟机屏幕,和 Hyper-V 的 VM Connect、VirtualBox 的 VRDP 一个思路。所以 UEFI、安装程序、登录画面、没有网络的虚拟机都能看、能操作。
- 所有虚拟机共用一个端口(3389),用户名决定连哪一台。
- 密码:keelOS 的管理员密码,或者这台虚拟机单独设的 RDP 密码。登录走 NLA;管理员密码只存一份 NT 哈希,从不存明文。
- mstsc、Windows App、FreeRDP、Remmina 都能用。
- 没有显示设备或没在运行的虚拟机,显示一张"无信号"画面;关着的虚拟机上有一个 START 按钮。
- 虚拟机重启或关机时,会话不断,改成显示一张状态卡片。
- 宿主重启后,客户端会自己重连。
不装代理也能复制粘贴
Ctrl+Alt+C 复制 Linux 或 FreeBSD 虚拟机的整屏文字控制台:宿主直接从虚拟机内存里读字符,不靠 OCR。Ctrl+Alt+V 把本机剪贴板里的文字当成按键敲进虚拟机,敲之前先显示预览让你确认。安装程序和固件画面里也能用。
键盘:宿主在客户端和虚拟机的布局之间做转换,有 33 种布局的表,日文键盘连英文版 Windows 也能打对字符。
实测
画面经 RDP 的图形管线发送,用 RemoteFX Progressive 编码。窗口移动和滚动只发"把客户端已有的内容挪个位置",纯色区域发填充,重复的格子从客户端缓存里取。Windows 桌面上的带宽:
- 拖动窗口:基本位图 14.4 MB/s,现在 0.47 MB/s。
- 滚动:基本位图 3.4 MB/s,现在 0.056 MB/s。
限制
- 从 Windows 图形桌面往外复制,需要虚拟机里有代理程序,在计划中。
- 粘贴每秒敲约 20–25 个字符,Windows 虚拟机上更慢;虚拟机键盘上没有对应按键的字符(比如中文)会跳过。
- 还没有 H.264、声音和 USB 转发。
- 分辨率要跟着客户端窗口变,Windows 虚拟机里要装 virtio 显卡驱动。