nmap — 네트워크 분석 및 진단
최신 도구 가이드 / 네트워크 분석 및 진단 / nmap.html
호스트가 열어 두는 포트와 서비스를 조사하는 표준 네트워크 스캐너입니다.
기본 정보
| 프로그램 이름 | nmap (엔맵) |
|---|---|
| 한 줄 소개 | 호스트가 열어 두는 포트와 서비스를 조사하는 표준 네트워크 스캐너입니다. |
| 개발·유지 | Nmap Project (Gordon Lyon) |
| 공식 홈페이지 | https://nmap.org/ |
| 공식 문서 | https://nmap.org/book/man.html |
| 공식 다운로드 | https://nmap.org/download.html |
| 지원 운영체제 | Linux, Windows, macOS |
| 라이선스 | GPL-2.0-or-later |
| 안정 버전 | 7.991 (2026-08-06 공개) — 확인일 2026-10-18 |
| GitHub 저장소 | https://github.com/nmap/nmap |
| 분류 | 네트워크 분석 및 진단 (태그: 포트 스캔, 서비스 탐지, 네트워크 인벤토리) |
이 프로그램은 무엇인가?
nmap은 네트워크에 연결된 호스트를 찾아내고, 각 호스트가 어떤 TCP/UDP 포트를 열어 두었는지, 그 포트에서 동작하는 서비스가 무엇이며 어떤 버전인지 조사하는 명령줄 도구입니다.
서버 관리자라면 새 서버를 네트워크에 넣은 뒤 '실제로 어디가 열려 있는가'를 확인하거나, 방화벽 규칙 변경 후 예상과 다르게 열린 포트가 없는지 점검할 때 사용합니다. GUI가 아닌 명령줄 도구라 점검 스크립트에 그대로 넣을 수 있습니다.
어떤 문제를 해결하는가?
- 서버에 어떤 서비스가 외부에 노출되어 있는지 빠르게 파악해야 할 때 (인벤토리 점검).
- 방화벽·보안그룹 규칙을 바꾼 뒤 실제로 포트가 막혔는지 확인해야 할 때.
- 장애 접수를 받고 '이 포트가 열려 있나?'를 직접 검증해야 할 때.
- OSINT·침투 테스트 범위 안에서 대상 자산의 서비스 구성을 문서화해야 할 때 (별도 허가 필수).
주요 기능
포트 스캔
TCP/UDP 포트를 열려 있는지, 닫혀 있는지, 필터링되어 있는지 기준으로 구분합니다.
- 활용 상황: 서버 공인 IP에 대해 1–65535 전체 또는 주요 포트만 스캔합니다.
- 얻는 결과: 열린 포트 목록과 각 포트가 반환한 응답 패킷 정보를 얻습니다.
- 제한 사항: 스캔 대상 범위가 넓으면 시간이 오래 걸리고, 무단 스캔은 법적 문제로 이어질 수 있습니다.
서비스·버전 탐지
-sV 옵션으로 열린 포트에서 서비스 배너와 버전 정보를 추정합니다.
- 활용 상황: 서버에 설치된 웹·SSH·DB 버전을 대조 점검합니다.
- 얻는 결과: Apache 2.4.58, OpenSSH 9.6 같은 버전 추정치를 얻습니다.
- 제한 사항: 일부 서비스는 배너를 감추거나 가짜 버전을 보내므로 추정치일 뿐 확정값이 아닙니다.
NSE 스크립트
Lua로 작성된 Nmap Scripting Engine 스크립트로 취약점 확인·DNS 조회·브루트포스 등 부가 조사를 수행합니다.
- 활용 상황: Heartbleed 여부, SMB 설정 오류 등을 스크립트로 확인합니다.
- 얻는 결과: 스크립트별 결과를 분류해 출력합니다.
- 제한 사항: 공격성 스크립트는 대상에 부하를 주거나 로그에 남으므로 합의된 범위 안에서만 씁니다.
OS 핑거프린팅
TCP/IP 스택 응답 특징을 비교해 대상 운영체제를 추정합니다.
- 활용 상황: 자산 목록에 OS 정보를 채워 넣습니다.
- 얻는 결과: Linux, Windows 서버 등 OS 후보와 신뢰도를 얻습니다.
- 제한 사항: 추정에 지연·NAT 환경에서 오차가 커질 수 있습니다.
설치 및 실행
Ubuntu / Debian
배포판 저장소 버전을 설치합니다. 최신 버전은 공식 사이트의 패키지를 사용합니다.
sudo apt update
sudo apt install nmap
RHEL / CentOS / Fedora
기본 저장소 또는 EPEL 저장소에서 설치합니다.
sudo dnf install nmap
Windows / macOS
공식 다운로드 페이지의 설치 파일을 사용합니다. Windows는 Npcap 설치가 선행되어야 스캔이 정상 동작합니다.
# 공식 다운로드: https://nmap.org/download.html
실제 사용 예제
열린 포트 확인 (기본 스캔)
타깃 IP의 TCP 포트 1–1000을 기본 모드로 스캔합니다. sudo 권한이 있으면 핸드셰이크 방식이 더 빠릅니다.
sudo nmap -sT -p 1-1000 192.0.2.10
서비스 버전 탐지
-sV를 붙여 열린 포트의 서비스와 버전 추정치를 함께 확인합니다.
sudo nmap -sV -p 22,80,443 192.0.2.10
스크로립트 스캔 (예시)
NSE 스크립트 기본 세트로 취약점 관련 조사를 수행합니다. 결과는 예시이며 실제 스캔 결과가 아닙니다.
sudo nmap -sV --script default 192.0.2.10
장점과 한계
장점
- 네트워크 조사 사실상의 표준 도구로, 문서·스크립트·교재 자원이 풍부합니다.
- 단순 포트 확인부터 NSE 스크립트 기반 조사까지 한 도구로 확장됩니다.
- 출력을 (-oG, -oX) 스크립트가 읽기 쉬운 형식으로 저장할 수 있어 자동화에 적합합니다.
- Linux·Windows·macOS 모두 공식 지원합니다.
사용 전에 고려할 점
- 대상 네트워크에 대한 명시적 허가 없이 스캔하면 법적·정책적 문제를 겪을 수 있습니다.
- 대규모 스캔 시 트래픽이 커서 장애나 탐지로 이어질 수 있습니다.
- OS·버전 추정은 휴리스틱 기반이라 오차가 있습니다.
- 초보자가 NSE 스크립트를 그대로 돌리면 예기치 않은 결과를 얻기 쉽습니다.
비슷한 프로그램과 비교
| 프로그램 | 특징 | 이런 경우에 적합 |
|---|---|---|
| masscan | 대규모 포트 스캔 속도에 특화되어 있어 초당 수만 포트를 처리합니다. | 인터넷 전체나 대규모 대상 범위를 빠르게 훑어야 할 때. |
| zmap | 단일 포트를 대규모 대상에 대해 빠르게 스캔하는 데 특화됩니다. | 한 포트(예: 80)만 열려 있는 호스트를 광범위하게 찾을 때. |
| netcat (nc) | 포트 하나하나를 수동으로 열어 보는 단순 도구입니다. | 이미 스캔으로 특정한 포트 한두 개만 재확인할 때. |
공식 자료 및 추가 학습
- 공식 홈페이지 — https://nmap.org/
- 공식 문서 / 지식베이스 — https://nmap.org/book/man.html
- 공식 다운로드 — https://nmap.org/download.html
- 릴리스 노트 — https://nmap.org/changelog.html
- 소스 / 개발 자료 — https://github.com/nmap/nmap
버전·지원 환경 정보는 2026-10-18 기준으로 공식 사이트에서 확인한 값입니다. 설치 명령은 사용하는 배포판과 버전에 따라 달라질 수 있으므로 공식 설치 문서를 함께 확인하세요.
실제 실행 화면
nmap의 서비스 탐지(-sV) 결과 화면을 서버 풍으로 재구성한 합성 예시입니다. 화면은 합성 예시이며 실제 실행 결과가 아닙니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.