
रस्ट और GTK4 के साथ निर्मित एक रीयल-टाइम नेटवर्क कनेक्शन मॉनिटरिंग टूल, जो आधुनिक ग्राफिकल इंटरफ़ेस में सक्रिय कनेक्शनों को लाइव I/O आँकड़ों के साथ प्रदर्शित करता है।

Rust और GTK4 के साथ बनाया गया एक रीयल-टाइम नेटवर्क कनेक्शन मॉनिटरिंग टूल, जो एक आधुनिक ग्राफिकल इंटरफ़ेस में लाइव I/O आंकड़ों के साथ सक्रिय कनेक्शन प्रदर्शित करता है।
/proc फ़ाइलसिस्टम वाला Linux सिस्टमbpf-linker (eBPF कंपाइलेशन के लिए)sudo apt update
sudo apt install libgtk-4-dev libadwaita-1-dev
sudo dnf install gtk4-devel libadwaita-devel
git clone <repository-url>
cd network-monitor
./scripts/install.sh
sudo ./scripts/install.sh
इंस्टॉलेशन स्क्रिप्ट यह करेगी:
~/.local/bin/ (स्थानीय) या /usr/local/bin/ (सिस्टम-व्यापी) में इंस्टॉल करेगीgit clone <repository-url>
cd network-monitor
cargo run
या release मोड में बिल्ड करें:
cargo build --release
./target/release/network-monitor
git clone <repository-url>
cd network-monitor
cargo build --bin nmt
./target/debug/nmt
या release मोड में बिल्ड करें:
cargo build --release --bin nmt
./target/release/nmt
स्थानीय इंस्टॉलेशन हटाना:
./scripts/uninstall.sh
सिस्टम-व्यापी हटाना (sudo आवश्यक):
sudo ./scripts/uninstall.sh
अनइंस्टॉलेशन स्क्रिप्ट उपयुक्त स्थानों से बाइनरी, डेस्कटॉप फ़ाइल और आइकन हटा देगी और सभी प्रासंगिक कैश अपडेट कर देगी।
नेटवर्क मॉनिटर एप्लिकेशन लॉन्च करें:
cargo run
एप्लिकेशन एक GTK4 विंडो खोलेगा जो प्रदर्शित करेगी:
/proc/[pid]/cmdline से पूर्ण कमांड पथ और आर्गुमेंट्सपंक्ति क्रियाएँ

टर्मिनल इंटरफ़ेस लॉन्च करें:
cargo run --bin nmt
TUI एक इंटरैक्टिव टर्मिनल इंटरफ़ेस में समान मॉनिटरिंग क्षमताएँ प्रदान करता है:
की नियंत्रण:
q - एप्लिकेशन से बाहर निकलेंr - होस्टनेम रिज़ॉल्यूशन टॉगल करेंR - कनेक्शनों को मैन्युअल रूप से रीफ्रेश करेंa - ऑटो-रीफ्रेश टॉगल करें (2-सेकंड अंतराल)↑/↓ - कनेक्शनों के माध्यम से नेविगेट करें←/→ - तालिका को क्षैतिज रूप से स्क्रॉल करेंk / राइट क्लिक - किसी पंक्ति के लिए kill मेनू खोलें (Terminate / Force Kill / Cancel)1-8 - स्तंभों के अनुसार क्रमबद्ध करें (Process(ID), Protocol, Source, Destination, Status, TX, RX, Path)माउस: लेफ़्ट क्लिक एक पंक्ति चुनता है, राइट क्लिक उसे चुनता है और kill मेनू खोलता है।
विशेषताएँ:
पठनीयता के लिए सामान्य पते सरल किए जाते हैं:
0.0.0.0:* या *:* → ANY127.0.0.1:* या [::1]:* → LOCALHOST224.0.0.251:* → MDNSऐप /proc/net को पोल करने के बजाय कर्नेल-स्तरीय kprobes (tcp_v4_connect, tcp_v6_connect, tcp_close,
inet_csk_accept) का उपयोग करता है। यह प्रदान करता है:
bpf_get_current_pid_tgid() के माध्यम से कैप्चर किया गया, कोई inode स्कैनिंग नहींeBPF बैकएंड डिफ़ॉल्ट /proc/net पोलिंग दृष्टिकोण की तुलना में कम ओवरहेड और रीयल-टाइम
इवेंट्स के साथ इवेंट-चालित कनेक्शन मॉनिटरिंग प्रदान करता है। यह अल्पकालिक कनेक्शनों को
कैप्चर कर सकता है जो पोलिंग से छूट सकते हैं।
पूर्वापेक्षाएँ:
rustup toolchain install nightly
cargo install bpf-linker
बिल्ड और रन:
cargo build
सामान्य उपयोगकर्ता के रूप में चलाएँ (kernel 5.8+ आवश्यक):
बाइनरी को एक बार आवश्यक Linux क्षमताएँ प्रदान करें:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
या TUI संस्करण के लिए:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
release बिल्ड के लिए, पथ को तदनुसार समायोजित करें:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor