hping3 사용법: 네트워크 진단 및 포트 스캔 기초 가이드
대상 네트워크가 살아있는지, 어떤 포트가 열려 있는지 정확히 알고 싶다면 일반 ping으로는 부족하다. 패킷을 직접 설계해 전송하는 hping3가 해결책이다.
이 글은 2026년 7월 기준으로 작성됐다. 최신 리눅스 환경과 네트워크 보안 요구사항을 반영하여 안전하고 올바른 도구 사용법을 설명한다.
본 포스트는 hping3 네트워크 보안 가이드 시리즈의 1편이다. 이 시리즈를 통해 다룰 핵심 주제는 다음과 같다.
- 1편 (현재 글): hping3 기본 개념, 설치 방법, 기본 프로토콜별 통신 및 포트 스캔 기초
- 2편 (예정): hping3를 이용한 방화벽 정책 검증 및 DoS/DDoS 부하 테스트
hping3와 일반 ping은 무엇이 다를까?
일반 ping 명령어가 ICMP 에코 요청만 전송하는 반면, hping3는 TCP, UDP, ICMP, RAW-IP 패킷을 사용자가 직접 조작하여 전송할 수 있는 강력한 패킷 분석 도구다.
일반적인 ping은 대상 서버가 ICMP 응답을 차단(방화벽 설정)하면 서버가 켜져 있어도 "응답 없음"으로 나타난다. 반면 hping3는 웹 서비스가 작동 중인 포트(예: TCP 80, 443)로 직접 TCP 패킷을 보내 서버의 실제 활성화 여부를 감지할 수 있다.
이해를 돕기 위해 두 도구의 동작 차이를 아래 시퀀스 다이어그램으로 확인한다.
sequenceDiagram
autonumber
actor Admin as 관리자/분석가
participant Sys as hping3 (TCP SYN)
participant Ping as 일반 ping (ICMP)
participant Target as 대상 서버 (방화벽 작동)
rect rgb(240, 240, 240)
note right of Target: ICMP 차단 상태
Admin->>Ping: ping [IP] 실행
Ping->>Target: ICMP Echo Request
Target-->>Ping: (패킷 드랍 / 응답 없음)
Ping-->>Admin: Request Timeout
end
rect rgb(220, 240, 255)
note right of Target: 80번 포트(웹 서비스) 개방 상태
Admin->>Sys: hping3 -S [IP] -p 80 실행
Sys->>Target: TCP SYN Packet (Port 80)
Target-->>Sys: TCP SYN-ACK Packet
Sys-->>Admin: 연결 성공 및 응답 시간 출력
end
보안 진단을 수행할 때 단순 응답 테스트를 넘어 포트 스캔, 네트워크 성능 측정, MTU 경로 탐색 등 다목적으로 사용 가능한 점이 hping3의 독보적인 강점이다. 보다 상세한 역사와 초기 개발 코드는 hping3 공식 소스코드 저장소에서 살펴볼 수 있다.
주요 리눅스 배포판별 hping3 설치 가이드
hping3는 크로스 플랫폼을 지원하지만, 원활한 패킷 제어를 위해 Linux 환경에서 구동하는 것을 권장한다.
대다수의 Linux 배포판 공식 패키지 저장소에 등록되어 있으므로 패키지 매니저로 간단히 설치할 수 있다. 다만 패킷을 로우(Raw) 레벨에서 직접 조작해야 하므로 실행 시 반드시 루트 권한(sudo)이 필요하다.
1. 데비안 및 우분투 계열 (Ubuntu, Debian)
sudo apt update
sudo apt install hping3 -y
2. 레드햇 및 센트오스 계열 (Rocky Linux, Alma Linux, CentOS)
EPEL(Extra Packages for Enterprise Linux) 저장소가 활성화되어 있어야 설치 가능하다.
sudo dnf install epel-release -y
sudo dnf install hping3 -y
프로토콜별 기본 연결 진단 커맨드
설치가 완료되었다면 기본적인 패킷 전송을 통해 연결성을 테스트한다. 각 프로토콜별 옵션의 쓰임새를 이해하는 것이 중요하다.
1. ICMP 모드로 ping 대체하기
-1 옵션을 지정하면 ICMP 모드로 동작한다. 일반 ping과 유사하지만 데이터 크기나 전송 간격을 세밀하게 조정할 수 있다는 장점이 있다.
sudo hping3 -1 192.168.1.100 -c 4
-1: ICMP 모드를 지정한다.-c 4: 4개의 패킷만 보낸 뒤 종료한다.
2. TCP SYN 패킷 전송하기
웹 서버의 응답 여부를 신속하게 진단하고 싶을 때 사용한다. 일반적으로 웹 포트인 80 또는 443을 타겟으로 잡는다.
sudo hping3 -S 192.168.1.100 -p 80 -c 3
-S: TCP SYN 플래그를 설정하여 핸드셰이크 요청을 보낸다.-p 80: 목적지 포트를 80번으로 지정한다.
직접 로컬 가상머신을 대상으로 테스트해 본 결과, 방화벽이 ICMP를 차단하고 있더라도 80번 포트로 보낸 TCP SYN 패킷에 대해 즉각적인 SYN-ACK(응답 플래그)이 수신되며 작동 상태를 성공적으로 증명해 주었다.
3. UDP 모드 사용하기
UDP는 비연결형 프로토콜이므로 상대방의 수신 여부를 확인하기 어렵지만, 특정 포트가 닫혀 있을 경우 돌아오는 ICMP Destination Unreachable 에러를 통해 포트 상태를 유추할 수 있다.
sudo hping3 -2 192.168.1.100 -p 53 -c 3
-2: UDP 모드를 활성화한다.-p 53: DNS 포트인 53번을 타겟으로 지정한다.
각 명령어의 상세 옵션 플래그 설명은 리눅스 Man-page hping3 명세 문서를 통해 명확히 비교할 수 있다.
특정 포트 점검 및 범위 스캔 실습
보안 진단을 수행할 때 방화벽 정책이나 불필요하게 열려 있는 포트를 탐색하기 위해 포트 스캔을 진행한다.
hping3는 단일 포트뿐 아니라 범위 포트 스캔 기능도 지원한다. 대표적인 포트 스캔 도구인 Nmap에 비하면 시각적인 레포팅 기능은 단순하지만, 로우 패킷 커스터마이징이 즉시 가능하다는 장점이 있다.
TCP SYN 포트 스캔
SYN 스캔은 완전한 TCP 3-Way Handshake를 맺지 않고 SYN 패킷만 보낸 뒤 응답을 확인하므로 로그를 최소화할 수 있는 기법이다. 스캔에 관한 이론적 배경은 Nmap 공식 포트스캔 원리 가이드 문서에서 깊이 있게 다룬다.
sudo hping3 --scan 21-80 -S 192.168.1.100
--scan 21-80: 21번 포트부터 80번 포트까지 순차적으로 테스트한다.-S: TCP SYN 플래그를 사용하여 테스트를 전개한다.
실행 결과 화면에는 개방된 포트(flags=SA, 즉 SYN-ACK 수신)만 필터링되어 깔끔하게 출력된다. 만약 방화벽에서 완전히 패킷을 차단(Drop)하고 있다면 타임아웃이 발생하여 결과에 노출되지 않는다.
자주 묻는 질문 (FAQ)
Q. 명령어를 실행했는데 'Operation not permitted' 에러가 발생합니다.
A. hping3는 네트워크 카드의 로우 소켓(Raw Socket)을 직접 제어하므로 일반 사용자 계정 권한으로는 실행할 수 없다. 명령어 앞에 반드시 sudo를 붙여 루트(root) 권한으로 실행해야 정상 동작한다.
Q. 포트 스캔을 수행할 때 스캔 속도를 더 빠르게 제어할 수 있는 방법이 있나요?
A. --fast 옵션을 사용하면 초당 10개의 패킷을 보내며, --faster 옵션은 초당 100개로 주파수를 높인다. 다만 속도가 빠를수록 대상 시스템에 과부하를 주거나 침입 탐지 시스템(IDS)에 즉각 탐지될 가능성이 농후하므로 유의해야 한다.
Q. 윈도우 환경에서도 hping3를 설치하여 사용할 수 있나요? A. 과거 윈도우용 포팅 버전이 존재했으나 현재는 최신 윈도우 커널 및 WinPcap 라이브러리와의 호환성이 크게 떨어진다. 안정적인 사용을 원한다면 WSL(Windows Subsystem for Linux)을 설치한 뒤 Ubuntu 배포판 내부에서 구동하거나 리눅스 가상머신을 띄워 사용하는 방식을 권장한다.
📝 정리
이번 글에서 다룬 핵심 내용:
- [x] 일반 ping의 ICMP 제한을 극복하는
hping3의 TCP/UDP 패킷 조작 능력 이해. - [x] Ubuntu/CentOS 등 배포판 환경에 최적화된 설치 커맨드 체득.
- [x] TCP SYN, UDP, ICMP 모드를 활용한 대상 컴퓨터의 네트워크 활성화 진단 실무 적용.
- [x]
--scan옵션과 SYN 플래그 설정을 활용한 안전한 포트 범위 검색법 실습.
hping3는 처음엔 낯설어도, 한 번 써보면 다시는 이전으로 돌아가기 어렵다. 다음 2편에서는 방화벽 필터링 정책을 검증하는 방법과 시스템 가용성 한계를 테스트하는 DoS/DDoS 훈련 방법을 학습한다.