Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

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

nmlinux

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

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

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

NMLinux · v1.7.12

Version Python License: GPL-2.0 Platform Languages Donate Bitcoin

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

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

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

بُني باستخدام Claude Code (Anthropic) وبمساهمة مؤلفه.


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

NMLinux مبني بمساعدة الذكاء الاصطناعي — وتحديدًا Claude Code — وهذا ليس مخفيًا في أي مكان في هذا المستودع. تقريبًا كل مشروع برمجي جاد اليوم يستخدم الذكاء الاصطناعي في مكان ما من مساره، سواء ذُكر ذلك أم لا. لذا فإن سؤال "هل كان الذكاء الاصطناعي مشاركًا؟" ليس هو السؤال المهم. السؤال المهم هو: هل يوجد ما يلتقط الأخطاء عندما يُخطئ الذكاء الاصطناعي؟

وإليك ما يلتقطها، إذا كنت تفضّل التحقق بدلًا من تصديقي:

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

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

وجدت خطأً رغم ذلك؟ هذا مفيد وليس محرجًا — افتح issue.


المجتمع

مناقشات GitHub مفتوحة — شارك ملاحظاتك، وأبلغ عن أفكارك، واطرح أسئلتك، أو ببساطة قل مرحبًا. يملك المؤلف خبرة تفوق 30 عامًا في البنية التحتية والتشغيل، وبنى هذه الأداة لأنه يجب أن توجد برمجيات جيدة ومجانية وبسيطة لنظام Linux أيضًا.


لقطات الشاشة

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

Linux (KDE)

DashboardTopology
DashboardTopology
TracerouteWi-Fi
TracerouteWi-Fi

macOS

DashboardTraceroute
macOS DashboardmacOS Traceroute

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

v1.7.12 — 2026-08-12

  • Traceroute — إصلاح: ضمن Flatpak (v1.7.11، انظر أدناه — أُزيل الآن)، كان traceroute يُحلّ دائمًا على PATH عبر غلاف المضيف (host shim) حتى عندما لا يحتوي المضيف على ثنائي traceroute حقيقي مثبّت، لذلك لم يكن العامل (worker) يتراجع أبدًا إلى tracepath وكان التتبع ينتهي فورًا دون أي قفزات ودون إظهار أي خطأ. الآن يتراجع إلى tracepath كلما لم يُنتج traceroute أي مخرجات قابلة للتحليل إطلاقًا، بغض النظر عن سبب الفشل.
  • محطة SSH — إصلاح askpass: عندما تكون DISPLAY/WAYLAND_DISPLAY مضبوطة (أي جلسة رسومية) ولا يمتلك ssh طرفية tty نظيفة، فقد يحاول استخدام $SSH_ASKPASS لطلب كلمة المرور بدلًا من المحطة المدمجة — مما يفشل المصادقة بصمت إذا لم يكن هناك مساعد askpass مثبّت. الآن يفرض SSH_ASKPASS_REQUIRE=never أن تمر طلبات كلمة المرور دائمًا عبر المحطة نفسها.
  • إزالة تغليف Flatpak: تم إيقاف بيان KDE Linux المحلي الذي صدر في v1.7.11. كشف التحقيق في خطأ طلب كلمة مرور SSH أعلاه عن قيد على مستوى النواة: لا يمكن لعملية تُمرَّر عبر flatpak-spawn --host أن تصبح أبدًا مالكة طرفية التحكم (controlling terminal) للـ pty المُمرَّرة ( مرفوض مع — جلسة أخرى مختلفة وغير ذات صلة تمتلكها بالفعل؛ هذا حد أمني مقصود من النواة، وليس خطأً). الحل الوحيد (، عبر تخصيص pty جديدة) يصلح طلب كلمة المرور لكنه يكسر نقل تغيير حجم الطرفية المباشر (live resize) لتلك الجلسة — وهو مقايضة أسوأ من عدم توفير 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 wheel. لم يُنشر على Flathub — بل تُبنى حزمة .flatpak واحدة باستخدام packaging/flatpak/build-bundle.sh وتُرفق بكل إصدار، تمامًا كما هو الحال مع AppImage. أُوقف في v1.7.12 — انظر أعلاه.

v1.7.10 — 2026-08-03

  • محطة SSH — إصلاح: أُصلح سباق (race condition) حيث يمكن أن تبدأ 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

  • Speed Test — تبويب LAN جديد (iperf3): إلى جانب اختبار سرعة الإنترنت الحالي، يشغّل تبويب جديد اختبارات iperf3 للعميل فقط إما ضد قائمة خوادم عامة مرفقة (26 دولة) أو خادم مخصص محفوظ (مثل خادم مؤسسة داخلي). يدعم TCP/UDP وIPv4/IPv6/تلقائي والاتجاه العكسي (تنزيل)، مع عرض التذبذب (jitter)/فقدان الحزم لاختبارات UDP. اقترحه issue #6
  • تبعية اختيارية جديدة: iperf3 — ثبّته لتفعيل تبويب LAN؛ يعرض التبويب لافتة ويبقى معطّلًا بخلاف ذلك

v1.7.6 — 2026-07-05

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

v1.7.5 — 2026-07-04

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

v1.7.4 — 2026-07-04

  • Asset Inventory — إصلاح نتائج الفحص غير المتسقة: كان فحص الحيوية يرسل ping واحدًا بفاصل مهلة ثانية واحدة دون إعادة محاولة، ما قد يُسقط جهازًا حقيقيًا تحت الحمل المتزامن للماسح نفسه (حتى 40 مضيفًا تُفحص دفعة واحدة) أو عندما يكون مضيف Wi-Fi نائمًا لفترة وجيزة بين الإشارات — تأكد ذلك مباشرة ضد شبكة فرعية حقيقية أعادت أعدادًا مختلفة من الأجهزة عبر تشغيلات متكررة لنفس النطاق. يعيد الفحص الآن محاولة ping قبل التراجع إلى فحص منفذ TCP
  • Asset Inventory — زر "Refresh empty" جديد: بعد الفحص، أعد فحص عناوين 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 — إصلاح خطأين في التمهيد اكتُشفا على Mac نظيف: لم يعد bootstrap_macos.sh يفرض NONINTERACTIVE=1 على مثبّت Homebrew، الذي كان يتوقف فورًا على أي حساب مسؤول جديد بدلًا من طلب كلمة مرور sudo؛ كما أن السطر الواحد الموثق يحمّل السكربت أولًا الآن بدلًا من توجيهه مباشرة إلى bash، لأن الخطوات التفاعلية المتداخلة (مثبّت Xcode CLT، وطلب sudo الخاص بـ Homebrew) يمكن أن تتعارض مع دفق الإدخال الخاص بالسكربت الخارجي عند التوجيه
  • قائمة النقر بزر الماوس الأيمن العامة — إضافة SMB: كانت SmbNfsPage صفحة الهدف الوحيدة المفقودة من نظام النقر بزر الماوس الأيمن بين الوحدات الذي صدر في v1.7.0؛ النقر بزر الماوس الأيمن على مضيف واختيار SMB يملأ الآن حقل المضيف مسبقًا ويطلق الفحص فورًا، ويظهر بخط عريض في القائمة عندما يُكتشف أن المنفذ 445 مفتوح
  • i18n — ترجمة سلاسل Dashboard المتبقية: كانت تسمية زمن وصول البوابة وعنوان بطاقة TLS Watchlist وصف حالتها ما تزال بالفرنسية مكتوبة بشكل ثابت؛ أصبحت الآن مترجمة عبر جميع لغات الواجهة الثماني

