lamco-qemu-rdp
Per-VM RDP Server for QEMU/KVM
A host-side RDP server that connects to QEMU's D-Bus display backend, providing high-performance remote console access to virtual machines without any guest-side software.
What is lamco-qemu-rdp?
QEMU provides virtual machines with emulated VGA/GPU devices and exposes their framebuffers through display backends: VNC, SPICE, or D-Bus. Today, most Proxmox and libvirt deployments use the built-in VNC server, accessed through noVNC in the browser.
lamco-qemu-rdp is a lightweight daemon that reads the VM's display output via QEMU's D-Bus display backend and serves it over RDP. It runs on the hypervisor host -- not inside the VM -- so it works from the moment the VM powers on, including BIOS, bootloader, and OS installer screens.
Architecture
lamco-qemu-rdp sits between QEMU's D-Bus display backend and any standard RDP client. The VM is unaware an RDP server exists -- all interaction happens at the hypervisor level.
Key Features
Socket-Activated
Uses systemd socket activation so no daemon runs until a client connects. Zero resource usage for idle VMs. Starts in milliseconds on first connection.
Proxmox-Aware
Integrates with Proxmox VE's VM lifecycle via hookscripts. Automatically provisions RDP endpoints when VMs start and cleans up when they stop.
Shared EGFX Pipeline
Shares the same H.264 EGFX encoding pipeline as lamco-rdp-server. Efficient frame encoding with hardware acceleration support (VA-API, NVENC).
Lightweight
No PipeWire, Wayland, or display server dependencies. lamco-qemu-rdp reads directly from QEMU's D-Bus interface -- minimal footprint on the hypervisor host.
Pre-Boot Console
Access the VM from the moment it powers on. See BIOS screens, bootloader menus, OS installers, and recovery consoles -- all over RDP.
Network-Independent
Works even when the VM has no network connectivity. Since the display is read from the host-side D-Bus, guest networking is irrelevant.
Use Cases
Pre-Boot & Recovery Console
Access BIOS/UEFI settings, GRUB menus, and recovery environments over RDP. Essential for managing VMs that cannot boot or have no network.
Network-Less VMs
VMs used for air-gapped security testing, sandboxed malware analysis, or isolated development can be accessed without any guest networking configured.
Proxmox Web Console Upgrade
Paired with lamco-rdp-console, replace noVNC in the Proxmox web UI with H.264 video, proper clipboard, and audio.
CI/CD VM Automation
Use rdpdo to connect to lamco-qemu-rdp for automated GUI testing of VMs in CI pipelines. No guest agents needed.
Console Protocol Comparison
| Capability | QEMU VNC (noVNC) | SPICE | lamco-qemu-rdp |
|---|---|---|---|
| Video encoding | Raw/ZRLE bitmaps | MJPEG + bitmaps | H.264 (EGFX) |
| Browser access | Yes (noVNC) | No (native only) | Yes (lamco-rdp-console) |
| Hardware acceleration | No | Partial | VA-API / NVENC |
| Audio | No | Yes | Yes |
| Clipboard | Basic text | Full | Full (text + files) |
| Resource usage (idle) | Always running | Always running | Socket-activated (zero) |
| Pre-boot access | Yes | Yes | Yes |
| Guest agent required | No | Optional (for full features) | No |
| CI/CD automation | Via vncdotool | No tooling | Via rdpdo |
Status: In Development
lamco-qemu-rdp is in active development. The D-Bus display backend integration and EGFX encoding pipeline are being built. Licensing and pricing have not been finalized.
Interested in replacing VNC consoles in your Proxmox cluster? Contact us to discuss your environment.