
شغّل Radmin VPN على Linux عبر Wine — برنامج تشغيل مخصص، جسر TAP، صفر فقدان للحزم
شغّل Radmin VPN على لينكس عبر Wine. انضم إلى شبكات VPN، وشاهد الأقران، والعب الألعاب — كل ذلك دون جهاز افتراضي يعمل بنظام ويندوز.
لم أبنِ هذا لأنه كان أسهل من جهاز افتراضي. بنيته لأنني اعتقدت أنه أسهل من جهاز افتراضي.
كود بمساعدة الذكاء الاصطناعي. بُني بالتعاون بين إنسان وClaude (Anthropic). كُتب السائق، والخطافات، والجسر بهندسة عكسية موسّعة بمساعدة الذكاء الاصطناعي لبروتوكول سائق Radmin VPN غير الموثّق باستخدام Ghidra. هذا يعمل، لكن دون أي ضمانات. غير مرتبط بـ Famatech. Radmin VPN برنامج ملكي — نزّله بنفسك من radmin-vpn.com. استخدمه على مسؤوليتك الخاصة.
تتحدث خدمة Radmin VPN الخاصة بويندوز مع سائق NDIS مصغّر لمحول الشبكة الافتراضي الخاص بها. لا يدعم Wine تقنية NDIS، لذا نستبدل السائق بتنفيذنا الخاص الذي يجسر إلى جهاز TAP في لينكس. تتعامل مكتبة خطاف 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 من تلقاء نفسه؟ مُحدِّثه الخاص يقوم بتثبيت بناء أحدث داخل الـ prefix قيد التشغيل. قم بالترقية بطريقة محكومة بدلاً من ذلك — فهي تحافظ على الـ prefix الخاص بك وعلى معرّف Radmin الخاص بك:
./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، تاركًا الواجهة الرسومية عالقة عند "Connecting...".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
# الخيار أ: تنزيل ملفات ثنائية مبنية مسبقًا من إصدارات GitHub
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/
# الخيار ب: البناء من المصدر
make
# تنزيل مثبّت Radmin VPN من https://www.radmin-vpn.com/
./run.sh --installer ~/Downloads/Radmin_VPN_*.exe
في التشغيلات اللاحقة، فقط:
./run.sh
| الخيار | الوصف |
|---|---|
--installer <path> | المسار إلى مثبّت Radmin_VPN_*.exe (لأول تشغيل فقط). |
--no-ui | تشغيل الخدمة دون إطلاق واجهة Radmin الرسومية. |
--update | ترقية Radmin إلى الإصدار المثبّت في مكانه. يحافظ على الـ prefix، لذا يبقى معرّف RID المسجّل لدى Famatech. |
--no-broadcast-routes | عدم إضافة مسارات البث/البث المتعدد → TAP. |
--filter-ui | إطلاق واجهة تصفية الحزم GTK4 الاختيارية (مطفأة افتراضيًا). |
--fix-chat | تصحيح qwindows.dll الخاص بـ Qt لإصلاح انهيار نافذة الدردشة تحت Wine (مطفأ افتراضيًا). |
يمكن لواجهة Radmin الرسومية تنزيل بناء أحدث وتشغيل مثبّته داخل الـ prefix الحي،
مما يقتل الواجهة الرسومية ويُعطّل الخدمة قيد التشغيل (ثم يُظهر سجل الواجهة الرسومية مثبّتًا
تحت AppData\\Local\\Temp). دفاعان: يُرسل المُشغِّل البناء الحالي المُتحقق منه
بحيث لا يكون لدى المُحدِّث ما يدفعه، والواجهة الرسومية التي تموت لم تعد تأخذ النفق
معها — يُعاد تشغيلها مرة واحدة، ثم تستمر VPN في العمل بدون واجهة. للترقية
بشكل متعمد، استخدم ./run.sh --update، الذي يوقف كل شيء أولاً. إيقاف
"التحديثات التلقائية" في إعدادات الواجهة الرسومية يتجنب السباق تمامًا.
كل من --filter-ui و --fix-chat اختياريان. تحتاج واجهة التصفية إلى ملف rvpn_filter_ui
الثنائي (المبني بواسطة make)؛ إصلاح الدردشة يحتاج إلى patch_qwindows_font.py ومفسّر Python 3.
مُشغِّلان إضافيان يشغّلان Radmin VPN دون سطح مكتب محلي — لخادم VPS أو مركز بيانات. كلاهما يُثبَّت ويُهيَّأ تمامًا مثل run.sh (نفس wineprefix، نفس تدفق أول تشغيل --installer، نفس جسر TAP)؛ يختلفان فقط في كيفية الوصول إلى الواجهة الرسومية.
run_datacenter.sh — واجهة رسومية عبر المتصفحيشغّل واجهة 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 — وإلا فإن أي شخص يصل إلى منفذ الويب سيهبط على سطح مكتب غير مصادق عليه وذو صلاحيات جذر. يطبع السكربت تحذيرًا صاخبًا إذا ربطت للعامة دون كلمة مرور.
run_vps.sh — خدمة فقط، GUID ثابتيبدأ الخدمة بدون واجهة مع GUID TAP مكتوب يدويًا (بدون Wine WMI مطلوب) وبدون واجهة رسومية إطلاقًا. إذا كان عداد الشبكات المخصص (rv_net_enum.exe، غير مضمّن في هذا المستودع) موجودًا في مجلد أعلى، يتم تشغيله؛ وإلا تعمل الخدمة فقط حتى تضغط Ctrl+C. يُقبل --installer فقط.
./run_vps.sh --installer ~/Downloads/Radmin_VPN_*.exe
يتطلب مترجمات mingw-w64 المتقاطعة. الملفات الثنائية المبنية مسبقًا متاحة من الإصدارات (مبنية بواسطة CI على كل إصدار موسوم) إذا كنت لا تريد تثبيت mingw.
make # بناء كل شيء إلى build/
make clean # إزالة نواتج البناء
ينتج:
build/rvpnnetmp.sys — سائق نواة Wine (PE 64-بت)build/adapter_hook.dll — مكتبة خطاف DLL (PE 32-بت)build/rvpn_launcher.exe — حاقن DLL (PE 32-بت)build/netsh.exe — بديل netsh (PE 32-بت، يُثبَّت إلى SysWOW64)build/netsh64.exe — بديل netsh (PE 64-بت، يُثبَّت إلى System32)build/drvinst.exe — كعب لا يعمل شيئًا يستبدل مثبّت سائق NDIS الحقيقي لـ Radmin (المشكلة #12)build/tap_bridge — جسر TAP أصلي للينكسbuild/rvpn_dnsfix.so — طبقة LD_PRELOAD أصلية، تُحمَّل مسبقًا في الخدمة فقطbuild/rvpn_reuseport.so — طبقة LD_PRELOAD أصلية، تُحمَّل مسبقًا في wineserverbuild/rvpn_filter_ui — واجهة تصفية حزم GTK4 اختيارية (--filter-ui)