v1.7.1 — 2026-07-02

  • macOS 26 (Tahoe) — إصلاحات SSID لشبكة Wi-Fi: التحول من system_profiler (الذي يُرجع <redacted> بدون خدمات الموقع) إلى CoreWLAN كمصدر بيانات أساسي؛ يطلب التطبيق الآن إذن خدمات الموقع عند الإطلاق الأول؛ وتعرض صفحة Wi-Fi جميع الشبكات بأسمائها الحقيقية بمجرد منح الإذن
  • macOS — Connection Manager: يُقرأ SSID المتصل الآن عبر CoreWLAN، مع system_profiler لوضع الأمان
  • macOS — SMB: رسالة واضحة "authentication required" عندما يتطلب NAS بيانات اعتماد؛ إصلاح تحذير smb.conf الزائف من Homebrew smbclient
  • 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 دون إعادة فحص — تُكتشف البوابة تلقائيًا، وتُرسم الحواف، وتُميَّز عقدة المصدر بالأحمر)، Asset Inventory (prefill_hosts يبدأ فحص بيانات الاعتماد مباشرة على المضيفات المكتشفة، ويتجاوز مرحلة اكتشاف ICMP)
  • Dashboard — رسم بياني لزمن وصول البوابة: مؤشر زمن انتقال مباشر يُحدَّث كل ثانيتين؛ مع ترميز لوني (<20 ms أخضر / 20–100 ms برتقالي / >100 ms أحمر / انتهاء المهلة أحمر)

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 (حيث يطبق OpenSSH الحديث هذه الأوضاع بأمانة). تُبقي المحطة الآن PTY في الوضع العادي وتترك ssh يدير الصدى، بما يطابق محاكيات الطرفية الحقيقية.

v1.6.0 — 2026-06-24

  • Asset Inventory — WinRM Windows (مكتمل): اكتشاف المضيف عبر فحص منفذ TCP عندما تحجب جدار الحماية في Windows ICMP؛ يستخدم PowerShell الآن المسار المطلق الكامل + EncodedCommand (base64) لمنع cmd.exe من تفسير الرموز الأنبوبية |؛ سلسلة تراجع كاملة دون صلاحيات المسؤول: نظام التشغيل عبر ver، المعالج عبر سجل النظام، الذاكرة عبر systeminfo، القرص عبر wmic → fsutil (يراعي الإعدادات المحلية: فاصلة EN / مسافة FR) → dir /-C
  • Asset Inventory — 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

  • Asset Inventory — وحدة جديدة (التاسعة والعشرون)؛ تفحص نطاق CIDR وتجمع نظام التشغيل والمعالج والذاكرة والقرص ومدة التشغيل من كل مضيف عبر SSH أو WinRM أو SNMP أو Nmap؛ تدعم مجموعات متعددة من بيانات الاعتماد لكل بروتوكول (تجريب كل واحدة بالترتيب)؛ سياسة عدم الاحتفاظ: لا تُكتب بيانات الاعتماد على القرص أبدًا وتُمحى من الذاكرة بعد الفحص؛ تصدير النتائج بصيغة JSON أو CSV أو Markdown؛ إضافة خريطة جغرافية متحركة إلى قسم IP Geolocation في Dashboard
  • إصلاحات جمع 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

  • File Transfer Server — وحدة جديدة لتشغيل/إيقاف خادم 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 Watchlist: تُعرض الشهادات الموقعة ذاتيًا وغير الموثوقة الآن بشكل صحيح كـ "⚠ Invalid / untrusted cert" (برتقالي) بدلًا من الأخضر؛ توسيع نطاق التقاط استثناءات SSL ليشمل جميع الفئات الفرعية لـ ssl.SSLError؛ تعرض الإدخالات الآن "… (checking)" أثناء تشغيل الفحص في الخلفية و"— (unreachable)" عندما يتعذر الوصول إلى المضيف

v1.4.2 — 2026-06-14

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

v1.4.1 — 2026-06-14

  • macOS — IP Scanner: إصلاح البحث عن عنوان MAC والموزع (vendor) والواجهة على 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 Scanner: تم الاستغناء عن getent (خاص بلينكس) لصالح socket.gethostbyaddr() في بايثون لإجراء تحليل عكسي لـ DNS عبر المنصات؛ أصبح البحث عن اسم المضيف يعمل أصليًا على macOS دون أي أدوات إضافية

  • macOS — SMB Browser: تم التحويل من smbclient (يتطلب samba عبر Homebrew) إلى smbutil view (أداة مدمجة في macOS)؛ أصبح عرض قائمة مشاركات SMB يعمل على macOS دون أي تثبيت
  • macOS — NFS Browser: showmount مدمج في macOS لكنه لا يدعم --no-headers؛ تمت إزالة العلامة على macOS وتجاوز سطر الترويسة في المحلّل؛ أصبح عرض قائمة صادرات NFS يعمل بشكل أصلي
  • macOS — RDP: عند عدم العثور على xfreerdp، يعود إلى مخطط عناوين open rdp://؛ يفتح تطبيق Microsoft Remote Desktop (من App Store) إذا كان مثبتًا، مع تعبئة مسبقة للمضيف والمنفذ واسم المستخدم والمجال
  • macOS — VNC: عند عدم العثور على vncviewer، يعود إلى مخطط عناوين open vnc://؛ يفتح مشاركة شاشة macOS (مدمجة، لا تتطلب أي تثبيت)

