리눅스에는 오픈소스 네트워크 모니터링 도구가 매우 다양하게 존재합니다. 예를 들어 iftop 명령어로 대역폭 사용량을 확인하고, netstat나 ss 명령어로 인터페이스 통계를 살펴보며, top 명령어로 시스템에서 실행 중인 프로세스를 관찰할 수 있습니다.
하지만 프로세스별 네트워크 대역폭 사용량을 실시간으로 확인할 수 있는 도구가 필요하다면 NetHogs만 한 것이 없습니다.
NetHogs란 무엇인가?
NetHogs는 리눅스의 top 명령어와 유사한 오픈소스 커맨드라인 프로그램으로, 각 프로세스나 애플리케이션이 사용하는 네트워크 트래픽 대역폭을 실시간으로 모니터링하는 데 사용됩니다.
NetHogs 공식 프로젝트 페이지에서는 이 도구를 다음과 같이 소개합니다.
NetHogs는 작은 ‘net top’ 도구입니다. 대부분의 도구가 트래픽을 프로토콜별 또는 서브넷별로 분류하는 것과 달리, NetHogs는 프로세스별로 대역폭을 그룹화합니다. 또한 특수한 커널 모듈 로드에 의존하지 않습니다. 갑자기 네트워크 트래픽이 급증하면 NetHogs를 실행하여 어떤 PID가 원인인지 즉시 파악할 수 있으며, 이를 통해 대역폭을 독차지하는 비정상적으로 동작하는 프로그램을 쉽게 찾아낼 수 있습니다.
이 글에서는 Unix/Linux 운영체제에서 nethogs 유틸리티를 설치하고, 프로세스별 네트워크 대역폭 사용량을 실시간으로 확인하는 방법을 알아보겠습니다.
리눅스에 NetHogs 설치하기
NetHogs는 다양한 리눅스 운영체제에서 사용할 수 있습니다. 사용 중인 배포판에 따라 다음 방법 중 하나로 nethogs를 설치하면 됩니다.
RHEL, CentOS, Rocky Linux, AlmaLinux에 설치
RedHat 계열 배포판에서는 먼저 EPEL 저장소를 활성화한 뒤, yum 명령어로 nethogs 패키지를 다운로드하여 설치합니다.
# yum install epel-release # yum install nethogs
Fedora Linux에서는 dnf 명령어를 사용합니다.
# dnf install nethogs
Ubuntu, Linux Mint, Debian에 설치
다음 apt 명령어로 nethogs 패키지를 설치합니다.
$ sudo apt install nethogs
NetHogs로 프로세스별 대역폭 모니터링하기
RedHat 계열 시스템에서는 다음 명령어로 nethogs 유틸리티를 실행합니다.
# nethogs
Debian 계열 리눅스에서는 root 권한이 필요하므로 sudo 명령어와 함께 실행해야 합니다.
$ sudo nethogs
실행 화면에서 Sent(전송)와 Received(수신) 행은 각 프로세스가 사용 중인 트래픽 양을 보여줍니다. 화면 하단에는 전체 전송·수신 대역폭 합계가 계산되어 표시되며, 아래에서 소개하는 인터랙티브 단축키를 사용해 정렬 순서를 바꿀 수 있습니다.
NetHogs 명령줄 옵션
nethogs의 주요 명령줄 옵션은 다음과 같습니다. ‘-d’ 옵션으로 새로고침 주기를 지정할 수 있고, ‘장치 이름’을 지정하면 특정 네트워크 인터페이스의 대역폭만 모니터링할 수 있습니다(기본값은 eth0).
예를 들어 새로고침 주기를 5초로 설정하려면 다음과 같이 입력합니다.
# nethogs -d 5
$ sudo nethogs -d 5
특정 장치(eth0)의 네트워크 대역폭만 모니터링하려면 다음 명령어를 사용합니다.
# nethogs eth0
$ sudo nethogs eth0
eth0과 eth1 두 인터페이스의 대역폭을 동시에 모니터링하려면 다음과 같이 입력합니다.
# nethogs eth0 eth1
$ sudo nethogs eth0 eth1
NetHogs 옵션 정리
-d– 새로고침 주기(지연 시간) 설정-h– 사용 가능한 명령어 도움말 출력-p– 무차별 모드(promiscuous mode)로 스니핑 (권장하지 않음)-t– tracemode로 실행-V– 버전 정보 출력
NetHogs 인터랙티브 컨트롤(단축키)
nethogs 실행 중 사용할 수 있는 유용한 키보드 단축키는 다음과 같습니다.
m– 대역폭 표시 단위 변경 (KB/sec → KB → B → MB)r– 수신(RECV) 트래픽 크기 기준으로 정렬s– 전송(SENT) 트래픽 크기 기준으로 정렬q– 프로그램을 종료하고 셸 프롬프트로 복귀
nethogs 유틸리티의 전체 명령줄 옵션은 터미널에서 ‘man nethogs’ 또는 ‘sudo man nethogs’ 명령어로 맨 페이지를 확인하면 됩니다.
더 자세한 정보는 Nethogs 공식 프로젝트 홈페이지를 참고하세요.
마무리
NetHogs는 특별한 설정 없이도 어떤 프로세스가 네트워크 대역폭을 얼마나 소모하는지 즉시 파악할 수 있는 강력하고 가벼운 도구입니다. 서버 트래픽이 급증했을 때 원인을 신속하게 진단하는 데 꼭 필요한 필수 유틸리티이니, 위의 설치 방법과 옵션들을 참고해 직접 활용해 보시기 바랍니다.

TecMint의 모든 튜토리얼은 경험 많은 리눅스 시스템 관리자 팀이 작성하여 높은 품질 기준을 충족합니다.