nc(netcat)是一个非常实用的网络工具,很多系统里它会以 Ncat 的实现形式出现(例如 Nmap 套件中的 Ncat)。
它的定位很简单:快速测试网络连通性、端口状态,以及做临时的 TCP/UDP 收发。
日常排查里,nc 往往比 telnet 更直接、参数也更灵活。
一、nc(Ncat)能做什么
- 检查某个端口是否开放(最常用)
- 测试本机到目标主机的 TCP/UDP 连通性
- 快速监听本地端口,模拟服务端
- 与脚本结合做批量端口检测
二、常见参数速查
-z:零 I/O 模式,只探测端口,不发送业务数据-v:输出详细信息(建议排障时始终带上)-w <秒>:设置超时时间,避免命令卡住-l:监听模式(本地开一个端口等待连接)-u:使用 UDP(默认是 TCP)
三、常用案例
1)检查 MySQL 3306 端口是否开放
nc -zv 192.168.50.101 3306
Ncat: Version 7.92 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.50.101:3306.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
这个结果说明:
- 目标主机
192.168.50.101可达 3306端口对当前来源开放- TCP 三次握手已成功建立
注意:端口开放不等于数据库账号可登录,它只代表网络层连通。
2)快速检测多个常见端口
nc -zv 192.168.50.101 22 80 443 3306
适合快速判断 SSH、HTTP、HTTPS、MySQL 这些服务是否在监听。
3)指定超时,避免长时间等待
nc -zvw 2 192.168.50.101 3306
在网络不稳定或目标主机可能离线时,建议加 -w。
4)扫描端口区间(轻量排查)
nc -zv 192.168.50.101 3000-3010
适合开发机排查某段端口是否被占用或已开放。
5)本地监听端口,临时模拟服务端
nc -lv 8080
可配合另一台机器测试连通性:
nc -zv <你的IP> 8080
四、排障经验:连接失败时优先检查什么
当 nc -zv 连接失败时,通常按这个顺序排查:
- 目标服务是否真的在监听该端口(服务进程状态)
- 本机与目标主机网络是否互通(路由/VPN/网段)
- 目标主机防火墙或安全组是否放行该端口
- 是否写错了 IP、端口,或访问了错误环境
五、小结
nc(Ncat) 是网络排障工具箱里的高频命令,最常见用法就是:
nc -zv <目标IP> <端口>
一句命令就能快速回答“端口通不通”这个关键问题。
无论是排查 MySQL、Redis、SSH,还是业务服务端口连通性,nc 都非常高效。