v1.3.9 — 2026-06-13

  • SSH agent forwarding — خانة اختيار جديدة باسم "Agent forwarding" في نموذج اتصال SSH؛ تضيف -A إلى أمر ssh؛ تتيح التنقل بين الخوادم دون نسخ مفتاحك الخاص (PC → A → B)؛ تتطلب وكيل SSH نشطًا (SSH_AUTH_SOCK)؛ تم تحديث المساعدة السياقية في جميع اللغات الثماني

v1.3.8 — 2026-06-13

  • Command Palette (Ctrl+P) — تنقّل فوري بلوحة المفاتيح إلى أي من الوحدات الـ27؛ بحث تقريبي بالاسم والكلمات المفتاحية (مثل "firewall" و"tls" و"ssh key" و"scan")؛ أسهم لأعلى/لأسفل + Enter أو نقرة واحدة للتنقل؛ تُفتح بـ Ctrl+P من أي مكان في التطبيق
  • Export Manager — تصدير لقطة شبكة كاملة (الواجهات، المسارات، محللات DNS) من File ← Export Network Report… بصيغ JSON أو Markdown أو نص عادي أو PDF (اختياري: pip install reportlab)
  • Module-level export buttons — أُضيفت أزرار التصدير إلى صفحات Interfaces وDNS وFirewall وSSH Connections وConnection Manager؛ تصدّر كل صفحة بياناتها الحالية بالصيغة المختارة مع تحديث فوري لامتداد اسم الملف عند تغيّر عامل تصفية الصيغة

v1.3.6 — 2026-06-12

  • Topology — device icons — تعرض كل عقدة الآن أيقونة Lucide SVG مطابقة لنوع جهازها (موجّه/واي فاي، كمبيوتر/حاسوب محمول، طابعة، NAS/خادم، هاتف ذكي، مبدّل شبكة، Raspberry Pi) بدلًا من دائرة عامة؛ 5 أيقونات SVG مدمجة جديدة (printer, server, smartphone, cpu, laptop)
  • Topology — mDNS detection — يُكتشف نوع الجهاز عبر avahi-browse (اختياري، يعمل بالتوازي مع فحص nmap)؛ يحدد الطابعات (_ipp._tcp, PDL Printer)، هواتف وأجهزة تلفاز أندرويد (_googlecast._tcp, _androidtvremote2._tcp)، أجهزة Mac من Apple (طراز am=Mac16,x في AirPlay TXT)، أجهزة NAS (تقرير Synology model=Xserve)، أجهزة KDE Connect المكتبية؛ يتراجع إلى OUI لبائع MAC وحدسيات اسم المضيف عندما يكون avahi غير متاح
  • Topology — detail panel — تعرض لوحة التفاصيل فئة الجهاز المكتشفة (طابعة، هاتف ذكي، NAS…) بدلًا من التسمية العامة "Host"؛ تدويل في جميع اللغات الثماني

v1.3.5 — 2026-06-06

  • macOS compatibility — تعمل جميع وحدات الشبكة التسع الآن على macOS دون كسر سلوك لينكس؛ تكتشف كل وحدة المنصة عند بدء التشغيل (_IS_MACOS) وتتفرع إلى أوامر macOS الأصلية: route -n get default, ifconfig, scutil --dns, networksetup, system_profiler SPAirPortDataType, pfctl, netstat -ib؛ تستخدم رفع الصلاحيات osascript + with administrator privileges بدلاً من pkexec؛ يستخدم خط monospace Menlo بدلاً من Monospace
  • الوحدات ذات المسارات المزدوجة Linux/macOS: Dashboard، Interfaces، Wi-Fi، Topology، Bandwidth، Firewall (pf.conf + pfctl)، Connection Manager، Hosts File، MTR

v1.3.2 — 2026-06-06

  • توسيع التدويل إلى 8 لغات — أُضيفت Italiano وPortuguês و日本語 (اليابانية) و中文 (الصينية المبسطة)؛ الواجهة الكاملة (جميع الوحدات الـ27، نحو 720 مفتاح ترجمة) متاحة الآن بـ FR / EN / ES / DE / IT / PT / JA / ZH؛ تظهر رسالة تطالب بإعادة التشغيل بعد تغيير اللغة في الإعدادات
  • مساعدة سياقية بـ 8 لغات — تغطي لوحة شارة ? (الوصف، أمثلة الاستخدام، وأوامر CLI المكافئة) الآن جميع اللغات الثماني لكل وحدة؛ سابقًا كانت JA وZH تتراجعتان إلى الإنجليزية
  • إصلاح خطأ — كانت تلميحات التنقل لـ SMB/NFS وHosts File تظهر بالفرنسية بغض النظر عن اللغة المحددة؛ أُضيفت المفاتيح المفقودة nav_hint_smb_nfs وnav_hint_hosts إلى جميع الكتل اللغوية السبع غير الفرنسية

v1.3.1 — 2026-06-05

  • SSH Key Manager — سرد جميع أزواج المفاتيح في ~/.ssh/ (الملف، النوع، البتات، التعليق، بصمة SHA256)؛ إنشاء مفاتيح Ed25519 أو RSA 4096 مع عبارة مرور اختيارية (كشف عدم التطابق، اسم ملف تلقائي حسب النوع)؛ نسخ المفتاح العام إلى الحافظة؛ نشره إلى خادم بعيد عبر ssh-copy-id في طرفية مدمجة مع دعم stdin لطلبات كلمة المرور؛ حذف أزواج المفاتيح مع تأكيد؛ إنشاء ~/.ssh/ تلقائيًا إذا كان مفقودًا؛ تدويل: fr / en / es / de

v1.3.0 — 2026-06-03

  • TLS / SSL Inspector — فحص شهادة أي خادم: CN للموضوع، SANs، المُصدر، تواريخ الصلاحية (مشفّرة بالألوان: أخضر / برتقالي < 30 يومًا / أحمر منتهية الصلاحية)، الرقم التسلسلي، بروتوكول TLS، حزمة التشفير وسلسلة الشهادات (عبر openssl s_client)؛ يعمل مع الشهادات الصالحة والمنتهية والموقّعة ذاتيًا؛ رسائل خطأ واضحة للمضيفين غير المتاحين
  • SMB / NFS Browser — سرد المشاركات والصادرات من أي خادم؛ تبويب SMB: smbclient -L مع بيانات اعتماد اختيارية، يعرض اسم المشاركة / النوع / التعليق؛ تبويب NFS: showmount -e، يعرض مسار التصدير وقائمة الوصول؛ يكتشف الأدوات المفقودة مع تعليمات تثبيت خاصة بكل توزيعة
  • Hosts File Editor — عرض وتحرير /etc/hosts؛ جدول مع مفتاح تمكين/تعطيل، إضافة/تعديل/حذف إدخالات عبر حوار؛ تصفية حسب IP أو اسم المضيف؛ الحفظ عبر pkexec cp (حوار مصادقة polkit)
  • install.sh — نص برمجي جديد لـ Debian / Ubuntu / Linux Mint: ينشئ بيئة venv في ~/.local/share/nmlinux/venv، يثبّت التبعيات النظامية عبر apt، وينشئ مشغّلًا وإدخال .desktop (يصلح خطأ PEP 668 externally-managed-environment)

