nc -zv 可扫描连续端口范围,命令格式为 nc -zv ip 起始-结束,如 nc -zv 192.168.1.100 22-100;支持加 -n、-w 等参数提升稳定性,成功显示“succeeded!”,失败提示“connection refused”或超时。

用 nc -zv 探测远程服务器的端口范围,本质是让 netcat 对连续多个端口发起 TCP 连接尝试,不传数据、只看能否建立连接。它比单端口测试稍慢,但无需额外工具,适合快速摸底服务暴露面。
基础命令:扫描连续端口段
直接在端口位置写 起始-结束 格式即可:
-
nc -zv 192.168.1.100 22-100—— 扫描 22 到 100 号 TCP 端口 -
nc -zvnw 3 example.com 80-443—— 加 -n(跳 DNS)、-w 3(3 秒超时),更稳定
成功会逐个显示 Connection to ... succeeded!;失败则提示 Connection refused 或超时。注意:nc 默认按顺序扫描,不会并发,大范围(如 1-65535)会很耗时。
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
提升效率:配合脚本批量扫指定端口列表
如果要查的不是连续端口,而是几个关键端口(如 22、80、443、3306、6379),用 for 循环更清晰:
for p in 22 80 443 3306; do echo "Port $p:"; nc -zvnw 2 192.168.1.100 "$p"; done- 加 echo 分隔便于识别每条结果,-w 2 缩短单次等待,避免卡住
结果解读要点
输出信息里藏着真实状态,别只看“succeeded”或“refused”:
-
succeeded!→ 主机可达 + 端口正在监听 + 防火墙放行 -
Connection refused→ 主机可达,但该端口没服务在监听(常见于服务未启或绑错地址) -
No route to host→ 目标主机关机、路由不通,或被云平台安全组/iptables DROP 且不回 ICMP -
Connection timed out→ 中间链路拦截(如防火墙 silent drop、ACL 限制),TCP SYN 发出去没响应
注意事项与避坑
实际使用中容易忽略几个细节:
- 确保安装的是完整版 netcat(如 nmap-ncat 或 openbsd-netcat),某些精简版不支持端口范围语法
- -z 必须带上,否则 nc 会进入交互模式,卡在终端等你输入
- 扫描范围过大(如 1-65535)建议加 -w 1 并重定向输出:
nc -zvnw 1 target 1-1000 > scan.log 2>&1 - UDP 端口不能用这种写法测,-zuv 不支持范围,需单独循环










