Nmap 是個強大又靈活的網路掃描工具,無論是系統管理員、滲透測試人員,還是對網路安全有興趣的朋友,Nmap 都是一把非常好用的瑞士刀。
這篇文章會簡單介紹 Nmap 的安裝方式、常用指令、幾種掃描模式的差異,以及幾個實際應用的例子。如果你是剛接觸 Nmap 的新手,希望這份懶人包能幫助你快速上手!
🔧 安裝方式
最簡單的方式是直接到官網下載:https://nmap.org/download
如果你使用的是 Linux 或 macOS,也可以透過套件管理工具安裝,例如:
Ubuntu / Debian:
sudo apt install nmap
CentOS / Fedora:
sudo yum install nmap
macOS (使用 Homebrew):
brew install nmap
🚀 Nmap 指令懶人包
這邊整理了一些常見又實用的 Nmap 指令,適合平常快速查 IP、掃端口、看主機系統等。
指令 | 說明 |
---|---|
nmap {ip} | 掃描單一 IP |
nmap {ip1} {ip2} | 同時掃描多個 IP |
nmap {ip_range} | 掃描整個 IP 範圍(CIDR) |
nmap -p {port} {ip} | 掃描指定的端口 |
nmap -sS | TCP SYN 掃描(快速) |
nmap -sT | TCP connect 掃描(完整連線) |
nmap -sU | UDP 掃描 |
nmap -O | 作業系統偵測 |
nmap -sO | IP 協議掃描 |
nmap -PS | 使用 SYN Ping 掃描 |
nmap -sL | 列出目標列表,不進行掃描 |
nmap -vv | 顯示更詳細的輸出 |
⚔️ 掃描模式比較:sS、sT、sU、sO、PS 有什麼不同?
在用 Nmap 掃描的時候,可能會看到像 -sS
、-sT
這些參數。這些是不同的掃描技術,根據你的需求與環境,可以選擇適合的方式。
-sS
:TCP SYN 掃描(隱密又快速 🔍)
這是最常用也最推薦的掃描方式。Nmap 會發出 TCP SYN 封包(就像在敲門),如果對方回傳 SYN/ACK,就表示端口是開的。如果回 RST,則代表關閉。
優點是 速度快、較不易被偵測,因為它不會完成完整的三路握手。
-sT
:TCP connect 掃描(比較笨但可靠 🐢)
這種掃描方式會真的建立一個 TCP 連線(三路握手),然後馬上斷開。
由於這是系統層級的真正連線,比較容易被防火牆或入侵偵測系統(IDS)記錄到,但在某些權限受限的環境下(例如不能發送原始封包)會用到它。
-sU
:UDP 掃描(慢但必要 💧)
UDP 沒有像 TCP 那樣的連線確認機制,Nmap 只能靠發封包後的「沉默」或 ICMP 回應來猜測端口狀態。
這讓 UDP 掃描變得特別慢且難判斷準確性,但如果你要找 DNS(53)、NTP(123)等服務,那就非用不可了。
-PS
:TCP SYN Ping 掃描(輕量版偵測 🧭)
這個不是全面的端口掃描,而是拿 SYN 封包來確認哪些主機「活著」並且有開某些端口。
比 ICMP Ping 更靈活,而且常能避過禁用 ICMP 的防火牆。
-sO
:IP 協議掃描(比較冷門但有用 🧪)
如果你想知道一台主機支援哪些 IP 層協議(例如 ICMP、IGMP、ESP…),可以用 -sO
。
這通常用在更進階的網路分析或偵錯場景。
🛠 常見實戰範例
這邊舉幾個常見又實用的指令範例,幫助你快速套用在實務上。
✅ 掃描單台主機常見 TCP 端口
nmap -sS -p 1-1024 192.168.1.100
這會對 192.168.1.100
做 TCP SYN 掃描,檢查 1–1024 的知名端口。
✅ 掃描多台主機的指定端口
nmap -p 22,80,443 192.168.1.100 192.168.1.101 192.168.1.102
很適合快速比對不同主機的 Web 或 SSH 開放情況。
✅ UDP 掃描 DNS、DHCP、NTP 等服務
nmap -sU -p 53,67,123 192.168.1.100
這個範例掃描目標主機的 UDP 端口是否有提供 DNS、DHCP、NTP 等服務。
✅ 掃整個網段找活著的主機與常見端口
nmap -sP -p 22,80 192.168.1.0/24
針對整個網段掃描,快速找出哪些機器活著、哪些有開 SSH 或 Web。
✅ 綜合掃描 TCP、UDP 與作業系統
nmap -sS -sU -O 1.1.1.1
這是一個比較全面的掃描組合,針對常見 TCP / UDP 端口做偵測,並試著推測作業系統類型,通常只會掃描 1000 個常見端口,結果如下:
Starting Nmap 7.94 ( https://nmap.org ) at 2024-05-07 16:08 CST
Nmap scan report for one.one.one.one (1.1.1.1)
Host is up (0.0075s latency).
Not shown: 998 open|filtered udp ports (no-response), 993 filtered tcp ports (no-response)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
113/tcp closed ident
443/tcp open https
8008/tcp open http
8080/tcp open http-proxy
8443/tcp open https-alt
53/udp open domain
33459/udp closed unknown
Device type: general purpose|firewall|media device|WAP
Running (JUST GUESSING): Linux 3.X|2.6.X (89%), IPCop 2.X (86%), Tiandy embedded (86%), HP embedded (85%)
OS CPE: cpe:/o:linux:linux_kernel:3.18 cpe:/o:linux:linux_kernel:3.4 cpe:/o:ipcop:ipcop:2 cpe:/h:hp:msm410 cpe:/o:linux:linux_kernel:2.6.32
Aggressive OS guesses: Linux 3.18 (89%), IPCop 2 firewall (Linux 3.4) (86%), Tiandy NVR (86%), HP MSM410 WAP (85%), Linux 2.6.32 (85%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 8 hops