`nmap -sn`은 **호스트 발견(Host Discovery)** 스캔으로, **포트 스캔 없이** 네트워크 상의 활성 호스트만 찾는 명령어입니다.
## **기본 사용법**
```bash
nmap -sn [타겟]
```
## **주요 기능**
1. **포트 스캔을 하지 않음** - 호스트가 살아있는지만 확인
2. **빠른 네트워크 스캔** - 전체 네트워크 대역을 빠르게 스캔
3. **비침투적** - 실제 서비스 연결 없이 호스트 존재만 확인
## **사용 예시**
### **단일 호스트 확인**
```bash
nmap -sn 192.168.1.1
```
```
Starting Nmap 7.80...
Nmap scan report for router.local (192.168.1.1)
Host is up (0.0020s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
```
### **서브넷 전체 스캔**
```bash
nmap -sn 192.168.1.0/24
```
```
Starting Nmap 7.80...
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Nmap scan report for 192.168.1.10
Host is up (0.0030s latency).
Nmap scan report for 192.168.1.20
Host is up (0.0050s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 3.50 seconds
```
### **IP 범위 지정**
```bash
nmap -sn 192.168.1.1-100
```
### **호스트 이름으로 스캔**
```bash
nmap -sn google.com
```
## **작동 방식 (기본 설정)**
`-sn` 옵션은 기본적으로 다음 방법들을 사용합니다:
1. **ICMP Echo Request (ping)**
2. **TCP SYN 패킷** (포트 443으로)
3. **TCP ACK 패킷** (포트 80으로)
4. **ICMP Timestamp Request**
## **응용 예시**
### **속도 조절**
```bash
nmap -sn -T4 192.168.1.0/24 # 빠른 스캔
nmap -sn -T1 192.168.1.0/24 # 느린 스캔 (스텔스)
```
### **특정 포트만 사용**
```bash
nmap -sn -PS22,80,443 192.168.1.0/24 # SSH, HTTP, HTTPS 포트로만 확인
```
### **출력 형식 지정**
```bash
nmap -sn -oG hosts.txt 192.168.1.0/24 # grep 가능 형식으로 저장
```
## **arp-scan과의 비교**
```bash
# arp-scan (ARP 프로토콜 사용 - 로컬 네트워크용)
arp-scan --localnet
# nmap -sn (다양한 방법 사용 - 로컬/원격 모두 가능)
nmap -sn 192.168.1.0/24
```
## **활용 사례**
1. **네트워크 인벤토리 확인**
```bash
nmap -sn 192.168.0.0/16 > network_hosts.txt
```
2. **특정 호스트 모니터링**
```bash
# 매분마다 호스트 상태 확인
while true; do nmap -sn 192.168.1.10; sleep 60; done
```
3. **네트워크 스캔 속도 측정**
```bash
time nmap -sn 192.168.1.0/24
```
## **주의사항**
- **권한 필요**: 일반 사용자는 제한된 스캔만 가능, root 권한으로 더 많은 방법 사용 가능
- **네트워크 정책**: 회사/공공 네트워크에서는 허가 없이 사용 금지
- **대상 동의**: 타인의 네트워크/서버 스캔은 불법
## **관련 옵션**
```bash
nmap -sL [대상] # 단순 리스트 스캔 (스캔하지 않고 목록만)
nmap -Pn [대상] # 호스트 발견 생략 (모든 호스트를 살아있다고 가정)
nmap -PE [대상] # ICMP Echo 방식만 사용
```
`nmap -sn`은 네트워크 관리자가 네트워크에 어떤 장치들이 연결되어 있는지 빠르게 확인할 때 유용한 명령어입니다.
'메모장' 카테고리의 다른 글
| 네트워크 루프(스위치/허브 레벨)는 잘못된 케이블 연결로 인해 발생하며, **네트워크 장애를 유발하는 심각한 문제**입니다. 확인용 명령어와 방법 (0) | 2025.12.08 |
|---|---|
| Windows 환경에서 공유기나 네트워크 장치의 루핑 포트(Loopback)를 확인하는 명령어 (0) | 2025.12.08 |
| `nslookup`은 **DNS(Domain Name System) 쿼리를 수행**하는 네트워크 명령어입니다. (0) | 2025.12.07 |
| netstat 명령어 정리 (0) | 2025.12.07 |
| `ping` 명령어는 **네트워크 연결 상태를 진단**하는 데 사용하는 기본적인 네트워크 도구입니다. (0) | 2025.12.07 |