
Rust와 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
또는 릴리스 모드로 빌드:
cargo build --release
./target/release/network-monitor
git clone <repository-url>
cd network-monitor
cargo build --bin nmt
./target/debug/nmt
또는 릴리스 모드로 빌드:
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 폴링 대신 커널 수준 kprobe(tcp_v4_connect, tcp_v6_connect, tcp_close,
inet_csk_accept)를 사용합니다. 이를 통해 다음을 제공합니다:
bpf_get_current_pid_tgid()를 통해 프로브 지점에서 캡처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
릴리스 빌드의 경우 경로를 그에 맞게 조정합니다:
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 파일을 참조하세요.