Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
radmin-vpn-linux — شغّل Radmin VPN على Linux عبر Wine — برنامج تشغيل مخصص، جسر TAP، صفر فقدان للحزم | Kitploit
أدوات/GitHubGitHub/baptisterajaut/radmin-vpn-linux
الحركة الجانبيةالهندسة العكسيةأمن الشبكاتاختبار الاختراقالأدوات والمكوناتأمان الأجهزة وإنترنت الأشياءتحليل الملفات الثنائيةالفريق الأحمر
GitHubbaptisterajaut/radmin-vpn-linux

radmin-vpn-linux

شغّل Radmin VPN على Linux عبر Wine — برنامج تشغيل مخصص، جسر TAP، صفر فقدان للحزم

عرض المستودع
1439126منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
# Radmin VPN لأنظمة لينكس

شغّل [Radmin VPN](https://www.radmin-vpn.com/) على لينكس عبر Wine. انضم إلى شبكات VPN، وشاهد الأقران، والعب الألعاب — كل ذلك دون جهاز افتراضي يعمل بنظام ويندوز.

> لم أبنِ هذا لأنه كان أسهل من جهاز افتراضي. بنيته لأنني اعتقدت أنه أسهل من جهاز افتراضي.

**كود بمساعدة الذكاء الاصطناعي.** بُني بالتعاون بين إنسان وClaude (Anthropic). كُتب السائق، والخطافات، والجسر بهندسة عكسية موسّعة بمساعدة الذكاء الاصطناعي لبروتوكول سائق Radmin VPN غير الموثّق باستخدام Ghidra. **هذا يعمل، لكن دون أي ضمانات.** غير مرتبط بـ Famatech. Radmin VPN برنامج ملكي — نزّله بنفسك من [radmin-vpn.com](https://www.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
```

## بدء سريع (AppImage، موصى به)

احصل على `RadminVPN-Linux-x86_64.AppImage` من [أحدث إصدار](https://github.com/baptisterajaut/radmin-vpn-linux/releases/latest). لا شيء لتثبيته — Wine مضمّن.

> **إصدارات مرشحة** (مثل `v1.0.0-rc1`) تُنشر كإصدارات *ما قبل الإصدار* على GitHub. رابط `latest` أعلاه يشير دائمًا إلى أحدث بناء *مستقر*، لذا لن تظهر الإصدارات المرشحة هناك — احصل عليها من [قائمة الإصدارات الكاملة](https://github.com/baptisterajaut/radmin-vpn-linux/releases).

```bash
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 الخاص بك:
> ```bash
> ./RadminVPN-Linux-x86_64.AppImage --update
> ```
> ثم أوقف "التحديثات التلقائية" في إعدادات Radmin حتى يتوقف عن المحاولة. التفاصيل في
> [مُحدِّث Radmin التلقائي الخاص به](#radmins-own-auto-updater).

## المتطلبات الأساسية (بناء من المصدر / غير AppImage)

- **Wine** >= 11.0 (مُختبَر على Wine 11.5 في Arch Linux وعلى Wine 11.6 في Ubuntu 24.04)
- **مترجمات mingw-w64** المتقاطعة (`i686-w64-mingw32-gcc`, `x86_64-w64-mingw32-gcc`) — للبناء من المصدر
- **iconv** (glibc) — لتحليل سجلات الخدمة
- **وصول sudo** — لإنشاء جهاز TAP والتوجيه
- **دعم نواة TUN/TAP** — مدمج عادةً، تحقق منه مع `modprobe tun`
- **مثبّت Radmin VPN** — يُنزَّل تلقائيًا إذا كان غائبًا. الإصدار الذي تم التحقق من هذا المشروع ضده مثبّت في مكان واحد، `RADMIN_VERSION` في `lib.sh` (حاليًا **2.1.4951.1**؛ 2.0.4899.9 يعمل أيضًا). **Radmin VPN 1.4 غير مدعوم** — يسجّل ويفتح المحول لكنه لا يكمل الاتصال أبدًا تحت طبقة Wine، تاركًا الواجهة الرسومية عالقة عند "Connecting...".

### Arch Linux

```bash
sudo pacman -S wine mingw-w64-gcc
```

### Ubuntu/Debian

```bash
sudo apt install wine64 wine32 gcc-mingw-w64
```

## بدء سريع من المصدر

```bash
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
```

في التشغيلات اللاحقة، فقط:

```bash
./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 التلقائي الخاص به

يمكن لواجهة 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، بحيث يمكنك تهيئة شبكاتك من متصفح ثم تركها تعمل.

```bash
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:

```bash
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` فقط.

```bash
./run_vps.sh --installer ~/Downloads/Radmin_VPN_*.exe
```

## البناء من المصدر

يتطلب مترجمات `mingw-w64` المتقاطعة. الملفات الثنائية المبنية مسبقًا متاحة من [الإصدارات](https://github.com/baptisterajaut/radmin-vpn-linux/releases) (مبنية بواسطة CI على كل إصدار موسوم) إذا كنت لا تريد تثبيت mingw.

```bash
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 أصلية، تُحمَّل مسبقًا في `wineserver`
- `build/rvpn_filter_ui` — واجهة تصفية حزم GTK4 اختيارية (`--filter-ui`)

### بناء AppImage

```bash
make
./packaging/build-appimage.sh       # → packaging/dist/RadminVPN-Linux-x86_64.AppImage
```

ينزّل بناء Kron4ek Wine-Staging `amd64-wow64` (~100 ميجابايت) و`appimagetool` عند أول تشغيل، ويخزّن كليهما في `packaging/dist/`. يتطلب `curl` وImageMagick (`convert`).

## ما يفعله `run.sh`

1. **أول تشغيل**: يثبّت Radmin VPN عبر Wine (`/VERYSILENT`)، يزيل سائق NDIS الحقيقي (غير متوافق مع Wine)، يسجّل سائقنا المخصص
2. **كل تشغيل**: ينشئ جهاز TAP، يبدأ جسر TAP-to-FIFO، يهيئ سجل Wine (GUID المحول، خدمة السائق)، يطلق خدمة Radmin VPN والواجهة الرسومية
3. **عند الخروج** (Ctrl+C أو إغلاق الواجهة الرسومية): يقتل Wine، يزيل جهاز TAP، ينظف

يُخزَّن wineprefix في `./wineprefix/` (تشغيل من المصدر) أو `~/.local/share/radmin-vpn-linux/wineprefix/` (AppImage). يُنشأ عنوان MAC دائم عند أول تشغيل ويُحفظ في wineprefix.

## البنية

| المكوّن | الوصف |
|---|---|
| `rvpnnetmp.sys` | سائق نواة Wine. يحاكي منفذ NDIS المصغّر لـ Radmin. يعالج IOCTLs (VERSION, STATUS, SETUP, PEERMAC)، ترميز/فك ترميز إطارات TLV، قائمة انتظار IRP للإدخال/الإخراج المتداخل، توجيه الإطارات المستند إلى MAC لدعم الأقران المتعددين. |
| `adapter_hook.dll` | مكتبة DLL مرافقة تُحمَّل مع RvControlSvc.exe. خطافات IAT: يعيد تسمية محول TAP ليطابق الاسم المتوقع لـ Radmin، يلغي `RegSetKeySecurity` للالتفاف على خلل Wine SCM حيث تفتقر الخدمات إلى SID النظام، ويجيب على عمليات البحث الأربع `Perf{Increment,Decrement}ULong{,Long}CounterValue` التي لا يصدرها `advapi32` الخاص بـ Wine. هذا الأخير ليس تجميليًا: يحل Radmin 2.1 سبع نقاط دخول perflib في سلسلة كل-أو-لا-شيء، ثم يمرر كائن العداد الناتج لكل قرين كحمولة لمصافحة الأقران — لذا فإن أربعة تصديرات قياس عن بُعد مفقودة تُسقط مسار البيانات بالكامل (المشكلة #24، `docs/wine-perflib.md`). |
| `tap_bridge` | ملف ثنائي أصلي للينكس. يمرر إطارات الإيثرنت بين جهاز TAP والأنابيب المسماة (FIFOs) التي يقرأها/يكتبها سائق Wine. |
| `netsh.exe` / `netsh64.exe` | يستبدل كعب netsh الخاص بـ Wine (32-بت في SysWOW64، 64-بت في System32). يترجم أوامر Windows `netsh interface ip` إلى أوامر لينكس `ip addr`/`ip link` عبر مرحّل قائم على الملفات، مع التحقق من العنوان قبل وصوله إلى المرحّل الجذري. |
| `rvpn_launcher.exe` | يحقن `adapter_hook.dll` في عملية خدمة Radmin عبر `CreateRemoteThread` + `LoadLibrary`. |
| `drvinst.exe` | كعب لا يعمل شيئًا يستبدل مثبّت سائق NDIS الحقيقي لـ Radmin. يشغّله Radmin في وقت التشغيل لتحميل `NetMP60_1_1_64.sys`، الذي يُجهض Wine 11.x عبر `NdisInitializeReadWriteLock` (المشكلة #12)؛ وبما أن سائقنا يستبدل ذلك المحول بالفعل، يجب ألا يُحمَّل الحقيقي أبدًا. |
| `rvpn_dnsfix.so` | طبقة `LD_PRELOAD` أصلية، تُحقن في إطلاق الخدمة فقط. تقصر DNS العكسي (`getnameinfo`/`gethostbyaddr`) لعناوين IPv4/IPv6 الخاصة عند طبقة glibc. يقوم Radmin بحل PTR لكل عنوان مرشح محلي يجمعه؛ على مضيف يحجب محللُه استعلامات PTR الخاصة بـ RFC1918، يتعطل ذلك لدقائق وتسجّل الخدمة لكنها لا تصبح جاهزة أبدًا (المشكلة #16). يصدر البحث من جانب Unix الخاص بـ Wine، خارج متناول أي خطاف داخل `adapter_hook.dll`. |
| `rvpn_reuseport.so` | طبقة `LD_PRELOAD` أصلية، تُحمَّل مسبقًا في `wineserver` (وليس في الخدمة — مآخذ Unix تنتمي إلى wineserver). يضبط `SO_REUSEPORT` على كل مأخذ TCP عند الإنشاء. يقوم Radmin 2.1 بعبور NAT بإعادة استخدام المنفذ عبر TCP: يربط مستمعًا بـ `uplink:PORT`، يعلن عن ذلك التعيين، ثم يربط مآخذ الأقران الصادرة بنفس المنفذ المحلي مع `SO_REUSEADDR`، وهو ما يسمح به ويندوز. يترجم Wine ذلك الطلب إلى لا خيار على مستوى Unix لـ TCP (`server/sock.c`، `SO_REUSEPORT` مُجمَّع لـ `__APPLE__` فقط)، لذا يرفض النواة الربط الثاني ويرى العميل `WSAEACCES` على كل اتصال قرين (المشكلة #24). لا يزال حفظ تعارضات wineserver يعمل، لذا فإن عمليات الربط التي يرفضها ويندوز ما زالت مرفوضة. |
| `rvpn_filter_ui` | واجهة GTK4 اختيارية لفحص وتصفية الحزم العابرة للجسر. مطفأة افتراضيًا؛ أطلقها مع `--filter-ui`. |

## استكشاف الأخطاء وإصلاحها

**الواجهة الرسومية عالقة عند "Waiting for adapter"**: السائق لا يُحمَّل. تحقق من أن `/tmp/radmin_driver.log` موجود وله محتوى. إذا كان فارغًا، فقد يكون تسجيل خدمة السائق مفقودًا — احذف wineprefix وأعد التشغيل.

**مسجّل لكنه لا يصبح "ready" أبدًا**: تصل الخدمة إلى `Registered as #…` وتتوقف هناك. سببان معروفان، كلاهما مذكور في كتلة التشخيص المطبوعة عند انتهاء المهلة. (أ) وكيل شفاف أو نفق بسياسة توجيه خاصة به (sing-box، clash/mihomo، v2ray…) يعترض الاتصال الصادر — مثل هذه الحزم تجيب على مصافحة TCP محليًا، لذا يقرأ المأخذ ESTABLISHED بينما لا يُمرَّر شيء. استبعد `26.0.0.0/8` من مساراته، و`*.radminte.com` أيضًا إذا كان يمكنك الوصول إليها مباشرة. (ب) محلل يحجب عمليات البحث العكسية للعناوين الخاصة (عادةً ما يكون `docker0` عند `172.17.0.1` هو المحفّز). يتعامل `rvpn_dnsfix.so` مع هذا، لكنه طبقة 64-بت: نظام Wine مبني كـ *old-wow64* يتجاهله. الحل البديل هناك — أضف سطرًا للعنوان إلى `/etc/hosts`، أو استخدم `contrib/run-in-netns.sh` (الذي يجعل الخدمة "ready" لكنه يُبقي VPN داخل مساحة اسم: لا يمكن لتطبيقات المضيف الوصول إلى `26.0.0.0/8`، اقرأ التحذير في ترويسته).

**تطبيقات Wine *الأخرى* لديك تعطلت بعد تشغيل Radmin (`unimplemented function ndis.sys.NdisInitializeReadWriteLock`)**: الإصدارات حتى 1.0.0 سمحت بتشغيل `winemenubuilder.exe` الخاص بـ Wine، الذي يعيد كتابة ارتباطات ملفات ويندوز على المضيف (`.exe`, `.msi`, `.lnk`, `.reg`, `.chm`, …) لتُفتح في *prefix* الخاص بنا. ثم تبدأ برامج ويندوز الأخرى داخل prefix الخاص بـ Radmin، وإذا كان منفذ NDIS المصغّر الحقيقي لـ Radmin (`RvNetMP60`) ما زال مسجلاً هناك، فإن كل واحد منها يُجهض على كعب ndis ذلك. يعطّل 1.0.1 `winemenubuilder` في كل مكان، وينظف الإدخالات التي كتبها لـ prefix الخاص بـ Radmin، ويزيل `RvNetMP60` من `system.reg` دون اتصال — فقط شغّل 1.0.1 مرة واحدة وسيتم إصلاح كلاهما. لاحظ أن `echo $WINEPREFIX` لا يُظهر شيئًا في هذه الحالة: الاختطاف يعيش في `~/.local/share/applications/*.desktop`، وليس في بيئتك. التنظيف اليدوي، إذا فضّلت:

```bash
grep -rl 'WINEPREFIX=[^"]*radmin' ~/.local/share/applications --include='*.desktop' | xargs -r rm
rm -rf ~/.local/share/applications/wine/Programs/"Radmin VPN"
update-desktop-database ~/.local/share/applications
```

**متصل وفي شبكاتك، لكن لا يتصل أي قرين أبدًا (`error: 0x700000000`)**: هذا هو Radmin 2.1 على بناء أقدم من 1.1.0. يبدو سجل الخدمة سليمًا حتى اتصالات الأقران، التي تفشل بعد ذلك في حلقة بهذا الرمز وتستسلم أخيرًا مع `node offline`. فجوتان مستقلتان في Wine، كلتاهما أُصلحتا في 1.1.0 وكلتاهما موضحة أعلاه في صفّي `rvpn_reuseport.so` و`adapter_hook.dll`: لا يضبط Wine أي خيار على مستوى Unix لـ TCP `SO_REUSEADDR`، لذا يحصل عبور NAT بإعادة استخدام المنفذ في 2.1 على `WSAEACCES` عند كل اتصال قرين؛ و`advapi32` الخاص بـ Wine يفتقد أربعة تصديرات perflib، وبدونها يرسل 2.1 حمولة فارغة كمصافحة أقرانه. لاحظ أن الرمز نفسه لا يحمل أي معلومات — إنه الاستسلام العام في نهاية سلسلة الأخطاء، لذا لا تحاول قراءة نظام فرعي منه. الإصلاح هو تحديث هذا المشروع إلى 1.1.0؛ لا شيء يحتاج إلى التغيير على جانب Radmin.

**الخدمة تموت فورًا**: تحقق من `/tmp/radmin_service.log` بحثًا عن أخطاء Wine. السبب الشائع: wineprefix قديم من إصدار Wine مختلف. احذف `./wineprefix/` وأعد التشغيل.

**0% فقدان حزم مع قرين واحد، فقدان عالٍ مع العديد**: كان هذا هو الخطأ الأصلي — أُصلح بتوجيه الإطارات المستند إلى MAC في السائق. تأكد من استخدامك لأحدث بناء.

**أول ping بطيء (~1 ثانية)**: أحدث إصدار يخزّن عناوين MAC مؤقتًا لكل حزمة IP يراها السائق. إذا أرسل عنوان IP الهدف حزمة واحدة على الأقل بينما كان السائق يعمل، فإن MAC مخزّن بالفعل ولا يوجد تأخير ARP. فقط الأقران الصامتون تمامًا (أولئك الذين لم يرسلوا حزمة أبدًا) يتطلبون حل ARP الأولي، الذي يضيف ~1 ثانية.

**ألعاب الشبكة المحلية لا ترى أقرانًا آخرين / "الاكتشاف التلقائي" معطوب**: تكتشف معظم ألعاب الشبكة المحلية بعضها البعض باستخدام استكشافات البث (UDP إلى `255.255.255.255`) أو البث المتعدد (`224.0.0.0/4`). على ويندوز، يعلن سائق TAP الخاص بـ Radmin عن نفسه كواجهة مفضلة لتلك التدفقات؛ على لينكس عليك إخبار النواة صراحةً. يثبّت `run.sh` الآن مسارين إضافيين عند ظهور VPN:

```
ip route append 255.255.255.255/32 dev radminvpn0 metric 0
ip route append 224.0.0.0/4        dev radminvpn0 metric 0
```

الأثر الجانبي: mDNS / Bonjour / SSDP على شبكتك المحلية الفعلية (Chromecast، AirPrint، Sonos، أجهزة التلفاز الذكية، ...) ستمر عبر VPN أثناء تشغيلها. إذا كنت بحاجة إلى اكتشاف الشبكة المحلية وRadmin بالتوازي، شغّل مع `--no-broadcast-routes`:

```bash
./run.sh --no-broadcast-routes
```

المسارات محصورة في جهاز TAP، لذا تُزال تلقائيًا عندما يهدم `run.sh` الجهاز عند الخروج.

## القيود المعروفة

- يمكن تشغيل مثيل واحد فقط في كل مرة (FIFOs مشتركة في `/tmp/`)
- مسار on-link `26.0.0.0/8` يؤثر على النظام بأكمله أثناء التشغيل (يُنظَّف عند الخروج)
- مسارات البث الافتراضية (`255.255.255.255/32`) والبث المتعدد (`224.0.0.0/4`) تُوجَّه إلى VPN — عطّلها مع `--no-broadcast-routes` إذا كنت بحاجة إلى mDNS / SSDP للشبكة المحلية بالتوازي
- إصدارات Wine الأقدم (< 11.0) قد يكون لها سلوك إدخال/إخراج متداخل مختلف يكسر السائق

## ملاحظات

**التفاف حول خلل Wine.** خطاف `RegSetKeySecurity` يلتف حول [قيود Wine المعروفة](https://forum.winehq.org/viewtopic.php?t=37183) حيث لا تتلقى الخدمات SID النظام (S-1-5-18). قد يُصلح هذا في المنبع في إصدار Wine مستقبلي.

## الاعتمادات

الهندسة العكسية وطبقة Wine: [@baptisterajaut](https://github.com/baptisterajaut).

- [@ayozetr](https://github.com/ayozetr) — تتبّع تعليق "يسجّل لكنه لا يصبح جاهزًا أبدًا" إلى
  بحث DNS عكسي لعنوان خاص حجبه محلل المضيف، وأثبته بإعادة إنتاج
  بـ bare-libc بعد التخلص من أربع نظريات خاطئة (بما فيها نظريتي)، وكتب
  الأصل لـ `src/rvpn_dnsfix.c` و`contrib/run-in-netns.sh`.
- [@gringoestrangeiro](https://github.com/gringoestrangeiro) — عمل استقرار لينكس: مرشحات الحزم،
  ذاكرة ARP المؤقتة، استرداد الانهيار، أوضاع بدون واجهة ومراكز البيانات.
- [@yuxiaole-bili](https://github.com/yuxiaole-bili) — اكتشف أن Wine SCM يبدأ تلقائيًا مثيل خدمة
  ثانٍ غير مربوط يتنافس مع المثيل المحقون على المحول.
- [@D1spell-tech](https://github.com/D1spell-tech), [@Milkiway13](https://github.com/Milkiway13) و
  كل من لصق كتلة تشخيص كاملة — مضيفان مستقلان هما ما يجعل الخطأ قابلاً للاكتشاف.

## الترخيص

GPL-3.0. انظر [LICENSE](https://github.com/baptisterajaut/radmin-vpn-linux/blob/main/LICENSE).

بروحه، هذا الكود في المجال العام — افعل ما تشاء به. GPL هنا كشبكة أمان قانونية: يحمي صراحةً الهندسة العكسية للتوافق التشغيلي، وهو ما يفعله هذا المشروع. حزام وحمالات.

Radmin VPN برنامج ملكي لشركة Famatech Corp. يوفر هذا المشروع أدوات توافق تشغيلي فقط — لا يُضمَّن أو يُوزَّع أي كود من Famatech.
تنزيل الأداة