WinBoat o Wine: ejecutar aplicaciones de Windows en un servidor Linux con GPU
Hay dos formas de ejecutar un programa de Windows en Linux. Wine (y Proton, su versión de Valve) traduce las llamadas de Windows a Linux: no hay Windows dentro, y el programa usa los drivers de GPU de Linux. WinBoat hace lo contrario: ejecuta un Windows 11 real en un contenedor Docker (el proyecto dockur/windows, con QEMU/KVM) y muestra cada aplicación de Windows como una ventana de Linux mediante el modo RemoteApp de FreeRDP. Probamos WinBoat en un servidor Linux con GPU sin pantalla y lo comparamos con Wine.
Resultados en resumen
- WinBoat funciona en un servidor sin pantalla: su interfaz es una aplicación Electron que manejamos en una pantalla virtual. Encontró Docker, KVM y FreeRDP e instaló Windows 11 Pro solo.
- 16 minutos de instalación: 1,5 minutos para descargar Windows 11 de Microsoft (8,5 GB) y 14 minutos de instalación desatendida. Después, 19 GB ocupados en el disco del servidor.
- 4,2 GB de RAM reservados mientras Windows funciona, unos 0,4 vCPU con Windows en reposo.
- Sin GPU en Windows: Windows solo ve un «Red Hat VirtIO GPU DOD controller» y el «Microsoft Remote Display Adapter», sin aceleración 3D. WinBoat 0.9.2 no pasa la GPU.
- Las ventanas de aplicación integradas no funcionaron sin pantalla: la conexión RDP necesita un servidor de sonido, y después las ventanas RemoteApp fallaron (sway) o se quedaron congeladas (Xvfb). El escritorio completo de Windows por RDP sí funcionó.
- Wine y Proton conservan la GPU: el mismo juego de Windows alcanzó unos 95 fps con Wine y de 85 a 96 fps con Proton, en la misma Intel UHD 770.
Configuración de la prueba
| Elemento | Valor |
|---|---|
| Servidor | Linux (Debian 13), 4 vCPU, 10 GB de RAM, Intel UHD 770 (GPU compartida), kernel 7.3, KVM disponible dentro del servidor (virtualización anidada) |
| WinBoat | 0.9.2 (.deb de GitHub), Docker 29.9, FreeRDP 3.15 |
| Windows | Windows 11 Pro, inglés, valores por defecto de WinBoat: 2 núcleos, 4 GB de RAM, disco de 32 GB, imagen dockur/windows:6.05 (800 MB) |
| Pantalla | sway headless (Wayland + Xwayland), luego Xvfb para la prueba RemoteApp |
1. Instalar WinBoat en un servidor
WinBoat comprueba sus requisitos en un asistente: al menos 4 GB de RAM, KVM, Docker con Compose v2 y FreeRDP 3. Nuestro servidor lo tenía todo, KVM incluido: el servidor es a su vez una máquina virtual, y WinBoat lanza una segunda dentro.
apt install ./winboat-0.9.2-amd64.deb freerdp3-x11
usermod -aG docker,kvm tuusuario
El asistente pide una versión de Windows, un idioma, un nombre de usuario y una contraseña de Windows,
y los recursos para Windows. Tras pulsar Install, WinBoat escribe un docker-compose.yml,
descarga Windows 11 de Microsoft y lo instala sin más preguntas:
| Paso | Duración |
|---|---|
| Descarga de Windows 11 (ISO de 8,5 GB) | 1 min 30 s |
| Instalación desatendida de Windows | 14 min 08 s |
| Total, de «Install» a «Windows has been installed successfully» | 15 min 52 s |
2. Lo que cuesta
| Recurso | Medido |
|---|---|
| RAM reservada por el contenedor | 4,15 GiB, todo el tiempo que Windows funciona |
| CPU durante la instalación | de 1 a 2 núcleos |
| CPU en los 15 minutos tras la instalación | unos 2 núcleos (Windows termina su configuración) |
| CPU con Windows en reposo | unos 0,4 vCPU, picos breves de 1,3 |
| Disco en el servidor | 19 GB: 8,5 GB de ISO guardada en la carpeta + 11 GB del disco de Windows |
En un servidor de 8 GB de RAM, el Windows de WinBoat se queda con la mitad antes de abrir una sola aplicación. Con Wine no hay nada que reservar: solo el programa que ejecutas usa memoria.
3. La GPU dentro de Windows
Abrimos PowerShell en Windows y listamos los adaptadores gráficos:
Name : Red Hat VirtIO GPU DOD controller
Name : Microsoft Remote Display Adapter
El contenedor recibe /dev/kvm pero no la GPU, y el driver «DOD» (solo pantalla) no tiene 3D. Así que
Windows lo dibuja todo con la CPU: bien para una aplicación ofimática, no para un juego. Los
desarrolladores de WinBoat anuncian aceleración por GPU para la versión 1.0. Por eso no ejecutamos el
benchmark de SuperTuxKart en WinBoat:
4. Ventanas de aplicación en un servidor sin pantalla
La función principal de WinBoat es mostrar cada aplicación de Windows en su propia ventana de Linux (FreeRDP RemoteApp). En nuestro servidor sin pantalla:
- El primer inicio falló (
FreeRDP process returned error code '138'): WinBoat pide sonido a FreeRDP mediante PulseAudio, y un servidor no tiene servidor de sonido. Iniciar el servicio PulseAudio de PipeWire en la sesión lo resolvió (apt install pipewire-pulse wireplumber). - En la pantalla virtual de sway (Xwayland), FreeRDP se detuvo entonces con un error X11
BadMatchal abrirse la ventana. - En Xvfb con un gestor de ventanas sencillo, las ventanas del Bloc de notas se abrieron (la lista de ventanas mostraba «Untitled - Notepad») pero su contenido se quedó congelado en la imagen de inicio de sesión de Windows.
- El escritorio completo de Windows por RDP funcionó a la primera (vídeo al principio del artículo).
WinBoat está pensado para un PC de escritorio Linux con pantalla real. En un servidor, usa el
escritorio completo de Windows (Escritorio remoto desde tu ordenador, por un túnel SSH al puerto 47300)
o ejecuta directamente dockur/windows con Docker Compose: es lo que WinBoat usa por debajo.
¿WinBoat, Wine/Proton o Windows 11?
| Wine / Proton | WinBoat | Opción Windows 11 | |
|---|---|---|---|
| Qué se ejecuta | el programa de Windows, en Linux | un Windows completo en un contenedor | Windows 11 Pro en todo el servidor |
| GPU para el programa | sí (OpenGL, Vulkan, DXVK) | no | sí (driver Intel) |
| SuperTuxKart 1080p | unos 95 fps (Wine), de 85 a 96 fps (Proton) | no ejecutado, sin GPU | 111 fps |
| RAM reservada | solo la del programa | 4 GB para Windows | todo el servidor |
| Instalación | minutos | 16 min, automática | hecha por nosotros |
| Ideal para | juegos y programas que se sabe que funcionan | aplicaciones ofimáticas y de negocio que no van con Wine | todo lo demás |
Nuestro consejo:
- Juegos: Wine o Proton, en la GPU. Consulta Steam y Proton en un servidor GPU en la nube y juegos de Windows con Wine.
- Una aplicación ofimática o de negocio de Windows que no funciona con Wine: WinBoat (o dockur/windows) sirve, siempre que le des 4 GB de RAM y uses el escritorio completo de Windows en un servidor.
- Todo lo demás, o un programa de Windows que necesita la GPU: la opción Windows 11 (10 €, en un único pago), con el driver gráfico de Intel.
WinBoat necesita KVM dentro de tu servidor (virtualización anidada). Funcionó en nuestro servidor de prueba; pídenos por correo que comprobemos que está activada en el tuyo. Con 4 GB ocupados por Windows, elige iGPU Power (4 vCPU, 14 GB de RAM) en lugar de iGPU Start (2 vCPU, 8 GB).
¿Lo quieres listo para usar? Pídelo por correo al hacer el pedido (contact@linuxgpu.eu): podemos entregarte el servidor con Wine, WinBoat o Steam ya instalados y configurados en el lado del servidor.
Sistemas listos para jugar desde el primer momento. Los sistemas que instalamos por defecto ya están preparados para esto: Debian 13 con un kernel reciente (7.3), los drivers de GPU de Intel y Mesa (OpenGL, Vulkan, codificación de vídeo VA-API), y Windows 11 (opción) con el driver gráfico de Intel y el Escritorio remoto renderizado por la GPU. Ningún driver que buscar: instala tu juego y Sunshine, y juega.
Pruébalo
Ver los planes: iGPU Power cuesta 29,99 € al mes sin IVA, iGPU Start 14,99 €.