用 nc -zv 可快速探测内网tcp端口连通性,仅做三次握手、不传数据;配合 -n(跳dns)、-w(设超时)、-v(显详情)及循环/过滤命令,实现高效批量扫描与结果提取。

用 nc -zv 扫描内网特定服务器网段的 TCP 端口连通性,核心是组合 IP 范围、端口列表与合理参数,避免卡顿和误判。它不发业务数据,只做三次握手探测,响应快、结果直白。
准备基础环境
确保目标机器已安装 netcat(多数系统自带,若无则安装):
- RHEL/CentOS/Rocky/AlmaLinux:
yum install nc或dnf install nc - Ubuntu/Debian:
apt install netcat
-z 是关键参数:启用“零 I/O 模式”,仅尝试连接,不等待输入或传输数据;没有它,nc 会挂起等待用户输入。
单台服务器多端口快速检测
适用于检查某台内网服务器(如 192.168.1.10)是否开放了 SSH、HTTP、数据库等常用端口:
nc -zvnw 2 192.168.1.10 22 80 443 3306 5432
-
-n:跳过 DNS 解析,直连 IP,更稳定 -
-w 2:超时设为 2 秒,防个别端口阻塞整体流程 -
-v:显示每条连接结果,便于识别成功/失败
成功提示含 succeeded!;Connection refused 表示主机可达但服务未监听;No route to host 或长时间无响应,大概率是防火墙、iptables、安全组或主机离线。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
扫描指定网段中多台服务器的同一端口
比如批量验证整个 192.168.1.0/24 网段所有机器的 22 端口是否开放:
for ip in 192.168.1.{1..254}; do echo "=== $ip ==="; nc -zvnw 1 "$ip" 22 2>&1; done
- 用
{1..254}生成连续 IP,适合小型内网 -
2>&1合并错误输出,确保Connection refused等也打印出来 - 超时设为
-w 1可加快速度,内网延迟低,1 秒足够判断
若需更灵活控制(如跳过已知不可达 IP),可先准备 iplist.txt,再配合 while read 循环处理。
结果过滤与简化阅读
扫描输出信息较多,可用 grep 快速提取有效信息:
- 只看开放的端口:
nc -zvnw 1 192.168.1.10 20-100 2>&1 | grep succeeded - 标记失败项(如被拒绝或超时):
nc -zvnw 1 192.168.1.10 22 80 443 2>&1 | grep -E "(refused|timed out|No route)"
注意:UDP 测试(-u)在内网扫描中可靠性较低,因依赖 ICMP 错误包返回,建议专注 TCP 场景。










