想知道某個 IP 開放了哪些可連接的 Port?這篇文章介紹開源網路掃描工具 Nmap 的用途、主要功能,以及最常用的掃描指令範例,讓我可以在幾分鐘內完成埠掃描、服務版本與作業系統偵測。
什麼是 Nmap?為什麼要用它掃描 Port?
Nmap(Network Mapper)是一款免費且開源的網路安全工具,用於網路發現和安全審計。它可以使用原始 IP 封包以新穎的方式來確定網路上的哪些主機可用、這些主機提供哪些服務(應用程式名稱和版本)、它們運行的作業系統(和作業系統版本)、使用的封包過濾器/防火牆類型,以及其他數十種特性。
Nmap 的工作原理是向目標主機發送原始 IP 封包並分析響應,可以使用各種技術來掃描埠、檢測服務和確定作業系統。
Nmap 的四大使用目的
| 使用目的 | 說明 |
|---|---|
| 列舉網路主機清單 | 掃描網路並列出所有可用的主機,幫助網路管理員了解其網路上的內容 |
| 管理服務升級排程 | 識別正在運行的服務和版本,方便追蹤軟體升級與修補程式 |
| 監視主機或服務執行狀況 | 確認主機或服務是否可用,確保網路正常運行 |
| 漏洞檢測 | 掃描主機中的已知漏洞,保護網路免受攻擊 |
Nmap 主要功能有哪些?
- 埠掃描:掃描目標主機的埠,確定哪些埠已開啟、已關閉或被過濾。
- 服務檢測:檢測目標主機上運行的服務,識別服務的應用程式名稱、版本和協定。
- 作業系統偵測:識別目標主機的作業系統,包括作業系統的類型、版本和發行版。
- NSE 腳本:透過 NSE(Nmap Scripting Engine)腳本擴展功能,可執行漏洞掃描、Web 應用程式掃描和網路枚舉等各種任務。
怎麼用 Nmap 掃描所有可連接的 Port?
先安裝套件(CentOS/RHEL 為例):
```bash
sudo yum install nmap
```
接著使用以下指令來掃描所有可連接的 port:
```bash
nmap -v www.hinet.net
```
也可以使用 `-A` 來偵測對方主機的作業系統與各種服務的版本:
```bash
nmap -A scanme.nmap.org
```
若只需要各種服務的版本,改用 `-sV`:
```bash
nmap -sV scanme.nmap.org
```
延伸閱讀
- 用 Nmap 掃描某個 IP 所有可接受連接的 PORT:同樣聚焦 Nmap、網路安全,可接著比較不同情境的做法。
- Linux 網路功能指令介紹:ifconfig、route、ping、nslookup、traceroute:同樣聚焦 Linux,可接著比較不同情境的做法。
- 利用 netstat 查詢連線數量(connections):同樣聚焦 Linux,可接著比較不同情境的做法。
常見問題
Nmap 是免費的嗎?
是的,Nmap 是免費且開源的工具,可用於網路發現和安全審計。它支援 Linux、Windows、macOS 等多種平台。
掃描別人的 IP 是否合法?
未經授權對他人主機進行埠掃描在多數地區可能違法。掃描前務必取得目標系統擁有者的同意,或僅掃描自己管理的機器(如 Nmap 官方提供的 scanme.nmap.org 就是開放測試用的主機)。
nmap -A 和 nmap -sV 有什麼差別?
`-A` 是進階掃描,會同時偵測作業系統、服務版本、腳本掃描和路由追蹤;`-sV` 只做服務版本偵測,輸出較精簡。只想知道服務版本時用 `-sV` 比較快。
如何找出特定 Port 是否開啟?
可以直接指定埠號掃描,例如 `nmap -p 80,443 目標IP` 只檢查 80 和 443 埠。若不指定,預設會掃描 Nmap 內建的常用埠清單。
參考資料
最後更新
2026-08-28(原文發布於 2024-07-19,本文保留原始筆記內容並補上 GEO 結構。)
關於作者 {#author}
Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。
首次發布:2024-07-19
