
netwatch v0.28.2
आपके टर्मिनल में रीयल-टाइम नेटवर्क डायग्नोस्टिक्स। एक कमांड, ज़ीरो कॉन्फ़िग, तुरंत दृश्यता।
NetWatch
देखें आपका नेटवर्क वास्तव में क्या कर रहा है — लाइव, आपके टर्मिनल में।
एक नेटवर्क मॉनिटर जो एन्क्रिप्टेड ट्रैफ़िक पढ़ता है, हर कनेक्शन के पीछे की प्रक्रिया का नाम बताता है, और मैलवेयर को घर बुलाते हुए पकड़ता है। एक बाइनरी। शून्य कॉन्फ़िग।
सब कुछ एक साथ, chrome की शून्य पंक्तियों के साथ — कोई हेडर बार नहीं, कोई मेनू बार नहीं, कोई स्टेटस बार नहीं। डाउनलोड साझा समय-अक्ष से ऊपर बढ़ता है, अपलोड उससे नीचे बढ़ता है, इसलिए ट्रैफ़िक समरूपता एक आकृति है जिसे आप संख्या पढ़ने से पहले पहचान लेते हैं। रंग परिमाण को एन्कोड करता है, श्रृंखला को नहीं।
…और इसके नीचे डिफ़ॉल्ट दस-टैब इंस्ट्रूमेंट, एक V की दूरी पर और समान गर्म कलेक्टरों को साझा करते हुए — डैशबोर्ड, हर सॉकेट के पीछे का प्रोग्राम, डीप पैकेट इंस्पेक्शन, नेटवर्क मैप, और प्रत्येक प्रोग्राम किससे बात करता है।
अधिकांश नेटवर्क टूल एक प्रश्न का उत्तर देते हैं — "मेरी बैंडविड्थ का उपयोग क्या कर रहा है?" — और रुक जाते हैं। NetWatch आगे बढ़ता रहता है। यह वायर पर प्रोटोकॉल को डिकोड करता है, बताता है कि प्रत्येक कनेक्शन को कौन सा प्रोग्राम खोला, और उन पैटर्नों पर नज़र रखता है जिनका मतलब मुसीबत है — एक पोर्ट स्कैन, मैलवेयर का कमांड सर्वर से बीकन करना, DNS के ऊपर से डेटा बाहर निकालना। जब कुछ गलत दिखता है, तो एक कीप्रेस एक पोर्टेबल साक्ष्य बंडल को फ्रीज़ कर देता है जिसे आप बग रिपोर्ट से जोड़ सकते हैं।
इसे ऐसे सोचें: एक शून्य-कॉन्फ़िग बाइनरी जो बैंडविड्थ मीटर, Wireshark का ट्राइएज व्यू, और एक हल्के घुसपैठ डिटेक्टर का काम करती है — टर्मिनल छोड़े बिना।
यह आपके प्रश्न के पैमाने पर समायोजित होता है — दोनों दिशाओं में: --view dense एक बड़े टर्मिनल को चार ज़ीरो-क्रोम बॉक्स से भर देता है, और netwatch --lite "अभी मेरा नेटवर्क क्या उपयोग कर रहा है?" के लिए एक 80×24 स्क्रीन है; पूरा दस-टैब दृश्य तब मौजूद होता है जब उत्तर "कुछ जिसे मुझे जांचने की आवश्यकता है" हो — एक कीप्रेस दूर, समान लाइव कैप्चर साझा करते हुए।
इसके लिए बनाया गया ब्लू-टीमरों, घटना प्रतिक्रियाकर्ताओं, SREs, और होमलैबर्स के लिए, जिन्हें अभी क्या हो रहा है यह देखने की आवश्यकता है — एक घंटे बाद कैप्चर फ़ाइल पार्स करना नहीं।
650+ परीक्षण · Landlock-सैंडबॉक्स्ड (Linux) · दुर्भावनापूर्ण ट्रैफ़िक को सुरक्षित रूप से पार्स करता है
और वह हिस्सा जो कोई अन्य टर्मिनल टूल बिल्कुल नहीं करता: NetWatch सीखता है कि मशीन पर प्रत्येक प्रोग्राम किससे बात करता है, उस देखे गए आधार को एक कीप्रेस के साथ नीति में बदल देता है, और आपको उस क्षण बताता है जब कोई प्रोग्राम कहीं नया बात करना शुरू करता है।
निरीक्षण करें → बढ़ावा दें → चेतावनी दें। आधार एक कीप्रेस के साथ नीति बन जाता है; अगला नया गंतव्य ड्रिफ्ट के रूप में आता है।
NetWatch क्यों
- 🔓 अपने नियंत्रण वाले एन्क्रिप्टेड ट्रैफ़िक को पढ़ें — किसी ब्राउज़र या ऐप के
SSLKEYLOGFILEको NetWatch की ओर इंगित करें और उसके TLS 1.3 सत्रों के प्लेनटेक्स्ट को लाइव डिकोड होते देखें, ठीक उसी तरह जैसे Wireshark करता है। कोई प्रॉक्सी नहीं, कोई सर्टिफिकेट नहीं, बीच में कुछ नहीं। - 🛰️ जानें कि हर प्रोग्राम किससे बात करता है, फिर बदलने पर बताया जाए — NetWatch देखता है कि प्रत्येक प्रक्रिया किन गंतव्यों तक पहुँचती है (ClientHello से होस्टनाम, स्वायत्त प्रणाली, पोर्ट), और एक कीप्रेस उस देखे गए आधार को एक ईग्रेस नीति में बदल देता है। तब से यह चेतावनी देता है जब कोई प्रोग्राम कहीं नया बात करना शुरू करता है। यही वह वाक्य है जिसे फ़ायरवॉल नियमसेट व्यक्त नहीं कर सकता:
curlपहले केवलapi.github.comतक पहुँचता था, और आज यह कुछ और तक पहुँचा। केवल-अवलोकन — यह कभी अवरुद्ध नहीं करता। - 🧬 कनेक्शन के पीछे के सॉफ़्टवेयर की फ़िंगरप्रिंट लें — JA4 प्रत्येक TLS/QUIC हैंडशेक को एक स्थिर फ़िंगरप्रिंट में बदल देता है, ताकि आप एक विशिष्ट क्लाइंट — या एक विशिष्ट मैलवेयर — को पहचान सकें भले ही ट्रैफ़िक एन्क्रिप्टेड हो, उसी तरह जैसे आप किसी ब्राउज़र को उसके यूज़र-एजेंट से पहचानते हैं। एक फ़िंगरप्रिंट पर पिवट करके उसी सॉफ़्टवेयर से हर दूसरे फ्लो को खोजें।
- 🚨 घर बुलाते मैलवेयर को पकड़ें — C2 बीकनिंग (नियमित, कम-जिटर चेक-इन), पोर्ट स्कैन, और DNS टनलिंग के लिए अंतर्निहित डिटेक्शन बिना किसी सेटअप के पृष्ठभूमि में चलता है। एक गंभीर अलर्ट रिकॉर्डर को ऑटो-फ्रीज़ कर देता है ताकि साक्ष्य आपके देखने से पहले ही सहेज लिया गया हो।
- ⚙️ हर कनेक्शन के पीछे की प्रक्रिया का नाम बताएं — प्रत्येक सॉकेट को उस प्रोग्राम से मैप करता है जिसने इसे
ss/lsofसे खोला, एक वैकल्पिक कर्नेल-स्तरीय eBPF kprobe (Linux,ebpfफीचर) के साथ जो अल्पकालिक फ्लो को भी पकड़ता है जिन्हें पोलिंग चूक सकती है। हर जगह काम करता है; kprobe एक संवर्द्धन है, आवश्यकता नहीं। - 📡 केवल पोर्ट नहीं, प्रोटोकॉल को डिकोड करें — TLS, QUIC, HTTP, और DNS का वास्तविक L7 पार्सिंग (साथ ही एक SSH बैनर/संस्करण स्निफ) और एक दर्जन से अधिक, प्रति-फ्लो स्ट्रीम ट्रैकिंग और हैंडशेक टाइमिंग के साथ — ताकि आप "पोर्ट 443" नहीं, बल्कि
api.github.comऔर JA4 फ़िंगरप्रिंट देखें। - 🎥 साक्ष्य को फ्रीज़ करें — एक रोलिंग रिकॉर्डर को सशस्त्र करें और किसी भी घटना को एक पोर्टेबल बंडल में फ्रीज़ करें: पैकेट प्लस कनेक्शन, 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) से पहले से निर्मित बाइनरी प्राप्त करें।
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/any distro) | [`netwatch-linux-x86_64-static.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Linux (aarch64, static — Arch/Fedora/Alpine/any distro) | [`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) |
`-static` Linux बिल्ड libpcap को बंडल करते हैं और इनकी कोई रनटाइम निर्भरता नहीं होती — इन्हें Arch, Fedora, Alpine, या किसी भी डिस्ट्रो पर उपयोग करें जहाँ डिफ़ॉल्ट बिल्ड `libpcap.so.0.8: cannot open shared object file` की रिपोर्ट करते हैं।
**सोर्स से:**```bash
git clone https://github.com/matthart1983/netwatch.git && cd netwatch
cargo build --release
पूर्वापेक्षाएँ: Rust 1.70+, libpcap (sudo apt install libpcap-dev on Linux, macOS पर शामिल है).
त्वरित आरंभ```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/HEAD/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 सेकंड में egress drift को कैसे पकड़ता है
ऊपर दिए गए डेमो का लूप, तीन कमांड में:```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` निर्णय और एक अलर्ट के साथ दर्ज होता है। कुछ भी ब्लॉक नहीं किया गया — बात यह है कि आपको *बताया* गया।
निर्णय जानबूझकर द्विआधारी (binary) नहीं हैं:
| | |
|---|---|
| `✓ sni` / `✓ ip` | घोषित होस्टनाम या पते से मेल खाया — सटीक |
| `~ asn` | केवल स्वायत्त प्रणाली (autonomous system) से मेल खाया — इसमें *वह सब कुछ शामिल है जो उस AS संचालित करता है*, जो हाइपरस्केलर के लिए प्रभावी रूप से असीमित है |
| `? ech` | Encrypted ClientHello: नाम डिज़ाइन से छिपा है, इसलिए यह "निर्णय नहीं कर सकते" है, "खराब" नहीं |
| `✗ drift` | अनुमत सूची (allowlist) के बाहर |
| `— no rule` | यह प्रोग्राम कभी घोषित ही नहीं किया गया — कुछ भी जाँचा नहीं गया |
| `✗ undeclared` | कोई नियम नहीं, `strict = true` के अंतर्गत — नीति पूर्ण होने का दावा करती है, इसलिए *अनुपस्थिति* ही निष्कर्ष है |
नियम सटीक होस्टनाम, `*.wildcards`, स्वायत्त प्रणाली, CIDR ब्लॉक (`10.0.0.0/8`), और पोर्ट स्वीकार करते हैं। `strict = true` ही वह चीज़ है जो लिंटर को "मुझे बताओ जब मेरा घोषित सॉफ़्टवेयर गलत व्यवहार करे" से बदलकर "मुझे बताओ जब कोई ऐसी चीज़ बात करना शुरू करे जिसे मैंने कभी घोषित नहीं किया" बना देता है — जो किसी वास्तविक समझौते (compromise) का आकार होता है।
## आपको क्या मिलता है
दस टैब, `1`–`9` और `0` से स्विच किए जाते हैं:
| # | टैब | यह क्या दिखाता है |
|---|-----|---------------|
| 1 | **Dashboard** | इंटरफ़ेस, बैंडविड्थ ग्राफ़, शीर्ष कनेक्शन, गेटवे/DNS स्वास्थ्य, विलंबता हीटमैप। 5 सेकंड में उपयोगी। |
| 2 | **Connections** | प्रक्रिया + PID, प्रोटोकॉल, स्थिति, GeoIP, और विलंबता स्पार्कलाइन के साथ हर सॉकेट। |
| 3 | **Interfaces** | प्रति-इंटरफ़ेस IPv4/IPv6, MAC, MTU, RX/TX, त्रुटियाँ, ड्रॉप्स। |
| 4 | **Packets** | वास्तविक L7 डिकोड, TLS 1.3 डिक्रिप्शन, JA4, प्रति-फ़्लो स्ट्रीम ट्रैकिंग, फ़िल्टर, PCAP निर्यात के साथ लाइव कैप्चर। |
| 5 | **Stats** | बाइट्स + TCP हैंडशेक-समय हिस्टोग्राम द्वारा प्रोटोकॉल विभाजन। |
| 6 | **Topology** | मशीन → गेटवे → DNS → शीर्ष होस्ट का ASCII मानचित्र, ट्रेसरूट के साथ। |
| 7 | **Timeline** | TCP स्थिति द्वारा रंग-कोडित कनेक्शन टाइमलाइन; सुरक्षा अलर्ट यहाँ आते हैं। |
| 8 | **Processes** | लाइव RX/TX और कनेक्शन गणना के साथ प्रति-प्रक्रिया बैंडविड्थ रैंकिंग। |
| 9 | **Insights** | *(ऑप्ट-इन)* सादा-भाषा विश्लेषण के लिए एक स्नैपशॉट स्थानीय/क्लाउड LLM को भेजता है। |
| 0 | **Egress** | सीखता है कि प्रत्येक प्रक्रिया किससे बात करती है (होस्टनाम/AS/पोर्ट), एक कुंजी दबाकर उस बेसलाइन को नीति में बढ़ाता है, फिर drift पर चेतावनी देता है। केवल अवलोकन, कभी ब्लॉक नहीं करता। |
Packets टैब वह जगह है जहाँ फोरेंसिक रहते हैं — गहन प्रोटोकॉल डिकोडिंग, लाइव TLS 1.3 डिक्रिप्शन, JA4 खतरा-खोज, Wireshark-शैली डिस्प्ले फ़िल्टर, और घटना कैप्चर। **[पूर्ण सुविधा संदर्भ देखें →](https://github.com/matthart1983/netwatch/blob/HEAD/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/HEAD/docs/REFERENCE.md)** | हर कीबाइंडिंग, डिस्प्ले-फ़िल्टर भाषा, प्रोटोकॉल डीकोडर सूची, थीम और कॉन्फ़िग विकल्प। |
| **[TLS 1.3 डिक्रिप्शन](https://github.com/matthart1983/netwatch/blob/HEAD/docs/REFERENCE.md#tls-13-decryption)** | `SSLKEYLOGFILE` डिक्रिप्शन कैसे काम करता है, समर्थित सिफर सुइट्स, और यह क्या पढ़ सकता है और क्या नहीं। |
| **[JA4 के साथ थ्रेट हंटिंग](https://github.com/matthart1983/netwatch/blob/HEAD/docs/REFERENCE.md#threat-hunting-with-ja4)** | क्लाइंट्स की फ़िंगरप्रिंटिंग और फ्लोज़ के बीच पिवोटिंग। |
| **[सुरक्षा और Landlock सैंडबॉक्स](https://github.com/matthart1983/netwatch/blob/HEAD/docs/REFERENCE.md#security--forensics)** | थ्रेट मॉडल, कैपेबिलिटी ड्रॉपिंग, और फ़ाइलसिस्टम अनुमति-सूची। |
| **[एग्रेस पॉलिसी लिंटिंग](https://github.com/matthart1983/netwatch/blob/HEAD/docs/egress-linter-plan.md)** | observe → promote → warn मॉडल, नियम भाषा, `strict` मोड, और NDJSON निर्यात स्कीमा। |
| **[फ़्लाइट रिकॉर्डर](https://github.com/matthart1983/netwatch/blob/HEAD/docs/REFERENCE.md#flight-recorder)** | आर्मिंग, फ़्रीज़िंग, और एक इंसिडेंट बंडल की सामग्री। |
| **[AI Insights](https://github.com/matthart1983/netwatch/blob/HEAD/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 |
|---|---|---|
| Connections | lsof + PKTAP | /proc/net/tcp + eBPF kprobe |
| Packets | libpcap (BPF) | libpcap |
| Process attribution | PKTAP | lsof/ss polling, with optional eBPF kprobe overlay |
सब कुछ सुचारू रूप से डिग्रेड होता है: जिन सुविधाओं को उन्नत विशेषाधिकारों की आवश्यकता होती है, वे एक स्पष्ट संदेश दिखाकर फॉलबैक करती हैं, कभी क्रैश नहीं होतीं। पूर्ण आर्किटेक्चर नोट्स WIKI.md में हैं।
संबंधित
सहयोगी: SysWatch (सिस्टम) और DiskWatch (डिस्क) — एक ही स्वरूप, अलग सतह। ESSH — एक शुद्ध-रस्ट SSH क्लाइंट जिसमें वही TUI सौंदर्य है; NetWatch जहाँ अवलोकन करता है, वहाँ यह कनेक्ट होता है।
NetWatch Cloud — उन सर्वरों के लिए होस्टेड फ्लीट मॉनिटरिंग जिन पर आप NetWatch चलाते हैं। प्रत्येक Linux होस्ट पर एक छोटा Rust एजेंट, एक रीयल-टाइम डैशबोर्ड, और विलंबता, पैकेट हानि, या होस्ट के ऑफ़लाइन होने पर ईमेल + Slack अलर्ट। जब तक हम बढ़ रहे हैं, निःशुल्क। agent, SDK, और dashboard 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 ने पैच भेजे हैं। धन्यवाद — किसी अजनबी का pull request इस तरह के प्रोजेक्ट के साथ होने वाली सबसे अच्छी बात है।
और उन सभी को जिन्होंने वास्तविक repro के साथ issue खोला, किसी डिज़ाइन निर्णय पर बहस की, या मुझे बताया कि उनके टर्मिनल पर आउटपुट गलत था: यही वह फीडबैक लूप है जिस पर यह निर्मित है।
योगदान
प्रश्न, विचार और बग रिपोर्ट GitHub Discussions और Issues में स्वागत हैं। कोडिंग परंपराओं के लिए CONTRIBUTING.md देखें और आर्किटेक्चर गाइड के लिए WIKI.md देखें।
लाइसेंस
MIT