
Запуск Radmin VPN на Linux через Wine — собственный драйвер, TAP-мост, нулевая потеря пакетов
Запуск Radmin VPN на Linux через Wine. Подключайтесь к VPN-сетям, просматривайте пиров, играйте в игры — всё без Windows-виртуальной машины.
Я сделал это не потому, что это проще, чем виртуальная машина. Я сделал это, потому что думал, что это проще, чем виртуальная машина.
Код, созданный с помощью ИИ. Разработан совместно человеком и Claude (Anthropic). Драйвер, хуки и мост были написаны с использованием обширной обратной разработки с помощью ИИ недокументированного протокола драйвера Radmin VPN с использованием Ghidra. Это работает, но без каких-либо гарантий. Не связано с Famatech. Radmin VPN является проприетарным ПО — скачайте его самостоятельно с radmin-vpn.com. Используйте на свой страх и риск.
Служба Windows Radmin VPN взаимодействует с NDIS-минипорт-драйвером для своего виртуального сетевого адаптера. Wine не поддерживает NDIS, поэтому мы заменяем драйвер нашей собственной реализацией, которая связывается с Linux TAP-устройством. Hook-DLL обрабатывает проблемы совместимости с Wine (именование адаптера, права реестра). В результате получается полностью функциональный клиент Radmin VPN, работающий нативно под Wine.
Linux app ← TAP (radminvpn0) ← tap_bridge ← FIFO ← rvpnnetmp.sys (Wine driver) ← RvControlSvc.exe
Загрузите RadminVPN-Linux-x86_64.AppImage из последнего релиза. Ничего устанавливать не нужно — Wine уже включён.
Кандидаты в релизы (например,
v1.0.0-rc1) публикуются как GitHub предварительные релизы. Ссылкаlatestвыше всегда указывает на новейшую стабильную сборку, поэтому предварительные релизы там не появятся — загружайте их из полного списка релизов.
chmod +x RadminVPN-Linux-x86_64.AppImage
./RadminVPN-Linux-x86_64.AppImage
При первом запуске загружается установщик Radmin VPN, с которым проект проверен (или укажите свой с помощью --installer). Откроется терминал с прогрессом, и потребуется один запрос пароля sudo для настройки TAP.
Постоянное состояние (wineprefix, MAC, журналы) хранится в ~/.local/share/radmin-vpn-linux/.
Radmin закрывается сам по себе? Его собственный обновлятор устанавливает новую сборку внутри работающего префикса. Выполните обновление контролируемым способом — это сохранит ваш префикс и ваш Radmin ID:
./RadminVPN-Linux-x86_64.AppImage --updateЗатем отключите «Автоматические обновления» в настройках Radmin, чтобы он перестал пытаться. Подробности в собственном автообновлении Radmin.
i686-w64-mingw32-gcc, x86_64-w64-mingw32-gcc) — для сборки из исходниковmodprobe tunRADMIN_VERSION в lib.sh (в настоящее время 2.1.4951.1; 2.0.4899.9 также работает). Radmin VPN 1.4 не поддерживается — он регистрируется и открывает адаптер, но так и не завершает подключение под Wine-прокладкой, оставляя GUI зависшим на «Подключение...».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
# Вариант A: загрузить готовые бинарники из 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/
# Вариант B: собрать из исходников
make
# Загрузите установщик Radmin VPN с https://www.radmin-vpn.com/
./run.sh --installer ~/Downloads/Radmin_VPN_*.exe
При последующих запусках просто:
./run.sh
| Флаг | Описание |
|---|---|
--installer <path> | Путь к установщику Radmin_VPN_*.exe (только при первом запуске). |
--no-ui | Запуск службы без запуска GUI Radmin. |
--update | Обновление Radmin до зафиксированной версии на месте. Сохраняет префикс, поэтому RID, зарегистрированный в Famatech, сохраняется. |
--no-broadcast-routes | Не добавлять маршруты broadcast/multicast → TAP. |
--filter-ui | Запуск дополнительного GTK4 интерфейса фильтрации пакетов (по умолчанию выключен). |
--fix-chat | Патч qwindows.dll из Qt для исправления сбоя окна чата под Wine (по умолчанию выключен). |
GUI Radmin может загрузить новую сборку и запустить её установщик внутри живого префикса,
что убивает GUI и вызывает сбой работающей службы (журнал GUI затем показывает установщик
в AppData\\Local\\Temp). Две защиты: лаунчер поставляет текущую проверенную
сборку, поэтому обновлятору нечего устанавливать, а GUI, который умирает, больше не тянет за собой
туннель — он перезапускается один раз, затем VPN продолжает работать в фоновом режиме. Для намеренного
обновления используйте ./run.sh --update, который сначала останавливает всё. Отключение
«Автоматических обновлений» в настройках GUI полностью исключает гонку.
Оба параметра --filter-ui и --fix-chat являются опциональными. Интерфейсу фильтрации нужен бинарник rvpn_filter_ui
(собирается командой make); исправление чата требует patch_qwindows_font.py и интерпретатор Python 3.
Два дополнительных лаунчера запускают Radmin VPN без локального рабочего стола — для VPS или хостинга в дата-центре. Оба устанавливаются и настраиваются точно так же, как run.sh (тот же wineprefix, тот же процесс первого запуска с --installer, тот же TAP-мост); они отличаются только способом доступа к GUI.
run_datacenter.sh — GUI через браузерЗапускает настоящий GUI Radmin на виртуальном дисплее (Xvfb) и предоставляет к нему доступ через VNC + noVNC, так что вы можете настроить свои сети из браузера, а затем оставить его работать.
sudo apt install -y xvfb x11vnc websockify novnc # или: make install-datacenter-deps
./run_datacenter.sh --installer ~/Downloads/Radmin_VPN_*.exe
| Флаг | По умолчанию | Описание |
|---|---|---|
--vnc-port <n> | 5900 | Порт для сервера x11vnc. |
--web-port <n> | 6080 | Порт для веб-интерфейса noVNC. |
--vnc-password <pw> | (нет) | Пароль для сеанса VNC / веб-интерфейса. |
--web-bind <addr> | 127.0.0.1 | Адрес, на котором слушает noVNC. |
По умолчанию noVNC привязан к 127.0.0.1, поэтому доступ к нему возможен только через SSH-туннель:
ssh -L 6080:localhost:6080 your-vps # затем откройте http://localhost:6080/vnc.html
Чтобы открыть публичный доступ, передайте --web-bind 0.0.0.0 вместе с --vnc-password — в противном случае любой, кто получит доступ к веб-порту, попадёт на неаутентифицированный рабочий стол с правами root. Скрипт выводит громкое предупреждение, если вы открываете публичный доступ без пароля.
run_vps.sh — только служба, фиксированный GUID