端口扫描是网络管理、安全审计和系统维护中的重要操作,通过扫描目标主机开放的端口,可以了解其运行的服务、潜在的安全漏洞等信息,在Linux和macOS系统中,常用的端口扫描命令包括nmap
、telnet
、nc
(netcat)等,其中nmap
功能最为强大且专业,而Windows系统则可通过PowerShell或第三方工具实现类似功能,以下将详细介绍不同场景下的端口扫描命令及其使用方法。

使用nmap进行端口扫描
nmap
(Network Mapper)是开源的网络探测和安全审核工具,支持多种扫描技术,如TCP连接扫描、SYN扫描、UDP扫描等,安装nmap
后,可通过以下命令进行扫描:
-
基本TCP端口扫描
扫描目标主机的1-1000个常用端口,默认使用TCP连接扫描(需完整三次握手):nmap 192.168.1.1
若需指定端口范围,可使用
-p
参数,例如扫描1-65535所有端口:nmap -p 1-65535 192.168.1.1
-
SYN扫描(半开放扫描)
SYN扫描速度更快且不易被日志记录,需管理员权限:(图片来源网络,侵删)sudo nmap -sS 192.168.1.1
-
UDP端口扫描
UDP扫描较慢,需使用-sU
参数:nmap -sU 192.168.1.1
-
服务版本检测
通过-sV
参数可识别端口上运行的具体服务版本:nmap -sV 192.168.1.1
-
扫描结果输出
可将结果保存为文件,格式包括XML、Normal等:nmap -oN result.txt 192.168.1.1
使用telnet测试端口连通性
telnet
是简单的网络测试工具,可快速检查目标端口是否开放,基本命令如下:

telnet 192.168.1.1 80
若端口开放,会显示连接成功及服务 banner;若未开放,则显示“Connection refused”。
使用nc(netcat)扫描端口
nc
是多功能网络工具,可通过-z
参数进行端口扫描,避免建立完整连接:
nc -zv 192.168.1.1 1-1000
参数说明:-z
表示扫描不发送数据,-v
显示详细信息。
Windows系统下的端口扫描
-
PowerShell扫描
使用Test-NetConnection
cmdlet:Test-NetConnection -ComputerName 192.168.1.1 -Port 80
-
第三方工具
如“Advanced Port Scanner”或“Angry IP Scanner”,图形化界面操作更便捷。
端口扫描注意事项
- 合法性:扫描需获得目标系统授权,未经授权的扫描可能违反法律。
- 网络影响:高频扫描可能对目标主机造成负载,建议控制扫描频率。
- 防火墙:扫描结果可能受防火墙规则影响,需结合其他工具验证。
以下为不同工具的扫描特点对比:
工具 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
nmap | 功能全面,支持多种扫描技术 | 学习成本较高 | 专业安全审计、详细探测 |
telnet | 简单快速,无需安装 | 仅支持TCP,功能单一 | 快速连通性测试 |
nc | 轻量级,支持TCP/UDP | 输出信息较少 | 基础端口扫描 |
PowerShell | 系统内置,适合Windows环境 | 功能相对有限 | Windows日常运维 |
相关问答FAQs
Q1: 端口扫描时如何避免被防火墙拦截?
A: 可使用nmap
的-f
(分片数据包)或-D
(诱饵扫描)参数隐藏扫描特征,或通过慢速扫描(如-T0
至-T5
调整 timing 模式)降低被检测的概率,结合代理或VPN进行扫描可隐藏真实IP。
Q2: 如何判断端口扫描结果中的“open”“filtered”“closed”状态?
A:
- open:端口开放,服务正在监听(如80端口对应HTTP服务);
- closed:端口关闭,目标主机可达但无服务监听;
- filtered:端口被防火墙或其他设备过滤,无法确定状态(需结合其他方式进一步探测)。
可通过nmap
的--reason
参数查看具体判断依据。