首页/系统/Linux 运维命令速查/nc netcat 网络瑞士军刀
网络命令82 条

nc netcat 网络瑞士军刀

TCP/UDP 读写工具:-z 端口探测、-l 监听、-w 超时、传文件/临时调试服务器;-zv 是最快的「端口通不通」答案。

Linux 运维命令速查系统更新于 2026-10-13

nc 是什么

nc(netcat)在 TCP/UDP 之上做最朴素的读写:既能作为客户端发起连接、把标准输入送到对端,也能作为服务端监听端口接收数据。运维里最高频的用法是探测端口通不通,其次是两机之间传文件、临时起一个 TCP 服务验证连通性。使用前必须知道实现差异:Debian 系默认的 OpenBSD netcat 与 RHEL 系默认的 nmap-ncat 参数并不完全兼容,同一段脚本换到另一系发行版可能直接报错。

基本信息

适用平台Linux/macOS;Debian 系多为 OpenBSD netcat,RHEL 系为 nmap-ncat,参数存在差异
命令语法nc [选项] 主机 端口 ;监听 nc -l [端口]
常用选项-z 只探测不发送数据 -v 输出过程 -w 超时秒数 -l 监听 -k 持续监听 -u 使用 UDP -n 不解析名称
权限说明监听 1024 以下端口需 root;普通高位端口普通用户可用
替代工具socat 功能更全,nmap 的 -p 扫描更适合批量端口探测

典型使用场景

  • 端口连通性:判断目标端口是开放、被拒绝还是被丢弃,比 ping 更贴近业务
  • 防火墙放行验证:A 机 nc -l 9000,B 机 nc -zv A 9000,先证明链路再查应用
  • 一次性传文件:内网快速把 tar 包推到另一台机器,无需开启服务
  • 临时调试服务:起一个只回显的 TCP 服务,验证客户端连接行为
  • 验证负载均衡与后端:直连某后端 IP 的端口,确认后端本身是否可用

常用示例

常用示例
nc -zv 10.0.0.5 22                          # 探测端口,-v 才有输出
nc -z -w 2 10.0.0.5 80 && echo OPEN || echo CLOSED
nc -l 9000                                  # 监听 TCP 9000(OpenBSD 写法)
nc -lk 9000                                 # 持续监听,接受多次连接
nc -w 3 10.0.0.5 9000 < file.bin            # 发送文件(对端 nc -l > out)
nc -u -z -w2 10.0.0.5 53                    # UDP 探测(结果不可靠)
printf 'GET / HTTP/1.0\r\n\r\n' | nc -w 3 example.com 80   # 手写 HTTP 请求

探测结果读法

输出含义下一步
succeeded!TCP 三次握手成功,端口有服务在听问题多半在应用层,去看服务日志
Connection refused目标主机可达但该端口没有监听到目标机用 ss -tlnp 确认服务是否启动、绑定地址是否正确
Connection timed out 或无任何输出包被丢弃,通常是防火墙 DROP 或链路不通两端同时 tcpdump,看 SYN 是否到达、有无回包
Network is unreachable本机没有可用的路由用 ip route get 目标地址 核对选路与网关
UDP 无输出也算成功UDP 无连接语义,-z 只能证明发得出去改用真实收发数据验证,或抓包确认
UDP 的 -z 探测不可靠:没有握手过程,对端不回应用户态也可能显示成功,甚至收到 ICMP 端口不可达仍报成功,判断 UDP 服务必须真实收发一次数据。
不同实现的监听写法不同:OpenBSD netcat 支持 nc -l 9000,部分版本要求 nc -l -p 9000,nmap-ncat 还支持 --sh-exec 等扩展。写跨发行版脚本前先 nc -h 确认当前实现的参数。

易错点

  • 用 nc -z -u 判定 UDP 端口会得到假阳性结论,UDP 必须真实收发数据验证
  • 在本机探测通过不代表外部可达:防火墙在外部方向拦包时本机回环测试毫无意义,必须从对端发起
  • nc 传文件没有校验与断点续传,传输完成后要用 sha256sum 比对大小与摘要
  • -l 后接端口的写法在部分实现里不兼容,跨发行版脚本会直接报错

数据来源与参考

  • man 1 nc(OpenBSD netcat 手册 / nmap-ncat 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