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 连接失败时,通常按这个顺序排查:

  1. 目标服务是否真的在监听该端口(服务进程状态)
  2. 本机与目标主机网络是否互通(路由/VPN/网段)
  3. 目标主机防火墙或安全组是否放行该端口
  4. 是否写错了 IP、端口,或访问了错误环境

五、小结

nc(Ncat) 是网络排障工具箱里的高频命令,最常见用法就是:

nc -zv <目标IP> <端口>

一句命令就能快速回答“端口通不通”这个关键问题。
无论是排查 MySQL、Redis、SSH,还是业务服务端口连通性,nc 都非常高效。