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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
nmlinux — مجموعة أدوات شبكات موحدة لنظام لينكس — Python 3 + PySide6 | Kitploit
أدوات/GitHubGitHub/thongor77/nmlinux
تخطيط الشبكةمسح المنافذجمع المعلوماتتحليل DNS
GitHubthongor77/nmlinux

nmlinux

مجموعة أدوات شبكات موحدة لنظام لينكس — Python 3 + PySide6

عرض المستودع
92156منذ 27 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
# NMLinux · v1.7.14

[![Version](https://img.shields.io/badge/version-1.7.14-brightgreen.svg)](https://github.com/thongor77/nmlinux/releases/latest)
[![Python](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/)
[![License: GPL-2.0](https://img.shields.io/badge/license-GPL--2.0-green.svg)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS-orange.svg)](#installation)
[![Languages](https://img.shields.io/badge/languages-FR%20EN%20ES%20DE%20IT%20PT%20JA%20ZH-purple.svg)](#features)
[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://www.paypal.com/donate/?business=JFQGY7NU3ANCN&no_recurring=0&item_name=Every+donation%2C+no+matter+how+small%2C+helps+me+keep+this+project+alive.+Thank+you%21%0A&currency_code=EUR)
[![Bitcoin](https://img.shields.io/badge/Donate-Bitcoin-orange.svg)](#support-the-project)

**مجموعة أدوات شبكة موحّدة لنظامي Linux و macOS — للفحص والاتصال والتشخيص.**

NMLinux واجهة رسومية واحدة وموحّدة تجمع 29 وحدة شبكية في نافذة واحدة: مراقبة الواجهات، Wi-Fi، DNS، طرفية SSH، عارض الجدار الناري، خريطة الطوبولوجيا، traceroute، والمزيد. بُني من الصفر بلغة Python و PySide6 (Qt 6)، مع 8 لغات للواجهة ودون أي تبعيات خارجية تتجاوز أدوات النظام القياسية.

> [!NOTE]
> **NMLinux لا علاقة له بخدمة نظام Linux ‏`/usr/bin/NetworkManager` (NetworkManager من Red Hat/GNOME).** NMLinux مشروع مستقل بُني من الصفر بلغة Python و PySide6.

> بُني باستخدام [Claude Code](https://claude.ai/code) (Anthropic) وبمساهمة مؤلفه.

---

## عملية التطوير

بُني NMLinux بمساعدة الذكاء الاصطناعي — [Claude Code](https://claude.ai/code) تحديدًا — وهذا الأمر غير مخفي في أي مكان بهذا المستودع. تكاد كل مشروع برمجي جاد اليوم يستخدم الذكاء الاصطناعي في مكان ما ضمن مساره، سواء أعلن ذلك أم لا. لذا فإن سؤال "هل كان للذكاء الاصطناعي دور" ليس السؤال المثير للاهتمام. السؤال المثير للاهتمام هو: هل هناك ما يكتشف الأخطاء عندما يخطئ الذكاء الاصطناعي؟

إليك ما يكتشفها، إن كنت تفضّل التحقق بدلًا من الأخذ بكلامي:

- **162 اختبارًا** — `pytest tests/ -v`. منطق خالص بالإضافة إلى حفنة من اختبارات عناصر Qt الحقيقية (القوائم، الجداول)، دون تمويه الأجزاء المهمة.
- **[`docs/Decisions-Techniques.md`](https://github.com/thongor77/nmlinux/blob/main/docs/Decisions-Techniques.md)** — كل قرار تقني غير بديهي، والبدائل التي رُفضت، والأخطاء (بما فيها تلك التي أدخلها الذكاء الاصطناعي) التي اكتُشفت وأُصلحت، مع تدوين المنطق وراءها.
- **[`docs/Architecture.md`](https://github.com/thongor77/nmlinux/blob/main/docs/Architecture.md)** و**[`docs/Carte-des-Modules.md`](https://github.com/thongor77/nmlinux/blob/main/docs/Carte-des-Modules.md)** — البنية الفعلية للشيفرة، مُحدَّثة بما يتوافق مع ما يُصدَر فعليًا.
- **فحص اتساق i18n** يُشغَّل قبل كل إصدار لالتقاط مفاتيح الترجمة المفقودة عبر اللغات الثماني المدعومة.

لا شيء من ذلك موجود لأن الذكاء الاصطناعي غير موثوق. بل هو موجود لأنه لا ينبغي إصدار أي شيء دون عملية تتحقق منه — بما في ذلك الشيفرة المكتوبة يدويًا. احكم على المخرجات وكيفية التحقق منها، لا على الأداة التي ساعدت في كتابتها.

هل وجدت خطأً رغم ذلك؟ هذا مفيد، وليس محرجًا — [افتح تذكرة](https://github.com/thongor77/nmlinux/issues).

---

## المجتمع

**[مناقشات GitHub](https://github.com/thongor77/nmlinux/discussions) مفتوحة** — شارك ملاحظاتك، أو أبلغ عن أفكار، أو اطرح أسئلة، أو قل مرحبًا فقط. لدى المؤلف أكثر من 30 عامًا في البنية التحتية والعمليات، وقد بنى هذه الأداة لأن البرمجيات الجيدة والمجانية والبسيطة يجب أن تتوفر لنظام Linux أيضًا.

---

## لقطات الشاشة

> لقطات شاشة Linux من الإصدار v1.2.7 — ولقطات شاشة macOS من الإصدار v1.3.5. يحتوي التطبيق الآن على 29 وحدة و8 لغات للواجهة (FR/EN/ES/DE/IT/PT/JA/ZH).

**Linux (KDE)**

| لوحة المعلومات | الطوبولوجيا |
|-----------|----------|
| ![Dashboard](https://assets.kitploit.com/production/public/readmes/7933/8c4d0041882b63913349c955a86e2f91ede403d8642162453eae1442292e850c.png) | ![Topology](https://assets.kitploit.com/production/public/readmes/7933/54c953b3974b33d8284c134aef468d1f7c4370be41cce2142ee4445e9f176ce6.png) |

| Traceroute | Wi-Fi |
|------------|-------|
| ![Traceroute](https://assets.kitploit.com/production/public/readmes/7933/48ba34b1dae2a9287ad85466204d728bfa71f2752231fb3e560c74c8ad2a5c63.png) | ![Wi-Fi](https://assets.kitploit.com/production/public/readmes/7933/d271c0c8a07ce0a7fcfe6a936b95ecc2f0a75696a4e11fb5cab78900ae682b98.png) |

**macOS**

| لوحة المعلومات | Traceroute |
|-----------|------------|
| ![macOS Dashboard](https://assets.kitploit.com/production/public/readmes/7933/2c47bede13ac773aaedd774b25e8a4c7113dc191778bb6434f8582b191acaaf1.png) | ![macOS Traceroute](https://assets.kitploit.com/production/public/readmes/7933/9fbe381fe228ef64ebe1c8354ec9fdced669d7f6d6d7555db1c9418394ec65d0.png) |

---

## سجل التغييرات

### v1.7.14 — 2026-09-30

- **AppImage — إصلاح انهيار بدء التشغيل، المحاولة الثانية**: لم يكن إصلاح الإصدار v1.7.13 (إزالة المكتبات النظامية المُضمَّنة) كافيًا — إذ ظل مفسّر Python المضمَّن نفسه (`libpython3.14.so.1.0`، المبني مقابل glibc 2.44 الخاص بجهاز التطوير Arch Linux) يتطلب رموز glibc أحدث من تلك المتوفرة في جهاز الاختبار الخاص بفهرس AppImageHub (Ubuntu 22.04، glibc 2.35)، فاستمر AppImage في الانهيار مباشرة عند التشغيل. الآن يبني `build-appimage.sh` حزمة PyInstaller داخل حاوية `ubuntu:22.04` (عبر `podman`) بدلًا من المضيف، بحيث تُربط كل ثنائية مضمَّنة بالضبط بإصدار glibc الذي يحتاج AppImage إلى دعمه.

### v1.7.13 — 2026-09-30

- **AppImage — إصلاح انهيار بدء التشغيل (غير مكتمل، انظر v1.7.14)**: كان `build-appimage.sh` يضمّن مكتبات مشتركة (`libz.so.1`، `libstdc++.so.6`، `libX11.so.6`، `libfontconfig.so.1`، وغيرها) مباشرة من glibc الحديثة جدًا الخاصة بجهاز البناء Arch Linux. على التوزيعات الأقدم كان AppImage ينهار فورًا عند التشغيل (`GLIBC_ABI_DT_RELR' not found`)، وهو ما التقطه الاختبار الآلي لفهرس AppImageHub. تُزال هذه المكتبات الآن من الحزمة بحيث يعود AppImage إلى نسخ نظام المضيف نفسه، وهو النهج القياسي لـ AppImages.

### v1.7.12 — 2026-08-12

- **Traceroute — إصلاح**: تحت Flatpak (v1.7.11، انظر أدناه — أُزيل الآن)، كان `traceroute` يُحلّ دائمًا عبر `PATH` من خلال واجهة المضيف حتى عندما لم يكن لدى المضيف ثنائية `traceroute` حقيقية مثبَّتة، فلم يعد العامل أبدًا إلى `tracepath` وانتهى التتبع فورًا دون قفزات ودون عرض أي خطأ. الآن يعود إلى `tracepath` كلما لم يُنتج `traceroute` أي مخرجات قابلة للتحليل على الإطلاق، بغض النظر عن *سبب* فشله.
- **طرفية SSH — إصلاح askpass**: عندما تكون `DISPLAY`/`WAYLAND_DISPLAY` مضبوطة (أي جلسة رسومية) ولا يمتلك ssh طرفية نظيفة، فقد يحاول استخدام `$SSH_ASKPASS` لمطالبة كلمة المرور بدلًا من الطرفية المضمَّنة — مما يفشل في المصادقة بصمت إن لم يكن مساعد askpass مثبَّتًا. الآن يفرض `SSH_ASKPASS_REQUIRE=never` مرور مطالبات كلمة المرور دائمًا عبر الطرفية نفسها.
- **إزالة تغليف Flatpak**: أُوقف بيان KDE Linux المحلي الذي شُحن في v1.7.11. كشف التحقيق في خطأ مطالبة كلمة مرور SSH أعلاه عن قيد على مستوى النواة: لا يمكن لعملية مُمرَّرة عبر `flatpak-spawn --host` أن تصبح أبدًا مالك الطرفية المتحكِّمة للـ pty المُمرَّر (`TIOCSCTTY` مرفوض بـ `EPERM` — جلسة أخرى مختلفة وغير ذات صلة تملكه بالفعل؛ هذا حد أمني مقصود في النواة وليس خطأً). الحل الوحيد العامل (`script`، بتخصيص pty جديد) يصلح مطالبة كلمة المرور لكنه يكسر نشر تغيير حجم الطرفية الحيّ لتلك الجلسة — ورُئي أنه مقايضة أسوأ من عدم شحن Flatpak إطلاقًا. AUR و AppImage هما مسارا التثبيت المدعومان على Linux من الآن فصاعدًا.

### v1.7.11 — 2026-08-03

- **تغليف Flatpak (KDE Linux)**: بيان بناء محلي تحت `packaging/flatpak/` يستهدف KDE Linux وتوزيعات Flatpak فقط الأخرى. تُجسَّر أدوات سطر الأوامر الخاصة بالمضيف التي يستدعيها nmlinux (`nmcli`، `pkexec`، `mount.cifs`، `ssh`، `nmap`، …) عبر واجهات `flatpak-spawn --host` على `PATH` بدلًا من عزل كل واحدة منها على حدة؛ يأتي PySide6 من `io.qt.PySide.BaseApp` الخاص بـ Flathub بدلًا من حزمة PyPI. غير منشور على Flathub — تُبنى حزمة `.flatpak` واحدة عبر `packaging/flatpak/build-bundle.sh` وتُرفق بكل إصدار بدلًا من ذلك، بالطريقة نفسها التي يُرفق بها AppImage بالفعل. **أُوقف في v1.7.12 — انظر أعلاه.**

### v1.7.10 — 2026-08-03

- **طرفية SSH — إصلاح**: أُصلحت حالة تسابق كان يمكن أن يبدأ فيها PTY بحجم خاطئ (الافتراضي 24×80) إذا لم يكن الحجم الفعلي لعنصر الطرفية معروفًا بعد عند إطلاق الجلسة، مما يُسقط طلب تغيير الحجم بصمت. أدى ذلك إلى عدم تزامن تطبيقات الشاشة الكاملة البعيدة (مثل Claude Code CLI و htop و vim) مع حجم النافذة الحقيقي، مما تسبب في نص قديم/متبقٍّ أسفل الشاشة لا يُمحى إلا مع تمرير مخرجات جديدة فوقه. أبلغ عنه المستخدم؛ وأُعيد إنتاجه بجلسة تفاعلية حقيقية

### v1.7.9 — 2026-08-02

- **طرفية SSH — النسخ/اللصق**: حدِّد النص بالفأرة (نقر وسحب، مع تمييز)، وانسخ بـ `Ctrl+Shift+C` أو من قائمة النقر الأيمن؛ وألصق بـ `Ctrl+Shift+V` (موجود مسبقًا). كان النسخ مستحيلًا سابقًا — إذ لم يكن هناك تحديد نص على الإطلاق
- **طرفية SSH — جلسات متزامنة متعددة**: تفتح صفحة SSH الآن كل اتصال في تبويب خاص به بدلًا من جلسة مشتركة واحدة. كان إعادة الاتصال باتصال محفوظ — حتى نفسه مرتين — يقتل الجلسة النشطة دون فتح بديل عامل؛ الآن يفتح كل إجراء اتصال تبويبًا جديدًا مستقلًا

### v1.7.8 — 2026-07-14

- **اختبار السرعة — تبويب LAN (iperf3) جديد**: إلى جانب اختبار سرعة الإنترنت الحالي، يشغّل تبويب جديد اختبارات `iperf3` بوضع العميل فقط مقابل إما قائمة خوادم عامة مضمَّنة (26 دولة) أو خادم مخصص محفوظ (مثل خادم داخلي للمؤسسة). يدعم TCP/UDP و IPv4/IPv6/تلقائي والاتجاه العكسي (التنزيل)، مع عرض jitter/loss لاختبارات UDP. مقترح من [التذكرة #6](https://github.com/thongor77/nmlinux/issues/6)
- **تبعية اختيارية جديدة**: `iperf3` — ثبّتها لتفعيل تبويب LAN؛ وإلا يعرض التبويب شريط تنبيه ويبقى معطَّلًا

### v1.7.6 — 2026-07-05

- **جرد الأصول — تحديث بالنقر الأيمن**: انقر بزر الفأرة الأيمن على صف واحد أو أكثر مفحوص مسبقًا (يدعم التحديد المتعدد) واختر "تحديث المحدد" لإعادة فحص تلك المضيفات فقط في مكانها، بدلًا من إعادة تشغيل فحص شبكة كامل
- **جرد الأصول — تغذية راجعة لفشل مصادقة SSH**: يُظهر تسجيل دخول SSH مرفوض الآن "فشلت مصادقة SSH" بدلًا من الفشل بصمت، دون فقدان خط الأساس لاسم المضيف/نظام التشغيل المكتشف بواسطة Nmap — تأكد ذلك مقابل Synology NAS حقيقي حيث رفض Auto Block في DSM كلمة مرور صحيحة بعد تجربة مجموعات بيانات اعتماد أخرى مُهيَّأة أولًا

### v1.7.5 — 2026-07-04

- **مراقب Ping — دليل الأهداف المحفوظة**: تتيح لوحة جديدة على اليسار حفظ أهداف ping (الاسم، المضيف، الفاصل الزمني) في قائمة دائمة، بحيث تنجو المضيفات المراقَبة من إعادة تشغيل التطبيق بدلًا من إعادة كتابتها. يحفظ زر ★ على كل صف مراقَب نشطًا ذلك المضيف في الدليل في أي لحظة خلال الجلسة — دون حاجة إلى التخطيط المسبق قبل إغلاق التطبيق بشكل غير متوقع
- **مراقب Ping — "بدء المراقبة"**: حدِّد هدفًا محفوظًا وابدأ مراقبته بنقرة واحدة، مع إعادة استخدام الفاصل الزمني المحفوظ

### v1.7.4 — 2026-07-04

- **جرد الأصول — إصلاح نتائج فحص غير متسقة**: كان فحص الحيوية يرسل ping واحدًا بمهلة ثانية واحدة دون إعادة محاولة، مما قد يُسقط جهازًا حقيقيًا تحت الحمل المتزامن للماسح نفسه (حتى 40 مضيفًا يُفحص في آن واحد) أو عندما يكون مضيف Wi-Fi نائمًا لفترة وجيزة بين إشارات beacon — تأكد ذلك مباشرة مقابل شبكة فرعية حقيقية أعادت أعداد أجهزة مختلفة عبر تشغيلات متكررة للنطاق نفسه. الآن يعيد الفحص محاولة ping قبل العودة إلى فحص منفذ TCP
- **جرد الأصول — زر "تحديث الفارغ" الجديد**: بعد الفحص، أعد فحص عناوين IP التي لم تُرجع أي بيانات فقط بدلًا من النطاق كاملًا مرة أخرى؛ وتُدمج المضيفات المكتشفة حديثًا في النتائج الموجودة

### v1.7.3 — 2026-07-03

- **SMB — تركيب المشاركات من قائمة النقر الأيمن**: انقر بزر الفأرة الأيمن على مشاركة في تبويب SMB واختر Mount/Unmount لتركيبها في مسار محلي ثابت (`~/mnt/<host>_<share>`)، قابل للاستخدام من الطرفية وأي تطبيق آخر — وليس عرض تصفح عابرًا. للجلسة فقط (دون استمرارية fstab/systemd)، وتُعاد بيانات الاعتماد من حقلي المستخدم/كلمة المرور الموجودين. يستخدم Linux الأمر `pkexec mount -t cifs` مع ملف بيانات اعتماد بأذونات مقيَّدة (لا يُكشف أبدًا عبر `ps`)؛ ويستخدم macOS الأمر `mount_smbfs` مباشرة. يعيد المحاولة تلقائيًا بلهجة SMB أقدم (`vers=2.0`) عندما يرفض خادم التفاوض الافتراضي (شائع مع وحدات NAS الأقدم) — وتحدث المحاولتان تحت مطالبة مصادقة واحدة عبر عملية مساعدة مخصصة
- **تبعية اختيارية جديدة**: `cifs-utils` (Linux) لتركيب SMB؛ مدمجة في macOS

### v1.7.2 — 2026-07-03

- **تثبيت macOS — إصلاح خطأي bootstrap وُجدا على جهاز Mac نظيف**: لم يعد `bootstrap_macos.sh` يفرض `NONINTERACTIVE=1` على مثبِّت Homebrew، وهو ما كان يُجهض فورًا على أي حساب مسؤول جديد بدلًا من طلب كلمة مرور sudo؛ والأمر الواحد الموثَّق الآن ينزّل السكربت أولًا بدلًا من تمريره مباشرة إلى `bash`، لأن الخطوات التفاعلية المتداخلة (مثبِّت Xcode CLT، ومطالبة sudo الخاصة بـ Homebrew) قد تتعارض مع مجرى إدخال السكربت الخارجي نفسه عند التمرير
- **قائمة النقر الأيمن الشاملة — إضافة SMB**: كانت `SmbNfsPage` الصفحة الهدف الوحيدة الغائبة عن نظام النقر الأيمن بين الوحدات الذي شُحن في v1.7.0؛ النقر بزر الفأرة الأيمن على مضيف واختيار SMB يملأ الآن حقل المضيف مسبقًا ويطلق الفحص فورًا، بخط عريض في القائمة عند اكتشاف المنفذ 445 مفتوحًا
- **i18n — ترجمة سلاسل لوحة المعلومات المتبقية**: كان تسمية زمن استجابة البوابة وعنوان بطاقة TLS Watchlist وصف حالتها لا تزال مكتوبة بالفرنسية بشكل صلب؛ تُرجمت الآن عبر اللغات الثماني كلها

### v1.7.1 — 2026-07-02

- **macOS 26 (Tahoe)** — إصلاحات SSID لـ Wi-Fi: التحويل من `system_profiler` (يُرجع `<redacted>` دون خدمات الموقع) إلى **CoreWLAN** كمصدر بيانات أساسي؛ يطلب التطبيق الآن إذن خدمات الموقع عند أول تشغيل؛ وتعرض صفحة Wi-Fi كل الشبكات بأسمائها الحقيقية بمجرد منح الإذن
- **macOS** — مدير الاتصالات: يُقرأ SSID المتصل الآن عبر CoreWLAN، مع `system_profiler` لوضع الأمان
- **macOS** — SMB: رسالة واضحة "المصادقة مطلوبة" عندما يتطلب NAS بيانات اعتماد؛ وإصلاح تحذير smb.conf الزائف من smbclient الخاص بـ Homebrew
- **macOS** — إصلاح انهيار محتمل عند الإغلاق بعد أول مربع حوار لإذن خدمات الموقع

### v1.7.0 — 2026-07-02

- **قائمة سياق النقر الأيمن الشاملة** على كل جدول يحتوي عناوين IP أو أسماء مضيفات — تنقَّل مباشرة بين الوحدات دون نسخ ولصق: انقر بزر الفأرة الأيمن على أي مضيف مكتشف واختر Ping أو Scan ports أو Whois أو DNS أو Traceroute أو MTR أو SSH أو RDP أو VNC أو View in Topology أو Add to Inventory. تظهر عناصر القائمة SSH/RDP/VNC **بخط عريض** عند اكتشاف المنفذ المقابل مفتوحًا. التسميات مترجمة بالكامل في اللغات الثماني كلها.
- **الصفحات المصدر** (تُصدر إجراءات النقر الأيمن): IP Scanner، Nmap، Ping، Port Scanner، Traceroute، MTR، Topology (النقر الأيمن على العقدة)
- **الصفحات الهدف** (تستقبل المضيف وتملأ مسبقًا): Whois (`set_target` + استعلام تلقائي)، DNS (ملء مسبق `set_target` فقط)، Ping (`set_target` + بدء تلقائي)، Traceroute (`set_target` + بدء تلقائي)، MTR (`set_target` + بدء تلقائي)، Port Scanner (`set_target` + تركيز)، SSH / RDP / VNC (`set_target` يفتح نموذج اتصال جديد مملوءًا مسبقًا)، Topology (`load_hosts` يحقن عقدًا من فحص IP Scanner/Nmap دون إعادة فحص — تُكتشف البوابة تلقائيًا، وتُرسم الحواف، وتُبرز عقدة الأصل بالأحمر)، جرد الأصول (`prefill_hosts` يبدأ فحص بيانات الاعتماد مباشرة على المضيفات المكتشفة، ويتخطى مرحلة اكتشاف ICMP)
- **لوحة المعلومات — رسم بياني لزمن استجابة البوابة**: مخطط شرارة زمن استجابة حيّ يُحدَّث كل ثانيتين؛ مرمَّز لونيًا (<20 ms أخضر / 20–100 ms برتقالي / >100 ms أحمر / مهلة أحمر)
- **لوحة المعلومات — ملخص TLS Watchlist**: تعكس بطاقة الحالة في لوحة المعلومات تلقائيًا حالة TLS Watchlist (OK / على وشك الانتهاء / تنبيه) دون إعادة استعلام
- **لوحة المعلومات — تغيير حجم الخريطة الجغرافية**: تتوسع الخريطة العالمية أفقيًا الآن عند تغيير حجم النافذة

### v1.6.4 — 2026-06-28

- **macOS**: يعرض شريط القوائم الآن **NMLinux** بدلًا من **Python** — السبب الجذري: بعد `exec()` إلى Python، يُحلّ `NSBundle.mainBundle()` إلى حزمة `Python.framework` (CFBundleName = "Python") التي يقرأها Qt أثناء إنشاء QApplication؛ أُصلح بترقيع `infoDictionary()` الخاص بالحزمة وإعادة تسمية عناصر القائمة الأصلية عبر AppKit قبل إنشاء قائمة التطبيق

### v1.6.3 — 2026-06-28

- **macOS**: محاولة أولى لإصلاح شريط القوائم باستخدام `NSProcessInfo.setProcessName_` عبر `pyobjc-framework-Cocoa` (استُبدلت بـ v1.6.4)

### v1.6.2 — 2026-06-28

- **macOS**: استُبدل سكربت التشغيل bash ببرنامج C مُصرَّف في `install_macos_app.sh` بحيث يربط macOS حزمة `.app` بشكل صحيح بالعملية قيد التشغيل؛ وأُضيف `setprogname` وتجاوز `sys.argv[0]` كخيارات احتياطية

### v1.6.1 — 2026-06-25

- **طرفية SSH — إصلاح الصدى البعيد**: كانت ضغطات المفاتيح المكتوبة في طرفية SSH المضمَّنة تُرسل إلى الصدفة البعيدة لكن لا يُعاد صدىها أبدًا (بدت لوحة المفاتيح "ميتة" بعد تسجيل الدخول). كان nmlinux يفرض إيقاف صدى PTY المحلي، ونشر ssh حالة "لا صدى" تلك إلى pty البعيد عبر أوضاعه الطرفية (pty-req)، فتوقفت الصدفة البعيدة عن إظهار صدى الإدخال. أُعيد إنتاجه على جهاز Ubuntu 26.04 VM نظيف (تطبق إصدارات OpenSSH الحديثة هذه الأوضاع بأمانة). تحافظ الطرفية الآن على PTY في الوضع الطبيعي وتترك ssh يدير الصدى، بما يطابق محاكيات الطرفية الحقيقية.

### v1.6.0 — 2026-06-24

- **جرد الأصول — WinRM Windows (مكتمل)**: اكتشاف المضيف عبر فحص منفذ TCP عندما يُحجب ICMP بواسطة جدار حماية Windows؛ يستخدم PowerShell الآن مسارًا مطلقًا كاملًا + **EncodedCommand (base64)** لمنع cmd.exe من تفسير الأنابيب `|`؛ سلسلة احتياطية كاملة دون حقوق مسؤول: نظام التشغيل عبر `ver`، المعالج عبر السجل، الذاكرة عبر `systeminfo`، القرص عبر `wmic` → `fsutil` (مدرك للإعدادات المحلية: فاصلة EN / مسافة FR) → `dir /-C`
- **جرد الأصول — SSH متعدد بيانات الاعتماد**: دعم مجموعات بيانات اعتماد SSH متعددة؛ إصلاح قرص macOS (`/System/Volumes/Data`)، احتياطي معالج Apple Silicon (`hw.model`)، Synology (`/volume1`)، Unraid (`/mnt/user`)
- **إصلاحات أخطاء**: تُعرض أخطاء WinRM الآن في الجدول بدلًا من الاحتياط الصامت؛ لم يعد اكتشاف مضيف WinRM/SNMP محجوبًا بوجود بيانات اعتماد SSH؛ صُححت مهلة pywinrm

### v1.5.3 — 2026-06-24

- **macOS .app — اكتشاف أدوات Homebrew**: تُوجد الآن `sshpass` و `nmap` و `snmpget` المثبَّتة عبر Homebrew وتُستدعى بمسارها المطلق؛ لا ترث حزم `.app` على macOS مسار PATH الخاص بـ Homebrew (`/opt/homebrew/bin`، `/usr/local/bin`)، لذا كانت الأدوات المثبَّتة سابقًا تُتجاهل بصمت
- **مسار تحديث macOS**: أصبح تشغيل `git pull && bash packaging/install_macos_app.sh` من جذر المستودع هو طريقة الترقية الموثَّقة؛ يدير السكربت بيئته الافتراضية الخاصة (`~/.local/share/nmlinux/venv`) ولا يتطلب `pip` أو `pipx` على مستوى النظام

### v1.5.2 — 2026-06-24

- **جرد الأصول** — وحدة جديدة (الـ 29)؛ تفحص نطاق CIDR وتجمع نظام التشغيل والمعالج والذاكرة والقرص ومدة التشغيل من كل مضيف عبر SSH أو WinRM أو SNMP أو Nmap؛ تدعم مجموعات بيانات اعتماد متعددة لكل بروتوكول (تُجرَّب كل واحدة بالترتيب)؛ سياسة عدم الاحتفاظ: لا تُكتب بيانات الاعتماد على القرص أبدًا، وتُمسح من الذاكرة بعد الفحص؛ صدِّر النتائج بصيغة JSON أو CSV أو Markdown؛ أُضيفت خريطة جغرافية متحركة إلى قسم تحديد الموقع الجغرافي لعناوين IP في لوحة المعلومات
- **إصلاحات جمع SSH**: أُصلح خطأ اقتباس awk في أمر القرص؛ استُبدل `free -h` بـ `free` المتوافق مع BusyBox؛ يستخدم مسار شيفرة macOS الآن `sw_vers` لاسم نظام التشغيل، و`hw.model` كاحتياطي لمعالج Apple Silicon، و`/System/Volumes/Data` لوحدة بيانات المستخدم APFS؛ تُكتشف وحدات Synology/Unraid (`/volume1`، `/mnt/user`) قبل الجذر؛ أُصلح نمط النجاح الزائف `df | tail -1 || …` بحراس `test -d`؛ تُنزع علامات الاقتباس المحيطة من مخرجات `lsb_release`؛ دعم مجموعات بيانات اعتماد SSH/WinRM متعددة (تُجرَّب كل واحدة بالترتيب لكل مضيف)

### v1.5.0 — 2026-06-17

- **خادم نقل الملفات** — وحدة جديدة لبدء/إيقاف خادم TFTP أو HTTP خفيف مباشرة من التطبيق؛ حالة الاستخدام الكلاسيكية: نسخ احتياطي واستعادة إعدادات الراوتر أو السويتش أو الطابعة؛ خادم واحد نشط في كل مرة (TFTP أو HTTP)، مع منفذ ودليل جذر قابلين للتهيئة، وعناوين IP المحلية معروضة كأزرار نسخ إلى الحافظة؛ يتضمن HTTP سرد الدليل (تصفح من أي متصفح على الشبكة المحلية)، وGET (تنزيل)، وPOST/PUT (رفع)؛ يدعم TFTP الأمرين GET و PUT (ثنائي الاتجاه)، ويتطلب المنفذ 69 صلاحيات الجذر — يعرض التطبيق زر "Start as root (pkexec)" عند خطأ الأذونات؛ جدول سجل نقل حيّ (الطابع الزمني، اسم الملف، IP العميل، الاتجاه ↑/↓، الحجم)؛ حماية من اجتياز المسارات؛ 8 لغات للواجهة؛ تبعية جديدة: `tftpy`

### v1.4.3 — 2026-06-14- **إصلاحات قائمة مراقبة TLS**: تُعرض الشهادات ذاتية التوقيع وغير الموثوقة الآن بشكل صحيح كـ "⚠ شهادة غير صالحة / غير موثوقة" (باللون البرتقالي) بدلاً من الأخضر؛ تم توسيع التقاط استثناءات SSL ليشمل جميع الفئات الفرعية لـ `ssl.SSLError`؛ تعرض الإدخالات الآن "… (جارٍ الفحص)" أثناء تشغيل الفحص في الخلفية و"— (غير قابل للوصول)" عندما يتعذر الوصول إلى المضيف

### v1.4.2 — 2026-06-14

- **قائمة مراقبة TLS** — قائمة دائمة بأسماء المضيفين لمراقبة انتهاء صلاحية الشهادات؛ أضف المضيفين عبر `+ Watch` (يستخدم المضيف/المنفذ الحالي) أو يدويًا في اللوحة؛ يعمل الفحص في الخلفية تلقائيًا بعد ثانيتين من التشغيل؛ يعرض إدخال "TLS Inspector" في الشريط الجانبي نقطة ملونة: حمراء إذا انتهت صلاحية أي شهادة، برتقالية إذا انتهت صلاحية أي شهادة خلال 30 يومًا؛ زر إعادة الفحص في اللوحة؛ تعرض القائمة الحالة لكل إدخال (✓ / ⚠ / EXPIRED) مع ترميز لوني

### v1.4.1 — 2026-06-14

- **macOS — ماسح IP**: إصلاح البحث عن عنوان MAC والمورّد والواجهة على macOS؛ يستدعي `_arp_entry()` الآن `arp -n <ip>` على macOS ويحلل تنسيق مخرجه (`? (IP) at AA:BB:CC on en0`) بدلاً من قراءة `/proc/net/arp` (خاص بـ Linux)؛ تُملأ الآن جميع أعمدة الماسح الأربعة بشكل صحيح على macOS
- **مساعدة VNC**: أُضيفت ملاحظة بجميع اللغات الثماني توضح أن Linux لا يحتوي على خادم VNC افتراضيًا وتسرد الخيارات الشائعة للتثبيت (x11vnc، tigervnc-server، wayvnc)

### v1.4.0 — 2026-06-14

- **macOS — ماسح IP**: استُبدل `getent` (خاص بـ Linux) بـ `socket.gethostbyaddr()` من Python لتحليل DNS العكسي عبر الأنظمة المتعددة؛ يعمل البحث عن اسم المضيف الآن أصليًا على macOS دون أي أداة إضافية
- **macOS — متصفح SMB**: تم التبديل من `smbclient` (يتطلب samba من Homebrew) إلى `smbutil view` (أداة macOS المدمجة)؛ تعمل قائمة مشاركات SMB الآن على macOS دون أي تثبيت
- **macOS — متصفح NFS**: `showmount` مدمج في macOS لكنه لا يدعم `--no-headers`؛ أُزيلت العلامة على macOS، وتُتخطى سطر الترويسة في المحلل؛ تعمل قائمة تصديرات NFS الآن أصليًا
- **macOS — RDP**: عندما لا يُعثر على `xfreerdp`، يتم الرجوع إلى مخطط URL `open rdp://`؛ يفتح Microsoft Remote Desktop (من App Store) إذا كان مثبتًا، مع تعبئة المضيف والمنفذ واسم المستخدم والنطاق مسبقًا

---

[Read more](https://github.com/thongor77/nmlinux)
تنزيل الأداة