### Port Scanning - TCP
```bash
nc -nvv -w 1 -z 192.168.50.152 3388-3390
```
- `nc`: Netcat 명령어. 네트워크 연결, 포트 스캔, 파일 전송 등 다양한 작업에 사용됨.
- `-n`: 호스트 이름을 DNS로 역조회하지 않고 IP 그대로 사용.
- `-v`: verbose 모드 (더 자세한 출력)
- `-vv`: verbose 레벨을 더 높임 (연결 상태를 더 자세히 출력)
- `-w 1`: 연결 대기 시간을 1초로 설정 (타임아웃 설정)
- `-z`: zero-I/O 모드 — 실제 데이터를 전송하지 않고 포트가 열려 있는지만 확인 (스캔 전용)
- `192.168.50.152`: 스캔 대상 IP 주소
- `3388-3390`: 스캔할 포트 범위
### Port Scanning - UDP
```bash
nc -nv -u -z -w 1 192.168.50.149 120-123
```
---
|옵션|설명|예시|
|---|---|---|
|`-l`|**리슨(listen) 모드**로 사용, 서버처럼 대기|`nc -l 1234` → 포트 1234에서 연결 대기|
|`-p <포트>`|리슨 모드 또는 로컬 포트 지정|`nc -l -p 1234`|
|`-e <프로그램>`|연결되면 특정 프로그램 실행 (shell 등) → **보안상 매우 위험**|`nc -l -p 1234 -e /bin/bash`|
|`-v`|**verbose 모드**, 진행 상황 표시|`nc -v 192.168.0.5 80`|
|`-vv`|더 자세한 verbose|`nc -vv 192.168.0.5 80`|
|`-n`|**DNS 조회 안 함**, IP 주소만 사용|`nc -n 192.168.0.5 80`|
|`-u`|**UDP 모드** 사용|`nc -u 192.168.0.5 53`|
|`-z`|**포트 스캔 모드** (데이터 전송 없이 포트 상태 확인)|`nc -zv 192.168.0.5 20-25`|
|`-w <초>`|연결/읽기 타임아웃 지정|`nc -w 5 192.168.0.5 80`|
|`-4`|IPv4 사용 강제|`nc -4 192.168.0.5 80`|
|`-6`|IPv6 사용 강제|`nc -6 fe80::1 80`|
|`-q <초>`|EOF 후 연결 종료 대기 시간|`nc -q 2 192.168.0.5 1234`|