
radmin-vpn-linux v1.0.0-rc8
Esegui Radmin VPN su Linux tramite Wine — driver personalizzato, bridge TAP, zero perdita di pacchetti
Radmin VPN per Linux
Esegui Radmin VPN su Linux tramite Wine. Unisciti a reti VPN, vedi i peer, gioca — tutto senza una VM Windows.
Non l'ho creato perché fosse più facile di una VM. L'ho creato perché pensavo fosse più facile di una VM.
Codice assistito dall'IA. Sviluppato in collaborazione tra un umano e Claude (Anthropic). Il driver, gli hook e il bridge sono stati scritti con un esteso reverse engineering assistito dall'IA del protocollo driver non documentato di Radmin VPN usando Ghidra. Funziona, ma senza garanzie. Non affiliato a Famatech. Radmin VPN è proprietario — scaricalo tu stesso da radmin-vpn.com. Usalo a tuo rischio.
Come funziona
Il servizio Windows di Radmin VPN comunica con un driver miniport NDIS per la sua scheda di rete virtuale. Wine non supporta NDIS, quindi sostituiamo il driver con una nostra implementazione che fa da bridge verso un dispositivo TAP Linux. Una DLL di hook gestisce i problemi di compatibilità con Wine (nomi degli adapter, permessi del registro). Il risultato è un client Radmin VPN completamente funzionante che gira nativamente sotto Wine.
App Linux ← TAP (radminvpn0) ← tap_bridge ← FIFO ← rvpnnetmp.sys (driver Wine) ← RvControlSvc.exe
Avvio rapido (AppImage, consigliato)
Prendi RadminVPN-Linux-x86_64.AppImage dall'ultima release. Niente da installare — Wine è incluso.
Release candidate (es.
v1.0.0-rc1) sono pubblicate come pre-release di GitHub. Il linklatestsopra punta sempre alla build stabile più recente, quindi le pre-release non appariranno lì — prendile dall'elenco completo delle release.
chmod +x RadminVPN-Linux-x86_64.AppImage
./RadminVPN-Linux-x86_64.AppImage
Al primo avvio scarica il programma di installazione di Radmin VPN contro cui è validato (oppure passa il tuo con --installer). Si apre un terminale con l'avanzamento e serve una richiesta di password sudo per la configurazione TAP.
Lo stato persistente (wineprefix, MAC, log) vive in ~/.local/share/radmin-vpn-linux/.
Radmin si chiude da solo? Il suo aggiornatore sta installando una build più recente all'interno del prefix in esecuzione. Fai l'aggiornamento in modo controllato invece — mantiene il tuo prefix e il tuo ID Radmin:
./RadminVPN-Linux-x86_64.AppImage --updatePoi disattiva "Aggiornamenti automatici" nelle impostazioni di Radmin così smette di provarci. Dettagli in L'aggiornatore automatico di Radmin.
Prerequisiti (build da sorgente / non-AppImage)
- Wine >= 11.0 (testato su Wine 11.5 Arch Linux e su Wine 11.6 Ubuntu 24.04)
- mingw-w64 cross-compilatori (
i686-w64-mingw32-gcc,x86_64-w64-mingw32-gcc) — per compilare da sorgente - iconv (glibc) — per il parsing dei log del servizio
- sudo — per la creazione del dispositivo TAP e il routing
- Supporto kernel TUN/TAP — di solito integrato, verifica con
modprobe tun - Programma di installazione di Radmin VPN — scaricato automaticamente se assente. La versione contro cui questo progetto è validato è fissata in un unico punto,
RADMIN_VERSIONinlib.sh(attualmente 2.1.4951.1; anche 2.0.4899.9 funziona). Radmin VPN 1.4 non è supportato — si registra e apre l'adapter ma non finisce mai la connessione sotto lo shim Wine, lasciando la GUI bloccata su "Connessione...".
Arch Linux
sudo pacman -S wine mingw-w64-gcc
Ubuntu/Debian
sudo apt install wine64 wine32 gcc-mingw-w64
Avvio rapido da sorgente
git clone https://github.com/baptisterajaut/radmin-vpn-linux.git
cd radmin-vpn-linux
# Opzione A: scarica i binari precompilati dalle 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/
# Opzione B: compila da sorgente
make
# Scarica il programma di installazione di Radmin VPN da https://www.radmin-vpn.com/
./run.sh --installer ~/Downloads/Radmin_VPN_*.exe
Alle esecuzioni successive, basta:
./run.sh
Flag da riga di comando
| Flag | Descrizione |
|---|---|
--installer <path> | Percorso del programma di installazione Radmin_VPN_*.exe (solo al primo avvio). |
--no-ui | Esegue il servizio senza avviare la GUI di Radmin. |
--update | Aggiorna Radmin alla versione fissata sul posto. Mantiene il prefix, quindi l'RID registrato con Famatech sopravvive. |
--no-broadcast-routes | Non aggiunge le route broadcast/multicast → TAP. |
--filter-ui | Avvia l'interfaccia GTK4 opzionale per il filtraggio dei pacchetti (disattivata di default). |
--fix-chat | Applica una patch a qwindows.dll di Qt per correggere il crash della finestra chat sotto Wine (disattivato di default). |
L'aggiornatore automatico di Radmin
La GUI di Radmin può scaricare una build più recente ed eseguire il suo programma di installazione dentro il prefix attivo,
il che uccide la GUI e fa fallire il servizio in esecuzione (il log della GUI mostra poi un programma di installazione
sotto AppData\\Local\\Temp). Due difese: il launcher fornisce la build validata corrente così l'aggiornatore non ha nulla da spingere, e una GUI che muore non si porta più dietro il tunnel — viene riavviata una volta, poi la VPN continua a girare headless. Per aggiornare
deliberatamente, usa ./run.sh --update, che prima ferma tutto. Disattivare
"Aggiornamenti automatici" nelle impostazioni della GUI evita del tutto la corsa.
Sia --filter-ui che --fix-chat sono opzionali. L'interfaccia di filtro richiede il binario rvpn_filter_ui
(compilato da make); la correzione chat richiede patch_qwindows_font.py e un interprete Python 3.
Modalità headless / server
Due launcher aggiuntivi eseguono Radmin VPN senza desktop locale — per un VPS o un host in datacenter. Entrambi installano e configurano esattamente come run.sh (stesso wineprefix, stesso flusso --installer al primo avvio, stesso bridge TAP); differiscono solo su come si raggiunge la GUI.
run_datacenter.sh — GUI tramite browser
Esegue la vera GUI di Radmin su un display virtuale (Xvfb) e la serve tramite VNC + noVNC, così puoi configurare le tue reti da un browser e poi lasciarla in esecuzione.
sudo apt install -y xvfb x11vnc websockify novnc # oppure: make install-datacenter-deps
./run_datacenter.sh --installer ~/Downloads/Radmin_VPN_*.exe
| Flag | Default | Descrizione |
|---|---|---|
--vnc-port <n> | 5900 | Porta per il server x11vnc. |
--web-port <n> | 6080 | Porta per l'endpoint web noVNC. |
--vnc-password <pw> | (nessuna) | Password per la sessione VNC / web. |
--web-bind <addr> | 127.0.0.1 | Indirizzo su cui noVNC ascolta. |
Di default noVNC si lega a 127.0.0.1, quindi è raggiungibile solo tramite tunnel SSH:
ssh -L 6080:localhost:6080 your-vps # poi apri http://localhost:6080/vnc.html
Per esporlo pubblicamente, passa --web-bind 0.0.0.0 insieme a --vnc-password — altrimenti chiunque raggiunga la porta web finisce su un desktop non autenticato e con privilegi di root. Lo script stampa un avviso ben visibile se ti leghi pubblicamente senza password.
run_vps.sh — solo servizio, GUID fisso
Avvia il servizio headless con un GUID TAP hardcoded (niente WMI Wine richiesto) e nessuna GUI. Se un enumeratore di rete personalizzato (rv_net_enum.exe, non incluso in questo repo) è presente una directory sopra, viene avviato; altrimenti il servizio gira semplicemente finché non premi Ctrl+C. Solo --installer è accettato.