批量扫描内网端口核心是“一次命令覆盖多个目标”,nmap支持CIDR网段扫描:默认扫Top 1000端口、指定关键端口(如22,80,443,3306)、全端口扫描需sudo;netcat适合单端口批量验证,如用while循环配合hosts.txt巡检22端口。

批量扫描内网开放端口,核心是“一次命令覆盖多个目标”,同时兼顾效率、可读性和实用性。不需要写脚本也能快速完成,但需要根据场景选对工具和参数。
用 nmap 批量扫整个子网
nmap 最直接支持批量扫描,只需把单个 IP 换成 CIDR 表示的网段即可:
-
扫常见端口(快,适合初筛):
nmap 192.168.1.0/24—— 默认扫描 Top 1000 TCP 端口,列出所有在线主机及开放端口 -
扫指定关键端口(精准):
nmap -p 22,80,443,3306 192.168.1.0/24—— 只查运维最关心的几个服务端口,速度快、结果干净 -
全端口扫描(深度测绘,需 sudo):
sudo nmap -p- --min-rate 5000 192.168.1.0/24—— 扫 1–65535 全端口,--min-rate加速避免超时,默认速率较慢
用 netcat(nc)批量验证单个端口是否通
如果只关心某一个端口(比如确认所有机器的 SSH 是否可用),nc 更轻量、无需 root,适合快速巡检:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 先准备主机列表文件 hosts.txt,每行一个 IP:
192.168.1.10<br>192.168.1.11<br>192.168.1.12
- 执行批量探测(22 端口为例):
while read ip; do echo -n "$ip: "; nc -zvw2 "$ip" 22 2>&1 | grep -q "succeeded" && echo "open" || echo "closed"; done
输出类似:
192.168.1.10: open<br>192.168.1.11: closed<br>192.168.1.12: open
加点实用细节,避免踩坑
-
跳过主机发现阶段:加
-Pn参数(如nmap -Pn -p 80 192.168.1.0/24),防止因 ICMP 被屏蔽导致漏掉存活主机 -
加快速度又不丢包:用
-T4(比默认T3更激进),配合--min-parallelism 100提高并发连接数 -
保存结果方便分析:加
-oN result.txt输出普通文本,或-oG result.gnmap生成可 grep 的格式,后续用grep "open" result.gnmap快速提取 -
注意权限:SYN 扫描(
-sS)、全端口扫描(-p-)、操作系统识别(-O)都需要sudo;TCP 连接扫描(-sT)普通用户也能跑
补充:别忘了本地监听端口也要核对
批量扫内网前,建议先确认本机哪些端口真正在监听,排除误判干扰:
-
sudo ss -tuln—— 查看本机所有监听中的 TCP/UDP 端口(推荐,比 netstat 更快) -
sudo lsof -i -P -n | grep LISTEN—— 显示监听端口对应的进程名和 PID,便于定位服务
这样扫出来的“开放端口”才真正反映网络可达性,而不是防火墙放行但服务没起来的假象。

















