
रस्ट और 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 - कनेक्शनों को मैन्युअल रूप से रीफ़्रेश करेंa - ऑटो-रीफ़्रेश टॉगल करें (2-सेकंड अंतराल)↑/↓ - कनेक्शनों के माध्यम से नेविगेट करें←/→ - तालिका को क्षैतिज रूप से स्क्रॉल करें1-8 - कॉलम द्वारा सॉर्ट करें (Process(ID), Protocol, Source, Destination, Status, TX, RX, Path)विशेषताएँ:
पठनीयता के लिए सामान्य एड्रेसों को सरल बनाया जाता है:
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
सामान्य यूज़र के रूप में चलाएँ (कर्नेल 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
यदि eBPF अनुपलब्ध है (क्षमताओं की कमी या असमर्थित कर्नेल) तो एप्लिकेशन एक सेटअप संदेश के साथ बाहर निकल जाएगा।
bpf_get_current_pid_tgid() के माध्यम से प्रोसेस पहचान/proc/[pid]/io पढ़नाthiserror का उपयोग करके सुगम पुनर्प्राप्ति के साथ व्यापक त्रुटि प्रकारयदि आपको यह प्रोजेक्ट उपयोगी लगता है, तो कृपया इसके विकास में सहायता के लिए दान करने पर विचार करें।
88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSvbc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025यह प्रोजेक्ट ओपन सोर्स है। विवरण के लिए LICENSE फ़ाइल देखें।