v1.2.9 — 2026-05-30

  • VNC — وحدة جديدة لإدارة ملفات تعريف اتصالات VNC؛ مجموعات/مجموعات فرعية مثل SSH وRDP؛ تشغّل vncviewer (TigerVNC)؛ متوافقة مع macOS ARD (مصادقة DH30 يعالجها vncviewer أصليًا)؛ كلمة المرور لا تُخزَّن أبدًا؛ تكتشف غياب vncviewer مع تعليمات تثبيت خاصة بكل توزيعة
  • About — Tools & services — قسم جديد يسرد جميع الأدوات وواجهات برمجة التطبيقات التابعة لجهات خارجية التي يعتمد عليها التطبيق
  • Sidebar i18n — جميع تلميحات التنقل الـ23 مترجمة الآن إلى FR/EN/ES/DE (كانت فرنسية مثبتة برمجيًا)؛ تم تصحيح التسميات: Topology، Connections، Subnet

v1.2.8 — 2026-05-30

  • Remote Desktop (RDP) — وحدة جديدة لإدارة ملفات تعريف اتصالات RDP لنظام Windows؛ مجموعات/مجموعات فرعية مثل SSH؛ تشغّل xfreerdp كعملية خارجية؛ تُطلب كلمة المرور عند الاتصال ولا تُخزَّن أبدًا؛ الحقول: المضيف، المنفذ، اسم المستخدم، المجال، الدقة، ملء الشاشة؛ تكتشف غياب xfreerdp مع تعليمات تثبيت خاصة بكل توزيعة (Arch / Debian / Fedora)

v1.2.7 — 2026-05-26

  • Bundled Lucide icons — 21 أيقونة SVG من Lucide (MIT) أصبحت مدمجة الآن في assets/icons/؛ تُعرض في وقت التشغيل عبر QSvgRenderer؛ ملوّنة بـ #60a5fa؛ لم يعد التطبيق يتطلب أي سمة أيقونات للنظام (Breeze، Adwaita، Papirus…)

v1.2.6 — 2026-05-24

  • GNOME / Adwaita compatibility — إصلاح الأيقونات على بيئات سطح المكتب غير KDE: main.py يكتشف الآن تلقائيًا سمة أيقونات GTK عبر gsettings ويطبقها على Qt؛ سلاسل احتياطية موسعة لـ Wi-Fi وTraceroute وSpeed Test وInterfaces وPort Scanner وFirewall وMTR؛ تتحقق themed_icon() الآن من وجود pixmap حقيقي قبل قبول أيقونة السمة
  • NixOS / KDE compatibility — إصلاح جميع الأيقونات على NixOS: Breeze 6.x يوفر أيقونات SVGZ فقط؛ يضيف غلاف Nix الآن qt6.qtsvg إلى QT_PLUGIN_PATH ليتمكن Qt من عرض أيقونات SVG؛ تحاول themed_icon() الأحجام 22/24/16/32/48 (Breeze يستخدم 22 بكسل، وليس 24)؛ يتم فرض السمة breeze عند اكتشاف مجموعة الأيقونات المدمجة في Nix؛ يتحقق أيضًا من /etc/xdg/kdeglobals لإعدادات KDE على مستوى النظام

