
Ejecuta Radmin VPN en Linux mediante Wine: controlador personalizado, puente TAP y cero pérdida de paquetes.
Ejecuta Radmin VPN en Linux mediante Wine. Únete a redes VPN, ve pares, juega — todo sin una máquina virtual de Windows.
No lo construí porque fuera más fácil que una VM. Lo construí porque pensé que era más fácil que una VM.
Código asistido por IA. Construido de forma colaborativa entre un humano y Claude (Anthropic). El driver, los hooks y el puente se escribieron con ingeniería inversa asistida por IA del protocolo de driver no documentado de Radmin VPN usando Ghidra. Esto funciona, pero no ofrece garantías. No está afiliado a Famatech. Radmin VPN es propietario — descárgalo tú mismo desde radmin-vpn.com. Úsalo bajo tu propio riesgo.
El servicio de Windows de Radmin VPN se comunica con un driver miniport NDIS para su adaptador de red virtual. Wine no soporta NDIS, así que reemplazamos el driver con nuestra propia implementación que se conecta a un dispositivo TAP de Linux. Una DLL de hook maneja los problemas de compatibilidad con Wine (nombres de adaptador, permisos de registro). El resultado es un cliente Radmin VPN totalmente funcional ejecutándose de forma nativa bajo Wine.
Aplicación Linux ← TAP (radminvpn0) ← tap_bridge ← FIFO ← rvpnnetmp.sys (driver Wine) ← RvControlSvc.exe
Descarga RadminVPN-Linux-x86_64.AppImage desde la última versión. No hay nada que instalar — Wine está incluido.
Candidatos de versión (p. ej.
v1.0.0-rc1) se publican como pre-releases de GitHub. El enlacelatestde arriba siempre apunta a la compilación estable más reciente, así que las pre-releases no aparecerán allí — consíguelas desde la lista completa de versiones.
chmod +x RadminVPN-Linux-x86_64.AppImage
./RadminVPN-Linux-x86_64.AppImage
En el primer inicio descarga el instalador de Radmin VPN contra el que está validado (o pasa el tuyo propio con --installer). Se abre una terminal con el progreso, y se necesita un prompt de contraseña sudo para la configuración de TAP.
El estado persistente (wineprefix, MAC, registros) vive en ~/.local/share/radmin-vpn-linux/.
¿Radmin se cierra solo? Su propio actualizador está instalando una compilación más nueva dentro del prefix en ejecución. Haz la actualización de forma controlada en su lugar — conserva tu prefix y tu ID de Radmin:
./RadminVPN-Linux-x86_64.AppImage --updateLuego desactiva "Actualizaciones automáticas" en la configuración de Radmin para que deje de intentarlo. Detalles en el actualizador automático de Radmin.
i686-w64-mingw32-gcc, x86_64-w64-mingw32-gcc) — para compilar desde fuentemodprobe tunRADMIN_VERSION en lib.sh (actualmente 2.1.4951.1; 2.0.4899.9 también funciona). Radmin VPN 1.4 no es compatible — se registra y abre el adaptador pero nunca termina de conectarse bajo el shim de Wine, dejando la GUI atascada en "Conectando...".sudo pacman -S wine mingw-w64-gcc
sudo apt install wine64 wine32 gcc-mingw-w64
git clone https://github.com/baptisterajaut/radmin-vpn-linux.git
cd radmin-vpn-linux
# Opción A: descargar binarios precompilados desde GitHub Releases
mkdir -p build
TAG=$(curl -sI https://github.com/baptisterajaut/radmin-vpn-linux/releases/latest | grep -i location | grep -oP 'v[\d.]+')
curl -sL "https://github.com/baptisterajaut/radmin-vpn-linux/releases/download/${TAG}/radmin-vpn-linux-${TAG}.tar.gz" \
| tar xz -C build/
# Opción B: compilar desde fuente
make
# Descargar el instalador de Radmin VPN desde https://www.radmin-vpn.com/
./run.sh --installer ~/Downloads/Radmin_VPN_*.exe
En ejecuciones posteriores, simplemente:
./run.sh
| Bandera | Descripción |
|---|---|
--installer <ruta> | Ruta al instalador Radmin_VPN_*.exe (solo primera ejecución). |
--no-ui | Ejecuta el servicio sin lanzar la GUI de Radmin. |
--update | Actualiza Radmin a la versión fijada en su lugar. Conserva el prefix, así que el RID registrado con Famatech sobrevive. |
--no-broadcast-routes | No añade las rutas de broadcast/multicast → TAP. |
--filter-ui | Lanza la UI opcional de filtrado de paquetes GTK4 (desactivada por defecto). |
--fix-chat | Parchea qwindows.dll de Qt para corregir el fallo de la ventana de chat bajo Wine (desactivado por defecto). |
La GUI de Radmin puede descargar una compilación más nueva y ejecutar su instalador dentro del prefix en vivo,
lo que mata la GUI y provoca un fallo en el servicio en ejecución (el registro de la GUI muestra entonces un instalador
bajo AppData\\Local\\Temp). Dos defensas: el lanzador incluye la compilación validada actual
para que el actualizador no tenga nada que empujar, y una GUI que muere ya no se lleva el túnel
consigo — se reinicia una vez, y luego la VPN sigue funcionando sin interfaz. Para actualizar
deliberadamente, usa ./run.sh --update, que detiene todo primero. Desactivar
"Actualizaciones automáticas" en la configuración de la GUI evita la carrera por completo.
Tanto --filter-ui como --fix-chat son opcionales. La UI de filtrado necesita el binario rvpn_filter_ui
(construido por make); el arreglo del chat necesita patch_qwindows_font.py y un intérprete de Python 3.
Dos lanzadores adicionales ejecutan Radmin VPN sin un escritorio local — para un VPS o un host de centro de datos. Ambos instalan y configuran exactamente como run.sh (mismo wineprefix, mismo flujo de primera ejecución con --installer, mismo puente TAP); solo difieren en cómo se accede a la GUI.
run_datacenter.sh — GUI a través del navegadorEjecuta la GUI real de Radmin en una pantalla virtual (Xvfb) y la sirve mediante VNC + noVNC, para que puedas configurar tus redes desde un navegador y luego dejarla en ejecución.
sudo apt install -y xvfb x11vnc websockify novnc # o: make install-datacenter-deps
./run_datacenter.sh --installer ~/Downloads/Radmin_VPN_*.exe
| Bandera | Predeterminado | Descripción |
|---|---|---|
--vnc-port <n> | 5900 | Puerto para el servidor x11vnc. |
--web-port <n> | 6080 | Puerto para el endpoint web noVNC. |
--vnc-password <pw> | (ninguno) | Contraseña para la sesión VNC / web. |
--web-bind <addr> | 127.0.0.1 | Dirección en la que noVNC escucha. |
Por defecto noVNC se vincula a 127.0.0.1, así que solo es accesible a través de un túnel SSH:
ssh -L 6080:localhost:6080 tu-vps # luego abre http://localhost:6080/vnc.html
Para exponerlo públicamente, pasa --web-bind 0.0.0.0 junto con --vnc-password — de lo contrario, cualquiera que llegue al puerto web aterriza en un escritorio sin autenticación y con capacidades de root. El script imprime una advertencia contundente si te vinculas públicamente sin contraseña.
run_vps.sh — solo servicio, GUID fijo