콘텐츠로 이동

bandwhich - 프로세스별 대역폭 모니터 치트시트

bandwhich - 프로세스별 대역폭 모니터 치트시트

bandwhich는 현재 네트워크 사용률을 프로세스, 연결 및 원격 IP/호스트명별로 세분화하여 표시하는 Rust 터미널 유틸리티입니다. iftop(연결별) 또는 nethogs(프로세스별만)과 달리 bandwhich는 소켓을 소유 프로세스와 연결하고 원격 끝점을 확인하므로 어느 앱 및 어느 원격 호스트가 대역폭을 소비하는지 즉시 확인할 수 있습니다.

설치

플랫폼명령어
Cargo (모든 플랫폼)cargo install bandwhich
Arch Linuxsudo pacman -S bandwhich
Debian/Ubuntusudo apt install bandwhich
Fedorasudo dnf install bandwhich
macOS (Homebrew)brew install bandwhich
Nixnix-env -iA nixpkgs.bandwhich
미리 빌드된 바이너리GitHub 릴리스 페이지에서 다운로드

권한

bandwhich는 패킷을 스니핑해야 하므로 상승된 권한이 필요합니다:

# 가장 간단함: sudo로 실행
sudo bandwhich

# 또는 바이너리에 권한을 한 번 부여 (이후 sudo 없음, Linux)
sudo setcap cap_net_raw,cap_net_admin=eip $(which bandwhich)

기본 사용법

명령어설명
sudo bandwhich모든 인터페이스 모니터링, 라이브 TUI
sudo bandwhich -i eth0단일 인터페이스 감시
sudo bandwhich --interface wlan0동일, 장형
bandwhich --help전체 옵션 목록
bandwhich --version버전

주요 옵션

옵션설명
-i, --interface NAME모니터링을 하나의 인터페이스로 제한
-n, --no-resolve역방향 DNS 조회 건너뛰기 (더 빠름, 원시 IP)
-r, --raw머신 가독형, 비대화형 출력 (로깅에 좋음)
-p, --processes프로세스 테이블만 표시
-c, --connections연결 테이블만 표시
-a, --addresses원격 주소 테이블만 표시
--total-utilization라이브 UI 대신 일회성 합계 출력
-s, --show-dns연결 보기에 DNS 쿼리 포함
-d, --dns-server IP역방향 조회용 특정 리졸버 사용

인터랙티브 키

동작
Tab레이아웃 순환 / 확장된 테이블 회전
Space일시 중지 / 업데이트 재개
/ 테이블 내 스크롤
q / Ctrl+C종료

디스플레이 읽기

bandwhich는 세 개의 라이브 테이블을 표시합니다:

테이블용도
프로세스별 사용률어떤 실행파일이 송수신하는지, 업/다운 속도 포함
연결각 소켓: 로컬 → 원격, 프로토콜 및 연결별 속도
원격 주소별 사용률어떤 원격 호스트(확인됨)와 가장 많은 데이터를 교환하는지

속도는 현재 업(▲) 및 다운(▼) 처리량으로 약 1초마다 새로고침됩니다.

일반적인 워크플로우

# "지금 업로드를 먹는 것은 무엇인가?" — 프로세스만, DNS 지연 없음
sudo bandwhich -p -n

# 시끄러운 인터페이스 조사 및 나중의 분석을 위해 원시 스트림 기록
sudo bandwhich -i eth0 --raw | tee bandwhich-eth0.log

# 총 사용률의 일회성 스냅샷 (스크립트/cron)
sudo bandwhich --total-utilization -n

# 상위 원격 토커 찾기 (예: 유출 또는 백업 작업)
sudo bandwhich -a

bandwhich vs 기타 네트워크 모니터

도구세분성비고
bandwhich프로세스 + 연결 + 원격 호스트Rust TUI, 원격 확인
nethogs프로세스별원격 호스트 그룹화 없음
iftop연결별프로세스 귀속 없음
nload인터페이스별 합계간단한 집계 그래프
iptraf-ng인터페이스/연결별더 오래된 ncurses 제품군

자료