v1.2.5 — 2026-05-23

  • MTR — My Traceroute مدمج: يشغّل mtr --report، يحلل مخرجات النص، ويعرض جدولًا مباشرًا مع نسبة الفقدان % وRTT آخر/متوسط/أفضل/أسوأ/تذبذب لكل قفزة، ملوّنًا حسب شدة الفقدان؛ وضع مستمر؛ تصدير CSV + TXT
  • Speed Test — اختبار سرعة دون تبعيات عبر curl + Cloudflare (speed.cloudflare.com): تنزيل (25 MB)، رفع (10 MB)، ping إلى 1.1.1.1؛ حتى 5 عمليات تشغيل محفوظة في JSON؛ رسم بياني خطي للتاريخ (تنزيل/رفع)
  • Firewall Viewer — عارض مجموعة قواعد للقراءة فقط: يحلل /etc/nftables.conf و/etc/iptables/*.rules دون صلاحيات الجذر؛ مجموعة قواعد مباشرة عبر pkexec nft list ruleset؛ الأعمدة: الجدول / السلسلة / القاعدة / المنفذ / الإجراء / التعليق؛ إجراءات ملوّنة؛ تصفية مباشرة
  • Sidebar hints — يعرض كل إدخال تنقل الآن شارة ? خفيفة؛ يظهر عند التحويم تلميح يصف ما تفعله الوحدة؛ أُضيف فاصل عمودي بين الشريط الجانبي ومنطقة المحتوى
  • i18n — ترجمة جميع الوحدات الجديدة إلى الفرنسية والإنجليزية والإسبانية

v1.2.0 — 2026-05-22

  • Theme adaptation — دعم كامل للتبديل بين الوضع الفاتح/الداكن في وقت التشغيل عبر جميع الصفحات؛ ملف core/theme.py جديد مع is_dark(), color_ok(), color_err()؛ أدوات الرسم المخصصة (_Graph, _MapWidget) تقرأ اللوحة وقت الرسم؛ استُبدلت جميع ألوان Catppuccin Mocha المثبتة برمجيًا بأدوار لوحة Qt الدلالية
  • Subnet mask — تعرض صفحات Dashboard وInterfaces وConnexions الآن قناع الشبكة الفرعية بالنظام العشري المنقوط (مثل 255.255.255.0) المشتق من بادئة CIDR
  • Bandwidth Monitor — زر بدء/إيقاف صريح يحل محل البدء التلقائي غير الموثوق عند تحميل الصفحة
  • Export CSV/TXT — تقدم صفحتا Nmap وTraceroute الآن زري تصدير CSV وتصدير TXT (يظهران بعد اكتمال الفحص/التتبع)
  • i18n — مفاتيح ترجمة جديدة لجميع الميزات المذكورة أعلاه (fr/en/es/de)

v1.1.1 — 2026-05-16

  • SSH terminal — إعادة كتابة كاملة باستخدام pyte (محاكي VT100/xterm) + عارض QPainter؛ سجل تمرير من 2000 سطر، وميض مؤشر، ودعم 256 لونًا
  • Visual Traceroute — خريطة العالم (Natural Earth 110m)، تحديد جغرافي مباشر لكل قفزة (ip-api.com)، تكبير/تحريك تفاعلي، محلل مزدوج (الاحتياطي traceroute / tracepath)
  • Bandwidth Monitor — إنتاجية لحظية لكل واجهة، رسم بياني منزلق 60 ثانية، سرعات مباشرة، إجماليات الجلسة وذرواتها
  • Wake on LAN — حزمة سحرية بلغة بايثون خالصة (بث UDP)، دفتر مضيفين دائم (JSON)
  • IP Scanner — تحليل اسم المضيف عبر getent/avahi/nmblookup؛ عنوان MAC، البائع (إدخالات IEEE OUI 39K)، أعمدة الواجهة؛ تحديث تصدير CSV/TXT
  • i18n — ترجمة كاملة fr/en/es/de لجميع الصفحات الجديدة

v1.0.0 — 2026-05-14

الإصدار العام الأول — 13 وحدة: Dashboard، Interfaces، Wi-Fi، Subnet Calculator، DNS Lookup، Ping Monitor، IP Scanner، Port Scanner، Nmap، Whois، SNMP، SNTP/NTP، SSH.


الميزات


المتطلبات

أدوات النظام

Linux — معظمها موجود مسبقًا في التثبيت القياسي:```bash

Arch / EndeavourOS

sudo pacman -S iproute2 networkmanager bind-tools nmap whois net-snmp iputils mtr curl

Debian / Ubuntu

sudo apt install iproute2 network-manager dnsutils nmap whois snmp mtr-tiny curl

Fedora

sudo dnf install iproute NetworkManager bind-utils nmap whois net-snmp-utils mtr curl

root@kitploit:~
**macOS** — التثبيت عبر [Homebrew](https://brew.sh):```bash
# Required
brew install nmap mtr curl

# Optional — enable additional modules
brew install whois          # WHOIS page
brew install net-snmp       # SNMP page (snmpwalk / snmpget)
brew install samba          # SMB scan with credentials (smbclient)

يشحن macOS أدوات ping وdig وtraceroute وnetstat وifconfig وsmbutil وroute بشكل مدمج. networksetup وscutil أدوات macOS مدمجة، لا حاجة للتثبيت. البحث عن بائع OUI في IP Scanner لا يتطلب تثبيتًا أيضًا — يتم تنزيل قاعدة بيانات Wireshark manuf تلقائيًا في الخلفية عند أول استخدام وتُخزَّن محليًا في الذاكرة المؤقتة.

أدوات اختيارية

Python

  • Python 3.11+
  • PySide6 6.6+
  • ptyprocess 0.7+
  • pyte 0.8+ (pip install pyte أو sudo pacman -S python-pyte)
  • tftpy 0.8+ (pip install tftpy أو sudo pacman -S python-tftpy) — وحدة نقل الملفات

التثبيت

الخيار 1 — Arch Linux / Manjaro / EndeavourOS (AUR)```bash

yay -S nmlinux

root@kitploit:~
All dependencies (PySide6, ptyprocess, pyte, nmcli, …) are handled automatically.

### Option 2 — NixOS / Nix

Run directly with the bundled `flake.nix` — no system-wide install needed:```bash
git clone https://github.com/thongor77/nmlinux.git
cd nmlinux
nix run .

أو أدخل صدفة تطوير:```bash nix develop python3 -m nmlinux.main

root@kitploit:~
جميع التبعيات الخاصة ببايثون (PySide6, ptyprocess, pyte, tftpy) والأدوات النظامية (nmcli, nmap, freerdp, vncviewer, mtr, avahi-browse…) يتم توفيرها تلقائيًا عبر غلاف Nix.

### الخيار 4 — AppImage (أي توزيعة لينكس، بدون تثبيت)

قم بتنزيل `NMLinux-x.y.z-x86_64.AppImage` من [الإصدار الأحدث](https://github.com/thongor77/nmlinux/releases/latest):```bash
chmod +x NMLinux-*.AppImage
./NMLinux-*.AppImage

لا يلزم التثبيت — Python وQt وجميع وحدات NMLinux مضمّنة في ملف واحد.
يعمل على أي Linux بمعمارية x86_64 مع glibc 2.17+ (Ubuntu 16.04+, Fedora 26+, Arch, Mint، إلخ).

أدوات الشبكة النظامية (nmap, whois, mtr…) ليست مضمّنة — ثبّتها عبر مدير الحزم لديك لكي تعمل الوحدات المقابلة. انظر المتطلبات أدناه.

الخيار 5 — macOS

أسرع طريقة — تهيئة بسطر واحد. يعمل على Mac خالٍ تمامًا: يثبّت Xcode Command Line Tools وHomebrew وجميع أدوات النظام، ثم NMLinux نفسه. آمن لإعادة التشغيل (يقوم بالتحديث بدلًا من إعادة التثبيت):```bash curl -fsSL https://raw.githubusercontent.com/thongor77/nmlinux/main/packaging/bootstrap_macos.sh -o /tmp/bootstrap_macos.sh && bash /tmp/bootstrap_macos.sh

root@kitploit:~
ثبّت على مستوى النظام (`/Applications`) بدلاً من `~/Applications`:```bash
curl -fsSL https://raw.githubusercontent.com/thongor77/nmlinux/main/packaging/bootstrap_macos.sh -o /tmp/bootstrap_macos.sh && bash /tmp/bootstrap_macos.sh --system

لا يتطلب الأمر حساب Apple Developer أو توثيقًا مدفوعًا — إنه نفس البرنامج النصي مفتوح المصدر install_macos_app.sh في جوهره، يتم جلبه وتشغيله لك فقط. البرنامج النصي هو bash بسيط وسهل القراءة؛ لا تتردد في فتح /tmp/bootstrap_macos.sh وقراءته قبل التشغيل، أو اطّلع عليه مباشرة هنا: packaging/bootstrap_macos.sh.

النهج القائم على التنزيل ثم التشغيل (بدلاً من التوجيه المباشر إلى bash) مقصود: على جهاز Mac جديد، يطلق البرنامج النصي خطوات تفاعلية متداخلة (مثبّت Xcode Command Line Tools، ومثبّت Homebrew الذي يطلب كلمة مرور sudo الخاصة بك) تقرأ من الطرفية — إذ يمكن أن يؤدي توجيه البرنامج النصي مباشرة إلى bash إلى تداخل تلك المطالبات مع دفق الإدخال الخاص بالبرنامج النصي وإيقافه في منتصف الطريق. أما التشغيل من ملف تم تنزيله فيتجنب ذلك تمامًا.

التثبيت اليدوي — إذا كنت تفضّل تنفيذ كل خطوة بنفسك، أو كان لديك Homebrew بالفعل:```bash

1. Install Homebrew system tools (see Requirements above)

brew install nmap mtr curl

2. Clone and install

git clone https://github.com/thongor77/nmlinux.git cd nmlinux bash packaging/install_macos_app.sh

root@kitploit:~
للتحديث: `git pull && bash packaging/install_macos_app.sh`  
لإلغاء التثبيت: `bash packaging/uninstall_macos.sh`  
للتثبيت على مستوى النظام (`/Applications`): `bash packaging/install_macos_app.sh --system`

يقوم السكربت بتثبيت حزم Python التالية في بيئة venv تلقائيًا:
- `PySide6`, `ptyprocess`, `pyte`, `tftpy`
- `pyobjc-framework-Cocoa` — شريط قوائم macOS، حوارات أصلية
- `pyobjc-framework-CoreWLAN` — فحص SSID لشبكات Wi-Fi
- `pyobjc-framework-CoreLocation` — إذن خدمات الموقع لأسماء شبكات Wi-Fi

**Wi-Fi على macOS 26 (Tahoe):** عند أول تشغيل، سيطلب macOS إذن خدمات الموقع — امنحه لعرض أسماء شبكات Wi-Fi. يظهر الإذن تحت *إعدادات النظام › الخصوصية والأمان › خدمات الموقع*.

> تعمل معظم الوحدات على macOS دون تعديل. يتراجع RDP إلى `open rdp://` (Microsoft Remote Desktop)، ويتراجع VNC إلى `open vnc://` (مشاركة الشاشة المدمجة). يتمتع مدير الاتصال بوظائف مخفضة على macOS (`nmcli` غير متوفر).

### الخيار 6 — Debian / Ubuntu / Linux Mint (سكربت التثبيت)

> **ملاحظة لمستخدمي Linux Mint / Ubuntu:** أمر `pip install` محظور على مستوى النظام في Python 3.12+ (PEP 668 — `externally-managed-environment`). استخدم سكربت التثبيت المرفق — فهو ينشئ بيئة افتراضية تلقائيًا ويُثبّت إدخال `.desktop`.```bash
git clone https://github.com/thongor77/nmlinux.git
cd nmlinux
bash install.sh

سينفذ البرنامج النصي ما يلي:

  • تثبيت تبعيات النظام عبر apt (libgl1, python3-venv, freerdp, tigervnc…)
  • إنشاء بيئة افتراضية في ~/.local/share/nmlinux/venv
  • تثبيت NMLinux وتبعيات Python الخاصة به داخل البيئة الافتراضية
  • إنشاء مشغّل في ~/.local/bin/nmlinux
  • إضافة إدخال .desktop بحيث يظهر NMLinux في قائمة التطبيقات لديك

بعد التثبيت، شغّل nmlinux من الطرفية أو أطلقه من قائمة التطبيقات.

الخيار 7 — Wheel (جميع التوزيعات / macOS)

حمّل ملف .whl من أحدث إصدار وقم بتثبيته:```bash

Arch / Fedora / macOS — no pip restrictions

pip install nmlinux-1.5.3-py3-none-any.whl

Debian / Ubuntu / Mint — install system libs first, then use pipx

Ubuntu ≤24.04:

sudo apt install libgl1 libglib2.0-0 libdbus-1-3 freerdp2-x11 tigervnc-viewer

Ubuntu 26.04+:

sudo apt install libgl1 libglib2.0-0 libdbus-1-3 freerdp3-x11 tigervnc-viewer

pipx install nmlinux-1.5.3-py3-none-any.whl

root@kitploit:~
> **ملاحظة لنظام Ubuntu 26.04+:** يتطلب `pipx` تثبيت مكتبات النظام (مثل libGL وغيرها) أولاً — الأوامر أعلاه تغطيها. إذا فشل `pipx install` بسبب خطأ في بناء PySide6، فاستخدم **الخيار 4** (نص التثبيت) بدلاً من ذلك، وهو يتعامل مع كل شيء تلقائيًا.

### الخيار 8 — من المصدر (Arch / Fedora / macOS)```bash
git clone https://github.com/thongor77/nmlinux.git
cd nmlinux
pip install PySide6 ptyprocess pyte tftpy
python3 -m nmlinux.main

الخيار 9 — إدخال سطح المكتب (KDE / GNOME / إلخ.)

انسخ ملف .desktop لجعل NMLinux يظهر في قاذف التطبيقات لديك:```bash cp data/nmlinux.desktop ~/.local/share/applications/ update-desktop-database ~/.local/share/applications/

root@kitploit:~
ثم عدّل مسار `Exec=` في الملف إذا لزم الأمر.

---

## التشغيل```bash
./nmlinux.sh
# or, after pip install:
nmlinux
# or directly:
python3 -m nmlinux.main

هيكل المشروع```

nmlinux/ core/ i18n.py — Translation system (8 languages: fr/en/es/de/it/pt/ja/zh), tr(key) function icons.py — themed_icon(): 21 bundled Lucide SVG icons via QSvgRenderer theme.py — is_dark(), color_ok(), color_err(): runtime light/dark helpers settings.py — AppSettings dataclass, JSON persistence ssh.py — SshConnection dataclass, SshStore rdp.py — RdpConnection dataclass, RdpStore, find_xfreerdp() vnc.py — VncConnection dataclass, VncStore, find_vncviewer() terminal.py — SshWorker (QThread) + PTY via ptyprocess, emits raw bytes tls_watchlist.py — TlsWatchlist: background cert expiry checker, JSON persistence http_server.py — ThreadedHTTPServer: directory listing, GET/PUT/POST, port binding tftp_helper.py — TftpServerThread: tftpy wrapper, configurable port and root help_content.py — Module contextual help strings (all 8 languages) cli_bar.py — CliBar singleton: pedagogical CLI equivalent bar export_dialog.py — open_export_dialog(): QFileDialog with live extension update command_palette.py — CommandPalette (Ctrl+P): fuzzy search across 29 modules export_manager.py — collect_snapshot(), to_json/text/markdown/pdf, save_export() pages/ about.py — About page (credits, tools & services) bandwidth.py — Bandwidth Monitor: per-interface 60s graph, live stats connection_manager.py — Connection Manager: nmcli profiles, connect/disconnect/edit dashboard.py — Dashboard dns.py — DNS Lookup file_transfer.py — File Transfer: TFTP + HTTP server, live log, pkexec for port 69 firewall.py — Firewall Viewer: nftables + iptables parser, live via pkexec help_page.py — Contextual help overlay hosts.py — Hosts File: view/edit /etc/hosts, toggle entries, save via pkexec interfaces.py — Network Interfaces ip_scanner.py — IP Scanner mtr.py — MTR: mtr --report parser, live hop stats table, export nmap_scan.py — Nmap ping.py — Ping Monitor port_scanner.py — Port Scanner rdp.py — Remote Desktop: RDP profiles, launches xfreerdp settings.py — Settings page smb_nfs.py — SMB/NFS Browser: smbclient + showmount snmp.py — SNMP sntp.py — SNTP / NTP speedtest.py — Speed Test: curl + Cloudflare, history graph ssh.py — SSH page (connection manager + terminal) ssh_keys.py — SSH Key Manager: list/generate/deploy/delete key pairs subnet.py — Subnet Calculator terminal_view.py — TerminalView: pyte VT100 emulator + QPainter renderer tls.py — TLS Inspector + TLS Watchlist: cert details, background expiry monitor topology.py — Topology Map: nmap -sn, interactive graph, zoom/pan traceroute.py — Visual Traceroute: world map, geolocation, zoom/pan vnc.py — VNC: connection profiles, launches vncviewer whois.py — Whois wifi.py — Wi-Fi wol.py — Wake on LAN: magic packet, persistent host book assets/ icons/ — 21 bundled Lucide SVG icons (#60a5fa) world.geojson — Natural Earth 110m countries (map background) window.py — MainWindow (sidebar + QStackedWidget) main.py — Entry point

root@kitploit:~
---

## التوافق مع بيئات سطح المكتب

منذ الإصدار v1.2.7، يستخدم NMLinux 21 أيقونة SVG مدمجة من [Lucide](https://lucide.dev) تُعرض وقت التشغيل عبر `QSvgRenderer`. لم يعد التطبيق يعتمد على أي سمة أيقونات للنظام (Breeze، Adwaita، Papirus…) ويُعرض بشكل صحيح على KDE وGNOME وXFCE وغيرها. يتكيف نمط Qt تلقائياً مع بيئة سطح المكتب قيد التشغيل.

---

## القيود

### Linux
دعم كامل — جميع الوحدات الـ 29 متاحة.

### macOS
تعمل معظم الوحدات مباشرةً لأنها تعتمد على أدوات متوفرة على كلا النظامين (`ssh`, `dig`, `ping`, `curl`, `nmap`, `openssl`…).

**تتطلب 9 وحدات تكيفاً صريحاً مع macOS** (مسارات كود مزدوجة تكتشف النظام الأساسي عند بدء التشغيل): Dashboard، Interfaces، Wi-Fi، Topology، Bandwidth، Firewall، Connection Manager، Hosts File، MTR — تستخدم هذه الوحدات أوامر macOS الأصلية (`ifconfig`, `networksetup`, `scutil`, `pfctl`, `system_profiler`…) بدلاً من مكافئاتها في Linux.

**وحدات بدعم محدود أو بدون دعم على macOS:**

| الوحدة | الحالة | الملاحظات |
|--------|--------|-------|
| **RDP** | ✓ macOS | يتراجع إلى `open rdp://` → Microsoft Remote Desktop (App Store) |
| **VNC** | ✓ macOS | يتراجع إلى `open vnc://` → Screen Sharing (مدمجة، بدون أي تثبيت) |
| **IP Scanner** | ✓ macOS | يستخدم `socket.gethostbyaddr()` — Python أصلي، بدون أدوات إضافية |
| **SMB** | ✓ macOS | يستخدم `smbutil view` (مدمج) بدلاً من `smbclient` |
| **NFS** | ✓ macOS | `showmount` مدمج؛ تم تكييف تحليل الترويسة |
| **Connection Manager** | ⚠ محدودة | يتطلب التحرير/الحذف استخدام `nmcli` (Linux فقط)؛ عرض القائمة يعمل |

### عام
- لا يوجد تكامل مع root/polkit — الأدوات التي تتطلب صلاحيات مرتفعة (بعض أوضاع Nmap، raw sockets) يجب تشغيلها باستخدام `sudo`؛ أما على macOS فيتم تصعيد الصلاحيات عبر `osascript` + `administrator privileges`
- يتطلب إعادة توجيه وكيل SSH وجود وكيل SSH نشط (`SSH_AUTH_SOCK`)؛ على macOS يتولى النظام ذلك تلقائياً، دون الحاجة إلى أي إعداد يدوي

---

## الشكر والتقدير

- **[Anthropic](https://www.anthropic.com)** — Claude Code، المساعد الذكي المستخدم لبناء هذا المشروع
- المؤلف، من أجل الرؤية والاختبار والتوجيه

---

## ادعم المشروع

إذا كان NMLinux مفيداً لك، ففكر في دعم تطويره:

- **PayPal** — [تبرع عبر PayPal](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** — `bc1qspe0tky7552qas72wgn8w9dswr0dxlv24w39t6ztjqk3nz6kc5tqv753a4`

---

## الترخيص

GPL-2.0 — انظر [LICENSE](https://github.com/thongor77/nmlinux/blob/HEAD/LICENSE).

هذا المشروع إعادة تنفيذ مستقلة. لم يتم استخدام أو نقل أي كود من NETworkManager.
تنزيل الأداة
TIOCSCTTY
EPERM
script
  • Dashboard — ملخص TLS Watchlist: تعكس بطاقة الحالة في Dashboard تلقائيًا حالة TLS Watchlist (OK / expiring / alert) دون إعادة استعلام
  • Dashboard — تغيير حجم الخريطة الجغرافية: تتمدد خريطة العالم الآن أفقيًا عند تغيير حجم النافذة
  • Traceroute — auto-zoom — تقوم خريطة العالم تلقائيًا بالتكبير والتمركز على المربع المحيط بالقفزات المحددة جغرافيًا في نهاية كل مسار؛ يُعطَّل ذلك عند تحريك المستخدم أو تكبيره يدويًا؛ يُستعاد في تتبع المسار التالي؛ النقر بالزر الأيمن يعيد ضبط عرض العالم الكامل
  • الوحدات غير المتغيرة (الأدوات متطابقة على المنصتين): DNS، Nmap Scan، SNMP، Whois
  • الوحدةالوصف
    Dashboardمعلومات الجهاز المحلي، البوابة، IP العام، تحديد الموقع الجغرافي، محللات DNS
    Connection Managerملفات تعريف NetworkManager عبر nmcli: سرد، تصفية، اتصال/قطع/تعديل/حذف
    Interfacesجدول واجهات الشبكة مع تفاصيل لكل واجهة (ip + nmcli)
    Wi-Fiالشبكات المتاحة، أشرطة الإشارة، الأمان، تمييز الشبكة المتصلة
    Subnet Calculatorنطاق الشبكة/البث/المضيفين من CIDR، جدول مضيفين يصل إلى 4096 إدخالًا
    DNS Lookupبحث قائم على dig للسجلات A، AAAA، MX، TXT، NS، CNAME، PTR، SOA، ANY
    Ping Monitorping مستمر لعدة مضيفين، إحصائيات RTT، نسبة فقدان الحزم %
    IP Scannerفحص ping لـ CIDR/نطاق، 50 خيطًا، اسم المضيف (DNS/mDNS/NetBIOS)، عنوان MAC، البائع (OUI)، الواجهة، تصدير CSV + TXT
    Port Scannerفحص اتصالات TCP، 200 خيطًا، إعدادات مسبقة للخدمات، تصدير CSV + TXT
    Nmap7 أوضاع فحص، تحليل مخرجات XML، جدول المضيف/المنفذ/البروتوكول/الحالة/الخدمة، تصدير CSV + TXT
    Whoisمخرجات whois الخام بخط أحادي المسافة
    SNMPsnmpwalk/snmpget, v1/v2c، 10 إعدادات مسبقة لـ OID، جدول النتائج
    SNTP / NTPعميل UDP بلغة بايثون خالصة وفق RFC 4330، الإزاحة/التأخير/الطبقة/المرجع
    SSHطرفية PTY مدمجة (pyte/VT100)، اتصالات محفوظة (JSON)، مصادقة بالمفتاح، سجل تمرير
    Remote Desktopملفات تعريف اتصالات RDP (مجموعات/مجموعات فرعية)؛ يشغّل xfreerdp؛ كلمة المرور لا تُخزَّن أبدًا
    VNCملفات تعريف اتصالات VNC (مجموعات/مجموعات فرعية)؛ يشغّل vncviewer (TigerVNC)؛ متوافق مع macOS ARD؛ كلمة المرور لا تُخزَّن أبدًا
    SSH Key Managerسرد أزواج مفاتيح ~/.ssh/ (النوع، البتات، البصمة)؛ إنشاء Ed25519/RSA 4096؛ نسخ المفتاح العام؛ النشر إلى خادم عبر ssh-copy-id؛ حذف الأزواج مع تأكيد
    TLS Inspectorتفاصيل الشهادة: CN، SANs، المُصدر، الصلاحية + العد التنازلي للانتهاء، الرقم التسلسلي، البروتوكول، التشفير، السلسلة؛ Watchlist مع مراقبة انتهاء خلفية ونقطة لونية في الشريط الجانبي
    SMB / NFSسرد مشاركات SMB (smbclient) وصادرات NFS (showmount) من أي خادم أو NAS؛ بيانات اعتماد اختيارية لـ SMB
    Hosts Fileعرض/تحرير /etc/hosts: إضافة وحذف وتبديل الإدخالات؛ تصفية؛ حفظ عبر pkexec
    Visual Tracerouteمسار قفزة بقفزة على خريطة العالم، تحديد جغرافي مباشر (ip-api.com)، تكبير وتحريك، تصدير CSV + TXT
    MTRMy Traceroute مدمج: نسبة الفقدان %، RTT آخر/متوسط/أفضل/أسوأ/تذبذب لكل قفزة، ملوّن، تصدير CSV + TXT
    Firewall Viewerمجموعة قواعد nftables + iptables/ip6tables للقراءة فقط (بدون جذر)؛ مباشر عبر pkexec؛ تصفية حسب الجدول/السلسلة/الإجراء
    Speed Testتنزيل/رفع/ping عبر Cloudflare؛ لا حاجة لأداة خارجية غير curl؛ رسم بياني للتاريخ (آخر 5 عمليات تشغيل)
    Bandwidthإنتاجية لحظية لكل واجهة: رسم بياني منزلق 60 ثانية، سرعات مباشرة، إجماليات الجلسة، ذروة
    Wake on LANحزمة سحرية بلغة بايثون خالصة (بث UDP)، دفتر مضيفين دائم، لا يتطلب أداة خارجية
    Topology Mapيكتشف أجهزة الشبكة المحلية تلقائيًا عبر nmap -sn؛ رسم بياني تفاعلي بعقد قابلة للسحب، تكبير/تحريك، لوحة تفاصيل
    Settingsاختيار اللغة (FR / EN / ES / DE / IT / PT / JA / ZH)، محفوظ؛ إعادة تشغيل مطلوبة بعد التغيير
    Command Paletteتراكب Ctrl+P: بحث تقريبي عبر جميع الوحدات الـ29 بالاسم أو الكلمة المفتاحية
    File Transferخادم TFTP أو HTTP عند الطلب؛ منفذ ودليل جذر قابلان للتهيئة؛ عناوين IP المحلية كأزرار نسخ؛ جدول سجل مباشر (اسم الملف، IP العميل، الاتجاه ↑/↓، الحجم)؛ قائمة دليل HTTP + GET/POST/PUT؛ TFTP GET + PUT؛ المنفذ 69 يستدعي pkexec
    Exportملف ← تصدير تقرير الشبكة (JSON/Markdown/Text/PDF)؛ تصدير لكل وحدة في Interfaces، DNS، Firewall، SSH، Connections
    الأداةالميزةLinuxmacOS
    xfreerdp / xfreerdp3سطح مكتب بعيد (RDP)Arch: freerdp · Ubuntu ≤24.04: freerdp2-x11 · Ubuntu 26.04+: freerdp3-x11اختياري — يتراجع إلى Microsoft Remote Desktop (open rdp://)
    vncviewerVNCArch: tigervnc · Debian: tigervnc-viewerاختياري — يتراجع إلى مشاركة شاشة macOS (open vnc://، مدمج)
    nm-connection-editorتعديل الاتصالات من مدير الاتصالاتArch: nm-connection-editor— (تُفتح تفضيلات النظام بدلاً من ذلك)
    tracerouteبديل Traceroute (يُستخدم tracepath افتراضيًا)Arch: tracerouteمدمج
    mount.cifs (cifs-utils)تركيب مشاركات SMB من قائمة النقر بزر الماوس الأيمنArch/Debian: cifs-utilsمدمج (mount_smbfs)
    iperf3اختبار السرعة — تبويب LANArch: iperf3 · Debian/Ubuntu: iperf3brew install iperf3