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 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / host - 도메인과 IP 주소의 DNS 정보 간단히 조회

Linux / 명령어 / host - 도메인과 IP 주소의 DNS 정보 간단히 조회

Linux host 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux 강좌 / 현재 위치 확인하고 이동하기 - pwd, ls, cd, tree

Linux 강좌 / 현재 위치 확인하고 이동하기 - pwd, ls, cd, tree

pwd, ls, cd, tree를 연결해 현재 위치를 확인하고 디렉터리를 탐색합니다. 절대·상대 경로의 차이와 안전하게 돌아오는 방법도 실습합니다.

Linux / 명령어 / sort - 텍스트 행 정렬

Linux / 명령어 / sort - 텍스트 행 정렬

Linux sort 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / tr - 표준 입력의 문자 치환과 삭제

Linux / 명령어 / tr - 표준 입력의 문자 치환과 삭제

Linux tr 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 리눅스 배포판 종류와 버전 확인하는 방법

Linux / 리눅스 배포판 종류와 버전 확인하는 방법

리눅스 배포판 종류와 버전을 /etc/os-release, hostnamectl, uname 명령으로 확인하는 방법을 설명합니다. 배포판 계열과 커널 버전의 차이, 스크립트 활용법과 컨테이너·WSL 환경의 주의점도 함께 정리합니다.

Linux / 명령어 / chmod - 파일·디렉터리 접근 권한 변경

Linux / 명령어 / chmod - 파일·디렉터리 접근 권한 변경

Linux chmod 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux 강좌 / PID와 PPID 이해하기 - 프로세스 확인과 관리

Linux 강좌 / PID와 PPID 이해하기 - 프로세스 확인과 관리

PID와 PPID의 의미와 부모·자식 프로세스의 관계를 설명합니다. ps와 pgrep으로 확인하고, 직접 만든 실습 프로세스를 안전하게 종료하는 방법을 익힙니다.

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux rm 명령어로 파일과 디렉터리를 삭제하는 방법을 설명합니다. 재귀 삭제, 대화형 확인, 루트 보호 옵션과 복구가 어려운 삭제를 안전하게 다루는 원칙을 정리합니다.

Linux / 명령어 / mkfs - 새 파일 시스템 생성 전 확인 사항과 사용법

Linux / 명령어 / mkfs - 새 파일 시스템 생성 전 확인 사항과 사용법

Linux mkfs 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / tar - 여러 파일을 묶고 압축 아카이브 풀기

Linux / 명령어 / tar - 여러 파일을 묶고 압축 아카이브 풀기

Linux tar 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.