
터미널 대역폭 사용률 도구

이것은 프로세스, 연결 및 원격 IP/호스트명별로 현재 네트워크 사용량을 표시하는 CLI 유틸리티입니다.
이 프로젝트는 수동 유지보수 단계에 있습니다. 심각한 이슈는 처리되지만, 새로운 기능은 개발되고 있지 않습니다. 그러나 이는 무엇보다도 자금 및/또는 인력 부족 때문이므로, 풀 리퀘스트는 언제나 환영합니다. 또한, 이 프로젝트에 장기적으로 기여할 수 있고 의향이 있다면, 공동 유지관리자로 지원해 주시기 바랍니다.
자세한 내용은 The Future of Bandwhich #275를 참조하세요.
bandwhich는 주어진 네트워크 인터페이스를 스니핑하여 IP 패킷 크기를 기록하고, Linux에서는 /proc 파일 시스템, macOS에서는 lsof, Windows에서는 WinApi와 대조합니다. 터미널 창 크기에 반응하여 공간이 없으면 더 적은 정보를 표시합니다. 또한 백그라운드에서 역방향 DNS를 최선의 노력으로 수행하여 IP를 호스트 이름으로 변환하려고 시도합니다.
각 플랫폼에 대한 자세한 지침은 INSTALL.md를 참조하세요.
우리는 다양한 OS용으로 몇 가지 범용 바이너리를 releases에서 제공합니다.
git clone https://github.com/imsnif/bandwhich.git
cd bandwhich
cargo build --release
최신 최소 지원 Rust 버전은 Cargo.toml의 rust-version 필드를 참조하세요.
대체 대상 플랫폼으로의 크로스 컴파일은 cross를 통해 지원됩니다. 대략적인 절차는 다음과 같습니다:
uname -m을 사용할 수 있습니다.cross를 설치합니다.cross build --release --target <TARGET_TRIPLE>을 실행합니다.cross-rs/cross#1222가 해결될 때까지 최신 HEAD를 사용하세요:
cargo install --git https://github.com/cross-rs/cross.git cross
cross build --release --target aarch64-linux-android
bandwhich는 네트워크 패킷을 스니핑하므로 상승된 권한이 필요합니다.
Linux에서는 이를 수행하는 두 가지 주요 방법이 있습니다:
setcapbandwhich 바이너리에 필요한 권한(리눅스에서 "캐퍼빌리티"라고 함)을 영구적으로 부여합니다.# 캐퍼빌리티 할당
sudo setcap cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep $(command -v bandwhich)
# 비특권 사용자로 실행
bandwhich
cap_sys_ptrace,cap_dac_read_search: /proc/<pid>/fd/에 대한 접근을 허용하여 bandwhich가 어떤 열린 포트가 어떤 프로세스에 속하는지 판별할 수 있게 합니다.cap_net_raw,cap_net_admin: 시스템에서 패킷을 캡처할 수 있게 합니다.sudo (또는 대안)sudo bandwhich
설치 방법에 따라 bandwhich가 홈 디렉토리 어딘가에 설치된 경우(command -v bandwhich로 확인 가능),
command not found 오류가 발생할 수 있습니다. 이는 많은 배포판에서 sudo가 기본적으로
보안상의 이유로 사용자의 $PATH를 유지하지 않기 때문입니다.
이를 해결하려면 다음 중 하나를 수행하면 됩니다:
sudo가 $PATH 환경 변수를 유지하도록 설정;bandwhich를 실행하는 동안 $PATH를 명시적으로 설정: sudo env "PATH=$PATH" bandwhich;sudo에 전체 경로 전달: sudo $(command -v bandwhich).Windows에서 패킷을 캡처하려면 먼저 npcap을 설치해야 할 수 있습니다.
Usage: bandwhich [OPTIONS]
Options:
-i, --interface <INTERFACE> The network interface to listen on, eg. eth0
-r, --raw Machine friendlier output
-n, --no-resolve Do not attempt to resolve IPs to their hostnames
-s, --show-dns Show DNS queries
-d, --dns-server <DNS_SERVER> A dns server ip to use instead of the system default
--log-to <LOG_TO> Enable debug logging to a file
-v, --verbose... Increase logging verbosity
-q, --quiet... Decrease logging verbosity
-p, --processes Show processes table only
-c, --connections Show connections table only
-a, --addresses Show remote addresses table only
-u, --unit-family <UNIT_FAMILY> Choose a specific family of units [default: bin-bytes] [possible values: bin-bytes, bin-bits, si-bytes, si-bits]
-t, --total-utilization Show total (cumulative) usages
-h, --help Print help (see more with '--help')
-V, --version Print version
CONTRIBUTING.md를 참조하세요.
MIT
| OS | 아키텍처 | 지원 | 용도 |
|---|
| Android | aarch64 | 최선의 노력 |
모든 최신 Android 기기. 이것은 일반적인 사용에 적합한 APK가 아닌 순수 바이너리 파일입니다. |
| Linux | aarch64 | 전체 | 64비트 ARMv8+ (서버, 일부 최신 라우터, RPi-4+). |
| armv7hf | 최선의 노력 | 32비트 ARMv7 (구형 라우터, RPi-4 이전). | |
| x64 | 전체 | 대부분의 Linux 데스크톱 및 서버. | |
| MacOS | aarch64 | 전체 | Apple Silicon Mac (2021+). |
| x64 | Intel Mac (2021년 이전). | ||
| Windows | x64 | 전체 | 대부분의 Windows 데스크톱 및 서버. |