Linux / 명령어 / nmap - 허가된 호스트의 포트와 서비스 조사
nmap은 호스트와 네트워크 포트를 조사하는 도구입니다. 자신이 관리하거나 점검 허가를 받은 대상에서 열린 포트와 서비스 상태를 확인할 때 사용합니다.
nmap 명령어란?
기본 스캔 결과의 open은 대상 포트가 연결을 받음을, closed는 접근 가능하지만 수신 서비스가 없음을, filtered는 방화벽 등으로 응답을 판단하기 어려움을 뜻합니다. 포트 번호만으로 실제 서비스의 안전성이나 버전을 확정할 수 없습니다.
기본 문법
nmap [옵션] 대상
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man nmap으로 현재 시스템의 설명을 확인하세요.
사용 예제
자신의 컴퓨터 점검
허가 문제 없이 로컬 호스트의 기본 스캔 결과를 익힙니다.
nmap 127.0.0.1
특정 TCP 포트 제한
대상 범위를 자신의 컴퓨터와 두 포트로 좁힙니다.
nmap -sT -p 22,80 127.0.0.1
호스트 발견만 확인
자신의 루프백 주소에 대해 포트 스캔 없이 호스트 발견을 시도합니다.
nmap -sn 127.0.0.1
내 컴퓨터를 대상으로 결과 읽기
포트 스캔은 자신이 관리하거나 명시적으로 허가받은 대상에서만 수행하세요. 실습에는 외부 주소 대신 자신의 루프백 인터페이스를 사용합니다.
nmap -sT 127.0.0.1
출력에서 주로 확인할 열의 구조:
PORT STATE SERVICE 22/tcp open ssh
open은 해당 주소·포트에서 연결을 받았다는 뜻입니다. 실제로 열린 포트가 없으면 표 대신 닫힌 포트 요약만 보일 수도 있습니다. 서비스 이름은 포트 번호에 따른 추정일 수 있으므로 실제 애플리케이션까지 확정하지 마세요. 네트워크에 영향을 줄 수 있는 빠른 대량 스캔은 허가 범위와 운영 정책을 먼저 확인해야 합니다.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-sT |
TCP connect 방식으로 스캔합니다. |
-p 목록 |
스캔할 포트를 명시적으로 제한합니다. |
-sn |
포트 스캔 없이 호스트 발견을 수행합니다. |
-Pn |
호스트 발견을 건너뛰고 대상이 살아 있다고 가정합니다. |
-sV |
포트의 서비스 버전을 추정합니다. 추가 요청이 발생합니다. |
-oN 파일 |
일반 텍스트 결과를 파일에 저장합니다. |
사용할 때 주의할 점
허가 없이 타인의 네트워크를 스캔하지 마세요. 넓은 주소 범위, 서비스 버전 검사, 스크립트 스캔은 트래픽과 탐지 이벤트를 늘립니다. 결과는 검사 시점과 방화벽 정책에 의존하므로 운영 자산 목록이나 실제 보안 평가를 대체하지 않습니다.
자주 묻는 질문
nmap에서 filtered는 포트가 닫혔다는 뜻인가요?
아닙니다. 응답이 차단되거나 도달하지 않아 열린 상태인지 닫힌 상태인지 확정하기 어렵다는 뜻입니다.
공식 문서
옵션의 정확한 동작과 구현별 차이는 nmap 관련 공식 문서에서 확인할 수 있습니다.









