
netwatch v0.27.0
تشخيصات الشبكة في الوقت الفعلي في الطرفية الخاصة بك. أمر واحد، بدون تكوين، رؤية فورية.
NetWatch
شاهد ما تفعله شبكتك فعليًا — مباشرةً، في طرفيتك.
مراقب شبكة يقرأ حركة المرور المشفّرة، ويحدد اسم العملية خلف كل اتصال، ويلتقط البرمجيات الخبيثة وهي تتصل بقائدها. ملف ثنائي واحد. بدون أي إعداد.
كل شيء دفعة واحدة، مع صفر صفوف من الزخرفة — لا شريط رأس، لا شريط قوائم، لا شريط حالة. ينمو التنزيل صعودًا من محور الزمن المشترك، وينمو التحميل نزولًا منه، لذا فإن تناظر حركة المرور هو شكل تتعرف عليه قبل أن تقرأ رقمًا. اللون يرمز إلى الحجم، وليس إلى السلسلة.
…وعرض الألسنة العشرة الافتراضي تحتها، على بُعد ضغطة V واحدة ويشترك في نفس المجمعات الدافئة — لوحة المعلومات، البرنامج خلف كل مقبس، الفحص العميق للحزم، خريطة الشبكة، وما يتحدث إليه كل برنامج.
معظم أدوات الشبكة تجيب عن سؤال واحد — "ما الذي يستهلك نطاقي الترددي؟" — ثم تتوقف. NetWatch يستمر. فهو يفك تشفير البروتوكولات على الخط، ويخبرك أي برنامج فتح كل اتصال، ويراقب الأنماط التي تعني وجود مشكلة — فحص منافذ، برمجية خبيثة ترسل إشارات إلى خادم قيادة، بيانات تتسرب عبر DNS. عندما يبدو شيء مريبًا، ضغطة مفتاح واحدة تجمّد حزمة أدلة محمولة يمكنك إرفاقها بتقرير خطأ.
فكّر فيه كـملف ثنائي واحد بدون إعداد يقوم بعمل مقياس نطاق ترددي، وعرض الفرز في Wireshark، وكاشف اختراق خفيف — دون مغادرة الطرفية.
إنه يتكيف مع السؤال الذي تطرحه — في كلا الاتجاهين: --view dense يملأ طرفية كبيرة بأربعة صناديق بلا زخرفة، وnetwatch --lite هو شاشة واحدة 80×24 لسؤال "ما الذي يستخدم شبكتي الآن؟"؛ وعرض الألسنة العشرة الكامل موجود عندما تكون الإجابة "شيء أحتاج إلى التحقيق فيه" — على بُعد ضغطة مفتاح واحدة، ويشترك في نفس الالتقاط الحي.
صُمم لـ فرق الدفاع الأزرق، ومستجيبي الحوادث، ومهندسي SRE، وأصحاب الخوادم المنزلية الذين يحتاجون إلى رؤية ما يحدث الآن — لا تحليل ملف التقاط بعد ساعة.
أكثر من 650 اختبارًا · معزول بـ Landlock (لينكس) · يحلل حركة مرور عدائية بأمان
والجزء الذي لا تفعله أي أداة طرفية أخرى على الإطلاق: NetWatch يتعلم ما يتحدث إليه كل برنامج على الجهاز، ويحوّل ذلك الأساس المرصود إلى سياسة بضغطة مفتاح واحدة، ويخبرك في اللحظة التي يبدأ فيها برنامج بالتواصل مع مكان جديد.
راقب ← رقِّ ← حذّر. يصبح الأساس سياسة بضغطة مفتاح واحدة؛ وتصل الوجهة الجديدة التالية كـانحراف.
لماذا NetWatch
- 🔓 اقرأ حركة المرور المشفّرة التي تتحكم فيها — وجّه
SSLKEYLOGFILEالخاص بمتصفح أو تطبيق نحو NetWatch وشاهد النص الصريح لجلسات TLS 1.3 الخاصة به تُفك شفرتها مباشرةً، بنفس الطريقة التي يفعلها Wireshark. لا وكيل، لا شهادات، لا شيء في المنتصف. - 🛰️ تعلّم ما يتحدث إليه كل برنامج، ثم يُخطرك عندما يتغير — يراقب NetWatch الوجهات التي يصل إليها كل عملية (اسم المضيف من ClientHello، النظام المستقل، المنفذ)، وضغطة مفتاح واحدة ترفع ذلك الأساس المرصود إلى سياسة إرسال خارجي. ومنذ ذلك الحين يحذّر عندما يبدأ برنامج بالتواصل مع مكان جديد. هذه هي الجملة التي لا تستطيع مجموعة قواعد جدار الحماية التعبير عنها:
curlكان يصل فقط إلىapi.github.com، واليوم وصل إلى شيء آخر. وضع المراقبة فقط — لا يحظر أبدًا. - 🧬 بصم إصبع البرنامج خلف الاتصال — يحوّل JA4 كل مصافحة TLS/QUIC إلى بصمة مستقرة، حتى تتمكن من التعرف على عميل معين — أو قطعة برمجية خبيثة معينة — رغم أن حركة المرور مشفّرة، بنفس الطريقة التي تتعرف بها على متصفح من خلال user-agent الخاص به. انتقل من بصمة للعثور على كل تدفق آخر من نفس البرنامج.
- 🚨 التقط البرمجيات الخبيثة وهي تتصل بقائدها — كشف مدمج لإشارات C2 (فحوصات منتظمة بتباين زمني منخفض)، وفحوصات المنافذ، وحفر أنفاق DNS يعمل في الخلفية بدون أي إعداد. تنبيه حرج يجمّد المسجّل تلقائيًا بحيث تكون الأدلة محفوظة بالفعل عندما تنظر.
- ⚙️ حدد اسم العملية خلف كل اتصال — يربط كل مقبس بالبرنامج الذي فتحه من
ss/lsof، مع kprobe اختياري على مستوى النواة عبر eBPF (لينكس، ميزةebpf) يلتقط أيضًا التدفقات قصيرة العمر التي قد يفوتها الاستطلاع. يعمل في كل مكان؛ الـ kprobe تحسين وليس شرطًا. - 📡 فك تشفير البروتوكولات، وليس المنافذ فقط — تحليل حقيقي للطبقة السابعة لـ TLS وQUIC وHTTP وDNS (بالإضافة إلى استشعار banner/إصدار SSH) وعشرات غيرها، مع تتبع تدفق لكل اتصال وتوقيت المصافحة — بحيث ترى
api.github.comوبصمة JA4، وليس فقط "المنفذ 443". - 🎥 جمّد الأدلة — سلّح مسجّلًا دوّارًا وجمّد أي حادثة في حزمة محمولة: الحزم بالإضافة إلى الاتصالات وDNS والصحة والتنبيهات التي تفسرها. صُمم لتقارير الأخطاء وتحليلات ما بعد الحادثة.
- 🛡️ آمن بالتصميم — بعد الإعداد، يخفض NetWatch صلاحياته ويقفل نفسه في قائمة سماح لنظام الملفات عبر Landlock (لينكس). أداة تحلل حركة مرور عدائية لا يمكنها قراءة مفاتيح SSH أو ملفات تعريف المتصفح أو
/etc/shadow. - 🪟 يتقلص إلى شاشة واحدة —
--liteيجيب عن "ما الذي يستخدم شبكتي، وهل اتصالي سليم؟" على شاشة واحدة 80×24 بستة مفاتيح، بحيث يناسب جلسة SSH إلى Pi أو تقسيم tmux. ضغطة مفتاح واحدة تصعّد إلى عرض التحقيق الجنائي الكامل مع مجمعات دافئة بالفعل.
لا ملفات إعداد. لا إعداد. لا خيارات مطلوبة.
التثبيت```bash
brew install netwatch # macOS / Linux nix-shell -p netwatch # NixOS / Nix paru -S netwatch-tui-bin # Arch (prebuilt; netwatch-tui builds from source) scoop install netwatch # Windows cargo install netwatch-tui # anywhere with Rust
أو احصل على نسخة مُجمّعة مسبقًا من [Releases](https://github.com/matthart1983/netwatch/releases/latest).
**يتطلب Windows تثبيت [Npcap](https://npcap.com/#download)** — الإعدادات الافتراضية للمثبّت كافية، وبدونه يخرج NetWatch عند بدء التشغيل مع رسالة توضح ذلك. **البناء من المصدر** (`cargo install`, `paru -S netwatch-tui`) يتطلب ملفات رؤوس تطوير libpcap: `libpcap-dev` على Debian/Ubuntu وAlpine، و`libpcap-devel` على Fedora/RHEL، و`libpcap` على Arch. غيابها يظهر كخطأ `cannot find -lpcap` في مرحلة الربط. يأتي macOS مع libpcap مدمجًا؛ بينما تُرفق نسخ Linux الثابتة (`-static`) أدناه libpcap ولا تحتاج إلى تثبيت أي شيء.
حزم Nix وArch وScoop تتم صيانتها بواسطة مُجمّعي حزم من المجتمع — شكرًا لهم. قدّم مشكلات التغليف لديهم؛ وقدّم أخطاء netwatch هنا. إذا تأخّرت حزمة عن إصدار ما، فصفحة [Repology](https://repology.org/project/netwatch-tui/versions) تُظهر ذلك.
<details>
<summary><strong>جميع المنصات والبناء من المصدر</strong></summary>
| المنصة | التحميل |
|----------|----------|
| Linux (x86_64, Debian/Ubuntu) | [`netwatch-linux-x86_64.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Linux (aarch64, Debian/Ubuntu) | [`netwatch-linux-aarch64.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Linux (x86_64, ثابت — Arch/Fedora/Alpine/أي توزيعة) | [`netwatch-linux-x86_64-static.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Linux (aarch64, ثابت — Arch/Fedora/Alpine/أي توزيعة) | [`netwatch-linux-aarch64-static.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| macOS (Intel) | [`netwatch-macos-x86_64.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| macOS (Apple Silicon) | [`netwatch-macos-aarch64.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Windows (x86_64) | [`netwatch-windows-x86_64.exe.zip`](https://github.com/matthart1983/netwatch/releases/latest) |
تُرفق نسخ Linux الثابتة (`-static`) libpcap وليس لها أي تبعيات وقت التشغيل — استخدمها على Arch أو Fedora أو Alpine أو أي توزيعة تُبلّغ فيها النسخ الافتراضية عن خطأ `libpcap.so.0.8: cannot open shared object file`.
يتطلب إصدار Windows تثبيت [Npcap](https://npcap.com/#download) — ثبّته قبل أول تشغيل. الإعدادات الافتراضية للمثبّت كافية: يبحث NetWatch في `System32\Npcap`، حيث يضع Npcap فعليًا `wpcap.dll`، لذا فإن خيار *Install Npcap in WinPcap API-compatible Mode* غير مطلوب. وفي غياب Npcap تمامًا، تحصل على رسالة من NetWatch تُسمّي ما هو مفقود، وليس صندوق خطأ من Windows. (في الإصدار v0.29.1 وما قبله كنت تحتاج فعلًا إلى تحديد ذلك الخيار — انظر [#47](https://github.com/matthart1983/netwatch/issues/47).)
**من المصدر:**```bash
git clone https://github.com/matthart1983/netwatch.git && cd netwatch
cargo build --release
المتطلبات الأساسية: Rust 1.70+ ورؤوس تطوير libpcap. الأمر نفسه ينطبق على cargo install netwatch-tui.
| المنصة | التثبيت |
|---|---|
| Debian / Ubuntu | sudo apt install libpcap-dev |
| Fedora / RHEL | sudo dnf install libpcap-devel |
| Arch | sudo pacman -S libpcap |
| Alpine | sudo apk add libpcap-dev |
| macOS | مضمّن مع النظام |
| Windows | Npcap — يجلب البناء Npcap SDK تلقائيًا، أو عيّن NPCAP_SDK إلى نسخة مستخرجة |
بدونها يفشل البناء في مرحلة الربط مع /usr/bin/ld: cannot find -lpcap. إذا كنت تريد فقط تشغيل NetWatch بدلاً من بنائه، فإن ملفات Linux الثنائية -static أعلاه لا تحتاج إلى أيٍّ من هذا.
بدء سريع```bash
netwatch # interface stats, connections, config — no privileges needed sudo netwatch # full mode — adds live packet capture + health probes
هذا كل شيء. بدّل بين التبويبات باستخدام `1`–`9`، اضغط `?` للمساعدة، و`q` للخروج. لوحة المعلومات مفيدة خلال خمس ثوانٍ؛ كل ما هو أدناه موجود عندما تحتاج إلى التعمق أكثر.
> **لينكس بدون `sudo`:** امنح صلاحيات الالتقاط مرة واحدة وشغّل كالمستخدم العادي —
> `sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' "$(which netwatch)"`. أعد تشغيلها بعد كل ترقية ([التفاصيل](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#running-without-sudo-linux)).
### شاهد فك تشفير TLS في 60 ثانية
أسرع طريقة لفهم ما هو NetWatch — شاهدها وهي تقرأ النص الصريح لجلسة TLS 1.3 *أنت* تتحكم بها:```bash
sudo netwatch # 1. launch, then open the Packets tab (4)
SSLKEYLOGFILE=/tmp/sslkeylog.txt curl https://example.com # 2. any client that exports its keys
# 3. filter the Packets tab with: decrypted:true
البيانات المُفكَّكة للتطبيق تُعرض مباشرةً. أي تسجيل ضغطات مفاتيح لا يُفشل الالتقاط أبدًا — هذا السجل يبقى فقط غير واضح. (SSLKEYLOGFILE هي نفس الآلية التي يستخدمها Wireshark؛ تعمل فقط مع حركة المرور التي تتحكم فيها أنت، ولا تعمل أبدًا مع حركة مرور طرف ثالث أو برمجيات خبيثة.)
قراءة النص الصريح من جلسة TLS 1.3 مباشرة — مُفكَّك التشفير في الطرفية مباشرةً. لا وكيل، ولا رجل في المنتصف.
شاهدها تلتقط انحراف حركة الخروج في 60 ثانية
الحلقة من العرض التوضيحي أعلاه، في ثلاثة أوامر:```bash sudo netwatch # 1. launch and open the Egress tab (0). Leave it a minute # while it learns; each process grows a list of destinations # with hostnames, autonomous systems and ports # 2. put the cursor on a process and press Enter — its observed # baseline becomes a rule in egress-policy.toml curl https://example.org # 3. same program, somewhere it has never been
الوجهة الجديدة تصل مع حكم `✗ drift` وتنبيه. لم يتم حظر أي شيء — النقطة هي أنك *أُبلغت*.
الأحكام ليست ثنائية عمدًا:
| | |
|---|---|
| `✓ sni` / `✓ ip` | تطابق مع اسم مضيف أو عنوان مُعلن — دقيق |
| `~ asn` | تطابق فقط عبر نظام مستقل — وهذا يقرّ بكل ما *يديره ذلك النظام المستقل*، وهو بالنسبة لمزوّد سحابي ضخم غير محدود فعليًا |
| `? ech` | Encrypted ClientHello: الاسم مخفي بالتصميم، لذا هذا "لا يمكن الحكم"، وليس "سيئ" |
| `✗ drift` | خارج القائمة المسموحة |
| `— no rule` | هذا البرنامج لم يُعلن أبدًا — لم يتم فحص أي شيء |
| `✗ undeclared` | لا توجد قاعدة، تحت `strict = true` — السياسة تدّعي الاكتمال، لذا *الغياب* هو النتيجة |
تقبل القواعد أسماء المضيفين الدقيقة، و`*.wildcards`، والأنظمة المستقلة، وكتل CIDR (`10.0.0.0/8`)، والمنافذ. `strict = true` هو ما يحوّل المدقق من "أخبرني عندما يسيء برنامجي المُعلن التصرف" إلى "أخبرني عندما يبدأ شيء لم أُعلنه أبدًا بالتواصل" — وهو الشكل الذي يتخذه الاختراق الفعلي.
## ما الذي تحصل عليه
عشر علامات تبويب، تُبدَّل بالمفاتيح `1`–`9` و`0`:
| # | التبويب | ما يعرضه |
|---|-----|---------------|
| 1 | **لوحة المعلومات** | الواجهات، مخطط النطاق الترددي، أهم الاتصالات، صحة البوابة/DNS، خريطة حرارية لزمن الاستجابة. مفيد خلال 5 ثوانٍ. |
| 2 | **الاتصالات** | كل مقبس مع عمليته + PID، البروتوكول، الحالة، GeoIP، ومخططات زمن الاستجابة. |
| 3 | **الواجهات** | لكل واجهة: IPv4/IPv6، MAC، MTU، RX/TX، الأخطاء، الإسقاطات. |
| 4 | **الحزم** | التقاط مباشر مع فك ترميز L7 حقيقي، وفك تشفير TLS 1.3، وJA4، وتتبع تدفق لكل اتصال، وفلاتر، وتصدير PCAP. |
| 5 | **الإحصائيات** | تفصيل البروتوكولات بالبايتات + رسم بياني لتوقيت مصافحة TCP. |
| 6 | **الطوبولوجيا** | خريطة ASCII للجهاز → البوابة → DNS → أهم المضيفين، مع traceroute. |
| 7 | **الخط الزمني** | خط زمني للاتصالات ملوّن حسب حالة TCP؛ تنبيهات الأمان تصل هنا. |
| 8 | **العمليات** | ترتيب النطاق الترددي لكل عملية مع RX/TX المباشر وعدد الاتصالات. |
| 9 | **الرؤى** | *(اختياري)* يرسل لقطة إلى LLM محلي/سحابي لتحليل بلغة بسيطة. |
| 0 | **الخروج** | يتعلم ما تتحدث إليه كل عملية (اسم مضيف/AS/منفذ)، ويرقّي هذا الأساس إلى سياسة بضغطة مفتاح واحدة، ثم يحذّر عند الانحراف. للمراقبة فقط، لا يحظر أبدًا. |
تبويب الحزم هو حيث تعيش الأدلة الجنائية — فك ترميز بروتوكول عميق، وفك تشفير TLS 1.3 مباشر، وصيد التهديدات عبر JA4، وفلاتر عرض بأسلوب Wireshark، والتقاط الحوادث. **[راجع مرجع الميزات الكامل ←](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md)**
### عرض مبسّط
عشر علامات تبويب هي أداة مشغّل. عندما يكون السؤال فقط *"ما الذي يستخدم شبكتي، وهل اتصالي سليم؟"* — جهاز واحد، جلسة SSH إلى Pi، تقسيم tmux — يوجد `--lite`:```bash
netwatch --lite # one screen, fits 80×24
شاشة واحدة، ستة مفاتيح. سرعة حية، ووصلية، ومن يتحدث — وسّع أي صف في مكانه، وصفِّ أثناء الكتابة.
كل شيء على شاشة واحدة: رسوم بيانية حية للسرعة، ووصلية البوابة/DNS/الإنترنت، وأكثر المتحدثين نشاطًا حسب العملية والمضيف. ستة مفاتيح — q للخروج، p للإيقاف المؤقت، / للتصفية، ↵ لتوسيع متحدث، L للعودة إلى العرض الكامل، ? للمساعدة.
اضغط L من أي من العرضين للتبديل. كلاهما يشتركان في نفس أدوات الجمع، لذا فإن التصعيد من "هناك شيء يبدو غير طبيعي" إلى عرض التحقيق الكامل بعشر علامات تبويب يكلف ضغطة مفتاح واحدة — دون إعادة تشغيل، دون فقدان السجل، والالتقاط ما زال يعمل.
العرض الكثيف
الاتجاه الآخر: عندما يكون لديك طرفية كبيرة وتريد كل شيء دفعة واحدة، فإن --view dense يملؤها بأربعة صناديق دون أي إطار — لا شريط رأس، لا شريط قوائم، لا شريط حالة. الهوية، وحالة الفرز، ونطاق الصفحة، وكل اختصارات المفاتيح تعيش داخل حدود الصندوق، لذا يحمل كل صف بيانات. يتطلب 130×44 كحد أدنى وينمو ليملأ أي مساحة تمنحها له: عرض أكبر يعني مزيدًا من السجل في الرسوم البيانية ومساحة لأسماء مضيفين كاملة، وارتفاع أكبر يعني مزيدًا من الواجهات ومزيدًا من الاتصالات.```bash
netwatch --view dense # four boxes, needs 130×44
هذه هي الشاشة في أعلى ملف README هذا. العنصر المميز هو **الرسم البياني المزدوج المعكوس**: التحميل ينمو للأعلى من محور زمني مركزي، والرفع ينمو للأسفل من نفس المحور. يصبح تماثل حركة المرور شكلاً تتعرف عليه دون قراءة رقم — دفعة التحميل هي منحدر فوق الخط، ومهمة النسخ الاحتياطي هي منحدر أسفله. كلا النصفين مكتوبان بطريقة برايل بمعدل عيّنتين لكل خلية حرف، وكل خلية ملوّنة حسب **ارتفاعها في الرسم البياني** وليس حسب السلسلة التي تنتمي إليها، لذا ترى شدة الارتفاع قبل أن تقيسه مقابل المحور.
منحدرات النطاق الترددي تنتقل من البارد إلى الساطع لأن النطاق العالي *مشغول*، وليس *سيئاً* — الارتباط المشبع أثناء النسخ الاحتياطي يعمل بشكل صحيح. فقط القيم المحدودة التي يكون فيها الارتفاع سيئاً فعلاً — تشبع الارتباط، ميزانية زمن الوصول لكل قفزة — تحصل على معالجة الأخضر→الكهرماني→الأحمر، وتتلوّن عداداتها حسب الموضع على طول الشريط، بحيث تكون المنطقة الحمراء مرئية قبل الوصول إليها.
أسفل الرسم البياني: معدلات لكل واجهة مع خطوط شررية لمدّة 60 ثانية، وميزانيات زمن وصول لأربع قفزات (البوابة، DNS، الإنترنت، وأبطأ نظير تتحدث معه فعلياً)، وجدول الاتصالات مع تفاصيل الصف المحدد مرفوعة إلى أعلى نفس الصندوق — لا شاشة جديدة، ولا زر رجوع. يحمل صف التفاصيل حالة TCP الخاصة بالنواة — `cwnd`, `ssthresh`, `mss`, `rwnd` — مقروءة مباشرة من النواة: `inet_diag` عبر netlink على Linux، وsysctl `net.inet.tcp.pcblist64` على macOS. تختلف النواتان حول الوحدات (Linux يعدّ الشرائح، BSD يعدّ البايتات)، لذا يتم تطبيع قيم macOS مقابل MSS ويعني العمود نفس الشيء على كليهما. يقرأ Windows `--` حتى يتم توصيل `GetPerTcpConnectionEStats`.
`V` يبدّل `full → lite → dense`، أو اضبطه مرة واحدة تحت **Settings → View**. تحت 130×44 يتراجع إلى نفس شبكة 80×24 التي يستهدفها وضع Lite — والتي تملأ مساحتها أيضاً — ولا يتم التمرير جانبياً أبداً.
## غوص أعمق
| الدليل | ما يحتويه |
|-------|--------------|
| **[مرجع الميزات](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md)** | كل اختصارات لوحة المفاتيح، لغة عامل تصفية العرض، قائمة مفكك البروتوكول، السمات، وخيارات الإعدادات. |
| **[فك تشفير TLS 1.3](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#tls-13-decryption)** | كيف يعمل فك التشفير عبر `SSLKEYLOGFILE`، ومجموعات التشفير المدعومة، وما يمكنه وما لا يمكنه قراءته. |
| **[صيد التهديدات باستخدام JA4](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#threat-hunting-with-ja4)** | بصمة العملاء والتنقل عبر التدفقات. |
| **[الأمان وصندوق رمل Landlock](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#security--forensics)** | نموذج التهديد، وإسقاط الصلاحيات، وقائمة السماح لنظام الملفات. |
| **[فحص سياسة الخروج](https://github.com/matthart1983/netwatch/blob/main/docs/egress-linter-plan.md)** | نموذج المراقبة → الترقية → التحذير، لغة القواعد، وضع `strict`، ومخطط تصدير NDJSON. |
| **[مسجل الرحلة](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#flight-recorder)** | التسليح، والتجميد، ومحتويات حزمة الحادث. |
| **[رؤى الذكاء الاصطناعي](https://github.com/matthart1983/netwatch/blob/main/docs/INSIGHTS.md)** | تحليل LLM محلي/سحابي اختياري (مغلق افتراضياً). |
## كيف يعمل```
Raw bytes → Ethernet → IPv4/IPv6/ARP → TCP/UDP/ICMP → L7 decoders
↓
Per-flow stream tracking · Handshake timing
TLS 1.3 decryption · JA4 · Threat detection
| الجامع | macOS | Linux |
|---|---|---|
| الاتصالات | lsof + PKTAP | /proc/net/tcp + eBPF kprobe |
| الحزم | libpcap (BPF) | libpcap |
| إسناد العمليات | PKTAP | استطلاع lsof/ss، مع تراكب eBPF kprobe اختياري |
كل شيء يتدهور بأناقة: الميزات التي تتطلب صلاحيات مرتفعة تُظهر رسالة واضحة وتتراجع، ولا تتعطل أبدًا. ملاحظات البنية الكاملة موجودة في WIKI.md.
ذات صلة
أشقاء: SysWatch (النظام) وDiskWatch (القرص) — نفس الواجهة، سطح مختلف. ESSH — عميل SSH نقي بلغة Rust بنفس الجمالية الطرفية؛ يتصل حيث يراقب NetWatch.
NetWatch Cloud — مراقبة أسطول مستضافة للخوادم التي تشغّل NetWatch عليها. وكيل Rust صغير على كل مضيف Linux، ولوحة تحكم في الوقت الفعلي، وتنبيهات بريد إلكتروني وSlack حول زمن الاستجابة أو فقدان الحزم أو الخوادم غير المتصلة. مجاني بينما ننمو. الـوكيل وSDK ولوحة التحكم مرخصة بموجب MIT؛ الواجهة الخلفية المستضافة ملكية.
شكر
المُعبئون. NetWatch موجود في homebrew-core وnixpkgs وAUR ودلو Scoop الرئيسي — ولم أقم بتعبئة أي منها. كل واحد من تلك تم بواسطة شخص وجد الأداة مفيدة، وقام بالعمل دون طلب، وحافظ على تحديثها منذ ذلك الحين. عادةً ما تتبع إدخال Scoop إصدارًا خلال ساعات من الوسم.
| Dominiquini | netwatch-tui على AUR، منذ مارس 2026 |
| kemelzaidan | netwatch-tui-bin على AUR |
| tomasrivera | netwatch في nixpkgs |
| scillidan | netwatch في دلو Scoop الرئيسي، منذ v0.15.3 |
| مشرفو Homebrew | لإدخال الصيغة إلى النواة، والروبوت الذي تتبع كل إصدار منذ ذلك الحين |
التعبئة عمل لا يُشكر عليه ولا يُلاحظ إلا عند تعطله. إذا قمت بتثبيت NetWatch عبر أحد هذه، فلديهم الشكر، وليس لي.
المساهمون. أرسل @lamchau و@fdncred و@PeteE تصحيحات. شكرًا لكم — طلب سحب من شخص غريب هو أفضل ما يحدث لمشروع مثل هذا.
ولكل من فتح مشكلة مع إعادة إنتاج حقيقية، أو جادل في قرار تصميمي، أو أخبرني أن المخرجات خاطئة على طرفيته: هذه هي حلقة التغذية الراجعة التي بُني عليها هذا.
المساهمة
الأسئلة والأفكار وتقارير الأخطاء مرحب بها في مناقشات GitHub والمشكلات. راجع CONTRIBUTING.md لاتفاقيات البرمجة وWIKI.md لدليل البنية.
الترخيص
MIT