
netwatch v0.27.0
अपने टर्मिनल में रीयल-टाइम नेटवर्क डायग्नोस्टिक्स। एक कमांड, शून्य कॉन्फ़िगरेशन, तत्काल दृश्यता।
NetWatch
देखें कि आपका नेटवर्क वास्तव में क्या कर रहा है — लाइव, आपके टर्मिनल में।
एक नेटवर्क मॉनिटर जो एन्क्रिप्टेड ट्रैफ़िक पढ़ता है, हर कनेक्शन के पीछे की प्रक्रिया का नाम बताता है, और मैलवेयर को घर कॉल करते हुए पकड़ता है। एक बाइनरी। शून्य कॉन्फ़िगरेशन।
सब कुछ एक साथ, शून्य क्रोम पंक्तियों के साथ — कोई हेडर बार नहीं, कोई मेनू बार नहीं, कोई स्टेटस बार नहीं। डाउनलोड साझा समय-अक्ष से ऊपर बढ़ता है, अपलोड उससे नीचे बढ़ता है, इसलिए ट्रैफ़िक समरूपता एक ऐसा आकार है जिसे आप कोई संख्या पढ़ने से पहले पहचान लेते हैं। रंग परिमाण को दर्शाता है, श्रृंखला को नहीं।
…और इसके नीचे डिफ़ॉल्ट दस-टैब इंस्ट्रूमेंट, एक V की दूरी पर और समान गर्म कलेक्टरों को साझा करते हुए — डैशबोर्ड, हर सॉकेट के पीछे का प्रोग्राम, डीप पैकेट इंस्पेक्शन, नेटवर्क मैप, और प्रत्येक प्रोग्राम किससे बात करता है।
अधिकांश नेटवर्क टूल एक प्रश्न का उत्तर देते हैं — "मेरा बैंडविड्थ क्या उपयोग कर रहा है?" — और रुक जाते हैं। NetWatch आगे बढ़ता रहता है। यह वायर पर प्रोटोकॉल को डिकोड करता है, आपको बताता है कि कौन सा प्रोग्राम प्रत्येक कनेक्शन खोलता है, और उन पैटर्नों पर नज़र रखता है जिनका मतलब परेशानी है — एक पोर्ट स्कैन, कमांड सर्वर को बीकन करता मैलवेयर, DNS पर चुपके से बाहर जाता डेटा। जब कुछ गलत दिखता है, एक कीप्रेस एक पोर्टेबल एविडेंस बंडल फ्रीज़ कर देता है जिसे आप बग रिपोर्ट के साथ संलग्न कर सकते हैं।
इसे एक शून्य-कॉन्फ़िग बाइनरी के रूप में सोचें जो बैंडविड्थ मीटर, Wireshark का ट्राइएज व्यू, और एक हल्के इंट्रूज़न डिटेक्टर का काम करती है — टर्मिनल छोड़े बिना।
यह आपके पूछे जा रहे प्रश्न के पैमाने तक फैलता है — दोनों दिशाओं में: --view dense एक बड़े टर्मिनल को चार ज़ीरो-क्रोम बॉक्स से भर देता है, और netwatch --lite "अभी मेरा नेटवर्क क्या उपयोग कर रहा है?" के लिए एक 80×24 स्क्रीन है; पूरा दस-टैब व्यू तब होता है जब उत्तर "कुछ जिसकी मुझे जाँच करनी है" हो — एक कीप्रेस की दूरी पर, समान लाइव कैप्चर साझा करते हुए।
के लिए बनाया गया ब्लू-टीमर्स, इंसिडेंट रिस्पॉन्डर्स, SRE, और होमलैबर्स जिन्हें अभी क्या हो रहा है देखने की ज़रूरत है — एक घंटे बाद कैप्चर फ़ाइल पार्स करने की नहीं।
650+ परीक्षण · Landlock-सैंडबॉक्स्ड (Linux) · सुरक्षित रूप से शत्रुतापूर्ण ट्रैफ़िक पार्स करता है
और वह हिस्सा जो कोई अन्य टर्मिनल टूल बिल्कुल नहीं करता: NetWatch सीखता है कि मशीन पर प्रत्येक प्रोग्राम किससे बात करता है, उस अवलोकित बेसलाइन को एक कीप्रेस के साथ नीति में बदल देता है, और आपको उस क्षण बताता है जब कोई प्रोग्राम कहीं नया बात करना शुरू करता है।
अवलोकन करें → प्रमोट करें → चेतावनी दें। बेसलाइन एक कीप्रेस के साथ नीति बन जाती है; अगला नया गंतव्य ड्रिफ्ट के रूप में आता है।
NetWatch क्यों
- 🔓 अपने नियंत्रण वाले एन्क्रिप्टेड ट्रैफ़िक को पढ़ें — ब्राउज़र या ऐप के
SSLKEYLOGFILEको NetWatch की ओर इंगित करें और उसके TLS 1.3 सत्रों का प्लेनटेक्स्ट लाइव डिकोड होते देखें, उसी तरह जैसे Wireshark करता है। कोई प्रॉक्सी नहीं, कोई सर्टिफ़िकेट नहीं, बीच में कुछ नहीं। - 🛰️ जानें कि हर प्रोग्राम किससे बात करता है, फिर बदलने पर सूचित हों — NetWatch देखता है कि प्रत्येक प्रक्रिया किन गंतव्यों तक पहुँचती है (ClientHello से होस्टनाम, स्वायत्त प्रणाली, पोर्ट), और एक कीप्रेस उस अवलोकित बेसलाइन को ईग्रेस नीति में प्रमोट कर देता है। उसके बाद यह चेतावनी देता है जब कोई प्रोग्राम कहीं नया बात करना शुरू करता है। यह वह वाक्य है जिसे फ़ायरवॉल नियमसेट व्यक्त नहीं कर सकता:
curlपहले केवलapi.github.comतक पहुँचता था, और आज यह कुछ और तक पहुँचा। केवल-अवलोकन — यह कभी ब्लॉक नहीं करता। - 🧬 कनेक्शन के पीछे के सॉफ़्टवेयर को फ़िंगरप्रिंट करें — JA4 प्रत्येक TLS/QUIC हैंडशेक को एक स्थिर फ़िंगरप्रिंट में बदल देता है, ताकि आप किसी विशिष्ट क्लाइंट — या विशिष्ट मैलवेयर — को पहचान सकें भले ही ट्रैफ़िक एन्क्रिप्टेड हो, उसी तरह जैसे आप ब्राउज़र को उसके user-agent से पहचानते हैं। समान सॉफ़्टवेयर से हर अन्य फ़्लो खोजने के लिए फ़िंगरप्रिंट पर पिवट करें।
- 🚨 घर कॉल करते मैलवेयर को पकड़ें — C2 बीकनिंग (नियमित, कम-जिटर चेक-इन), पोर्ट स्कैन, और DNS टनलिंग के लिए अंतर्निहित डिटेक्शन शून्य सेटअप के साथ पृष्ठभूमि में चलता है। एक गंभीर अलर्ट स्वचालित रूप से रिकॉर्डर को फ्रीज़ कर देता है ताकि जब आप देखें तो एविडेंस पहले से सहेजा हुआ हो।
- ⚙️ हर कनेक्शन के पीछे की प्रक्रिया का नाम बताएं — प्रत्येक सॉकेट को उस प्रोग्राम से मैप करता है जिसने इसे
ss/lsofसे खोला, वैकल्पिक kernel-स्तरीय eBPF kprobe (Linux,ebpfफ़ीचर) के साथ जो पोलिंग से छूट सकने वाले अल्पकालिक फ़्लो को भी पकड़ता है। हर जगह काम करता है; kprobe एक संवर्द्धन है, आवश्यकता नहीं। - 📡 प्रोटोकॉल को डिकोड करें, केवल पोर्ट को नहीं — TLS, QUIC, HTTP, और DNS का वास्तविक L7 पार्सिंग (साथ ही SSH बैनर/संस्करण स्निफ़) और एक दर्जन से अधिक, प्रति-फ़्लो स्ट्रीम ट्रैकिंग और हैंडशेक टाइमिंग के साथ — ताकि आप
api.github.comऔर JA4 फ़िंगरप्रिंट देखें, न कि केवल "पोर्ट 443।" - 🎥 एविडेंस फ्रीज़ करें — एक रोलिंग रिकॉर्डर सशस्त्र करें और किसी भी इंसिडेंट को पोर्टेबल बंडल में फ्रीज़ करें: पैकेट साथ ही कनेक्शन, DNS, स्वास्थ्य, और अलर्ट जो उन्हें समझाते हैं। बग रिपोर्ट और पोस्ट-मॉर्टम के लिए बनाया गया।
- 🛡️ डिज़ाइन से सुरक्षित — सेटअप के बाद, NetWatch अपने विशेषाधिकार छोड़ देता है और खुद को Landlock फ़ाइलसिस्टम अनुमति-सूची (Linux) में बंद कर लेता है। एक टूल जो शत्रुतापूर्ण ट्रैफ़िक पार्स करता है आपकी SSH कुंजियाँ, ब्राउज़र प्रोफ़ाइल, या
/etc/shadowनहीं पढ़ सकता। - 🪟 एक स्क्रीन तक सिकुड़ता है —
--lite"मेरा नेटवर्क क्या उपयोग कर रहा है, और क्या मेरा कनेक्शन ठीक है?" का उत्तर एक 80×24 स्क्रीन पर छह कुंजियों के साथ देता है, ताकि यह Pi के SSH सत्र या 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 के डेवलपमेंट हेडर चाहिए: Debian/Ubuntu और Alpine पर `libpcap-dev`, Fedora/RHEL पर `libpcap-devel`, Arch पर `libpcap`। इनके न होने पर लिंक टाइम पर `cannot find -lpcap` दिखता है। macOS में libpcap पहले से आता है; नीचे दिए गए `-static` Linux बाइनरीज़ इसे बंडल करते हैं और उन्हें कुछ भी इंस्टॉल करने की ज़रूरत नहीं होती।
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, static — Arch/Fedora/Alpine/कोई भी डिस्ट्रो) | [`netwatch-linux-x86_64-static.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Linux (aarch64, static — 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) |
`-static` Linux बिल्ड 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 बिल्कुल न होने पर आपको Windows एरर बॉक्स नहीं, बल्कि NetWatch का एक संदेश मिलता है जो बताता है कि क्या गायब है। (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 को बनाने के बजाय चलाना चाहते हैं, तो उपरोक्त -static Linux बाइनरीज़ को इनमें से किसी की आवश्यकता नहीं है।
त्वरित आरंभ```bash
netwatch # interface stats, connections, config — no privileges needed sudo netwatch # full mode — adds live packet capture + health probes
बस इतना ही। `1`–`9` से टैब बदलें, मदद के लिए `?` दबाएँ, बाहर निकलने के लिए `q` दबाएँ। डैशबोर्ड पाँच सेकंड में उपयोगी है; बाकी सब कुछ वहाँ है जब आपको गहराई में जाने की ज़रूरत हो।
> **`sudo` के बिना Linux:** कैप्चर क्षमताएँ एक बार प्रदान करें और अपने सामान्य उपयोगकर्ता के रूप में चलाएँ —
> `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))।
### 60 सेकंड में TLS को डिक्रिप्ट होते देखें
यह समझने का सबसे तेज़ तरीका कि 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 सत्र से प्लेनटेक्स्ट पढ़ना — टर्मिनल में ही डिक्रिप्ट किया गया। कोई प्रॉक्सी नहीं, कोई man-in-the-middle नहीं।
इसे 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` | केवल स्वायत्त प्रणाली से मेल खाता है — यह *वह सब कुछ* स्वीकार करता है जो उस AS द्वारा संचालित होता है, जो हाइपरस्केलर के लिए प्रभावी रूप से असीमित है |
| `? ech` | एन्क्रिप्टेड क्लाइंटहैलो: नाम डिज़ाइन द्वारा छिपा हुआ है, इसलिए यह "निर्णय नहीं कर सकता" है, "खराब" नहीं |
| `✗ 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 | **टोपोलॉजी** | मशीन → गेटवे → DNS → शीर्ष होस्ट का ASCII मानचित्र, ट्रेसरूट के साथ। |
| 7 | **टाइमलाइन** | TCP स्थिति द्वारा रंग-कोडित कनेक्शन टाइमलाइन; सुरक्षा अलर्ट यहाँ आते हैं। |
| 8 | **प्रक्रियाएँ** | लाइव RX/TX और कनेक्शन गणना के साथ प्रति-प्रक्रिया बैंडविड्थ रैंकिंग। |
| 9 | **अंतर्दृष्टि** | *(वैकल्पिक)* सादा-भाषा विश्लेषण के लिए स्थानीय/क्लाउड LLM को स्नैपशॉट भेजता है। |
| 0 | **एग्रेस** | सीखता है कि प्रत्येक प्रक्रिया किससे बात करती है (होस्टनाम/AS/पोर्ट), एक कीप्रेस से उस बेसलाइन को नीति में बढ़ावा देता है, फिर ड्रिफ्ट पर चेतावनी देता है। केवल-अवलोकन, कभी ब्लॉक नहीं करता। |
पैकेट टैब वह जगह है जहाँ फोरेंसिक रहते हैं — गहन प्रोटोकॉल डिकोडिंग, लाइव TLS 1.3 डिक्रिप्शन, JA4 खतरा-शिकार, Wireshark-शैली डिस्प्ले फ़िल्टर, और घटना कैप्चर। **[पूर्ण फ़ीचर संदर्भ देखें →](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md)**
### लाइट दृश्य
दस टैब एक ऑपरेटर का उपकरण है। जब प्रश्न केवल *"मेरा नेटवर्क क्या उपयोग कर रहा है, और क्या मेरा कनेक्शन ठीक है?"* होता है — एक मशीन, Pi के लिए SSH सत्र, एक 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` — सीधे कर्नेल से पढ़ी गई: Linux पर netlink के ऊपर `inet_diag`, macOS पर `net.inet.tcp.pcblist64` sysctl। दोनों कर्नेल इकाइयों पर असहमत हैं (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)** | observe → promote → warn मॉडल, नियम भाषा, `strict` मोड, और NDJSON निर्यात स्कीमा। |
| **[फ्लाइट रिकॉर्डर](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#flight-recorder)** | आर्मिंग, फ़्रीज़िंग, और एक घटना बंडल की सामग्री। |
| **[AI इनसाइट्स](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
| Collector | macOS | Linux |
|---|---|---|
| कनेक्शन | lsof + PKTAP | /proc/net/tcp + eBPF kprobe |
| पैकेट | libpcap (BPF) | libpcap |
| प्रक्रिया विशेषता | PKTAP | lsof/ss पोलिंग, वैकल्पिक eBPF kprobe ओवरले के साथ |
सब कुछ सहजता से डिग्रेड होता है: जिन सुविधाओं को उन्नत विशेषाधिकारों की आवश्यकता होती है, वे एक स्पष्ट संदेश दिखाती हैं और फॉलबैक करती हैं, कभी क्रैश नहीं होतीं। पूर्ण आर्किटेक्चर नोट्स WIKI.md में हैं।
संबंधित
सहयोगी: SysWatch (सिस्टम) और DiskWatch (डिस्क) — एक ही शैली, अलग सतह। ESSH — एक शुद्ध-Rust SSH क्लाइंट जिसमें वही TUI सौंदर्य है; वहाँ जुड़ता है जहाँ NetWatch अवलोकन करता है।
NetWatch Cloud — उन सर्वरों के लिए होस्टेड फ्लीट मॉनिटरिंग जिन पर आप NetWatch चलाते हैं। प्रत्येक Linux होस्ट पर एक छोटा Rust एजेंट, एक रीयल-टाइम डैशबोर्ड, और लेटेंसी, पैकेट लॉस, या होस्ट ऑफ़लाइन होने पर ईमेल + Slack अलर्ट। जब तक हम बढ़ रहे हैं, मुफ़्त। एजेंट, SDK, और डैशबोर्ड MIT हैं; होस्टेड बैकएंड मालिकाना है।
धन्यवाद
पैकेजर्स। NetWatch homebrew-core, nixpkgs, AUR और Scoop मुख्य बकेट में है — और मैंने इनमें से कोई भी पैकेज नहीं बनाया। इनमें से हर एक किसी ऐसे व्यक्ति ने किया जिसने टूल को उपयोगी पाया, बिना कहे काम किया, और तब से इसे अद्यतित रखा है। Scoop प्रविष्टि आमतौर पर टैग के कुछ घंटों के भीतर रिलीज़ को ट्रैक करती रही है।
| Dominiquini | AUR पर netwatch-tui, मार्च 2026 से |
| kemelzaidan | AUR पर netwatch-tui-bin |
| tomasrivera | nixpkgs में netwatch |
| scillidan | Scoop मुख्य बकेट में netwatch, v0.15.3 से |
| Homebrew अनुरक्षक | फॉर्मूला को कोर में लेने के लिए, और वह बॉट जो तब से हर रिलीज़ को ट्रैक करता रहा है |
पैकेजिंग एक कृतघ्न काम है जो केवल तब ध्यान में आता है जब यह टूटता है। यदि आप इनमें से किसी एक के माध्यम से NetWatch स्थापित करते हैं, तो इसके लिए उन्हें धन्यवाद दें, मुझे नहीं।
योगदानकर्ता। @lamchau, @fdncred और @PeteE ने पैच भेजे हैं। धन्यवाद — किसी अजनबी से पुल रिक्वेस्ट इस तरह के प्रोजेक्ट के साथ होने वाली सबसे अच्छी चीज़ है।
और उन सभी को जिन्होंने वास्तविक रिप्रो के साथ एक इश्यू खोला, किसी डिज़ाइन निर्णय पर बहस की, या मुझे बताया कि आउटपुट उनके टर्मिनल पर गलत था: यही वह फीडबैक लूप है जिस पर यह बना है।
योगदान
प्रश्न, विचार और बग रिपोर्ट GitHub Discussions और Issues में स्वागत हैं। कोडिंग सम्मेलनों के लिए CONTRIBUTING.md और आर्किटेक्चर गाइड के लिए WIKI.md देखें।
लाइसेंस
MIT