English

nethawk — 터미널 네트워크 트래픽 분석

Linux / 모던 CLI 도구 / nethawk.html

모던 CLI 도구원문등록 2026-10-19T17:00:00+09:00

💬 "nethawk 명령어"

nethawk는 터미널에서 실시간 네트워크 트래픽을 분석하는 도구입니다. libpcap으로 패킷을 직접 캡처해 대역폭·프로토콜·상대 IP를 한 화면에 띄우고, 트래픽 패턴을 실시간으로 분류합니다.

Go로 만들어진 단일 바이너리(약 5MB)이며 설정 파일·데이터베이스 없이 동작합니다. PPS(초당 패킷 수)가 임계값을 넘으면 DNS·NTP 증폭이나 SYN 플러드 같은 공격 유형을 색상으로 표시합니다.

  • 개념: libpcap으로 패킷을 캡처해 실시간 트래픽을 터미널에 시각화합니다.
  • 주요 기능: 대역폭·프로토콜 비율·상위 소스 IP·상위 목적지 포트·공격 탐지를 한 화면에 표시합니다.
  • 장점: 설정 없이 단일 바이너리로 동작하고, -json 출력으로 다른 도구와 연결할 수 있습니다.
  • 활용: 방화벽 앞단에서 어떤 트래픽이 들어오는지 즉시 확인할 때 사용합니다.

기본 사용법

nethawk는 실행하면 터미널 전체를 차지하는 실시간 대시보드를 띄웁니다. 아래 순서대로 시작하고 화면을 읽습니다.

1. 인터페이스 확인 → 실행

먼저 캡처할 네트워크 인터페이스 이름을 확인한 뒤 root로 실행합니다.

nethawk -list        # 사용 가능한 인터페이스 목록 확인 (eth0, ens3 등)
sudo nethawk         # 자동 감지 인터페이스로 시작
sudo nethawk -i eth0 # 특정 인터페이스 지정

2. 화면 읽는 법

실행하면 몇 개 패널이 실시간으로 갱신됩니다.

  • 대역폭: 현재 송수신 비트레이트가 그래프로 표시됩니다. 평소 대비 튀는 순간이 공격 신호입니다.
  • 프로토콜 비율: TCP·UDP·ICMP 등이 파이/막대로 분포합니다. 평소에 없던 UDP 비중이 급증하면 증폭 공격 가능성이 있습니다.
  • 상위 소스 IP / 목적지 포트: 지금 가장 많이 보내는 IP와 가장 많이 향하는 포트입니다. 특정 IP가 반복 등장하면 차단 후보입니다.
  • 공격 탐지 배너: PPS가 임계값(-t)을 넘으면 DNS·NTP 증폭, SYN 플러드 등 유형이 색상과 함께 상단에 뜹니다.

3. 종료

대시보드에서 Ctrl+C로 종료합니다. 캡처는 메모리에서 처리되며 종료 시 남기지 않습니다.

설치 및 다운로드

nethawk는 공식 스크립트·소스 빌드·릴리스 바이너리로 설치합니다. 패킷 캡처를 위해 libpcap이 필요합니다.

환경명령
공식 원라이너 (Linux/macOS)curl -sSfL https://raw.githubusercontent.com/Flowtriq/nethawk/main/install.sh | sudo sh
Go 소스 빌드go install github.com/Flowtriq/nethawk/cmd/nethawk@latest
릴리스 바이너리github.com/Flowtriq/nethawk/releases
Ubuntu/Debian (libpcap)sudo apt install libpcap-dev
RHEL/CentOS (libpcap)sudo yum install libpcap-devel

설치 확인은 nethawk -list로 인터페이스 목록을 보며, 실행은 sudo nethawk로 합니다(패킷 캡처에 root 권한 필요).

자주 쓰는 옵션

옵션설명
-i eth0특정 인터페이스를 지정합니다
-t 100000공격 탐지 PPS 임계값을 지정합니다(기본값 사용 시 생략)
-json구조화된 JSON으로 출력해 파이프에 연결합니다
-list사용 가능한 인터페이스 목록을 표시합니다

필수 명령어 조합 3가지

  • sudo nethawk — 인터페이스 자동 감지로 전체 트래픽 모니터링
  • sudo nethawk -i eth0 — 특정 인터페이스만 지정해 모니터링
  • sudo nethawk -json | jq '.severity' — JSON 출력에서 심각도만 추출

💬 "실제 서버에서 nethawk를 사용하는 예시를 보여줘"

실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.

1단계 · 설치 확인

libpcap과 nethawk 설치 여부를 확인합니다.

nethawk -list 2>/dev/null || sudo sh -c 'curl -sSfL https://raw.githubusercontent.com/Flowtriq/nethawk/main/install.sh | sh'

2단계 · 실시간 트래픽 확인

들어오는 전체 트래픽을 실시간으로 확인합니다.

sudo nethawk -i eth0

3단계 · 이상 트래픽을 JSON으로 기록

심각도를 추출해 다른 도구로 넘깁니다.

sudo nethawk -i eth0 -json | jq -c '{pps, severity, top_port: .top_ports[0].port}'

실무에서는 이렇게 씁니다

1. 공격 유형 즉시 식별

상황 — 트래픽이 갑자기 급증했는지 확인합니다.

sudo nethawk -i eth0 -t 50000

결과 — PPS가 임계값을 넘으면 색상과 함께 공격 유형(DNS 증폭, SYN 플러드 등)이 표시됩니다.

포인트 — 어떤 서비스 포트가 공격받는지 즉시 파악할 수 있습니다.

2. 상위 소스 IP 추적

상황 — 가장 많은 트래픽을 보내는 IP를 확인합니다.

sudo nethawk -json | jq '.top_sources[:5]'

결과 — 패킷 수 기준 상위 소스 IP 목록이 표시됩니다.

포인트 — 방화벽 차단 규칙 작성 시 근거 데이터로 활용합니다.

주의할 점

  • 패킷 캡처에 root 권한이 필요합니다(tcpdump·Wireshark와 동일).
  • 공격 탐지는 실시간 확인용이며 자동 차단은 하지 않습니다(차단은 별도 방화벽·DDoS 솔루션 필요).
  • 트래픽이 매우 클 때 소스 IP 추적은 메모리 확보를 위해 최대치로 제한됩니다.
  • 신규 프로젝트(스타 수 적음)라서 운영 화이트리스트·신뢰성 검토를 거쳐 사용합니다.