nc(Netcat)被誉为网络瑞士军刀,轻量命令行网络工具,支持 TCP/UDP 连接、端口扫描、测速、文件传输、简易聊天、后门调试等,绝大多数 Linux 自带,无自带可通过包管理器安装。
直接装 netcat 会提示虚拟包冲突,二选一安装:
# 推荐 OpenBSD 版本,功能更规范
sudo apt install netcat-openbsd
# 传统版(老旧,部分参数行为不同)
sudo apt install netcat-traditional报错说明:
netcat只是虚拟包,系统需要你手动指定具体实现包。
sudo dnf install nc
# 或旧版yum
sudo yum install ncapk add netcat-openbsd监听模式,充当服务端语法:
nc -vz 目标IP 起始端口-结束端口示例:扫描 192.168.0.102 1~100 端口,打印详细日志
nc -vz 192.168.0.102 1-100成功开放端口输出示例:
Connection to 192.168.0.102 port 53 [tcp/domain] succeeded!
Connection to 192.168.0.102 port 80 [tcp/http] succeeded!补充:扫描UDP端口加 -u
nc -vzu 192.168.0.102 53原理:服务端监听并丢弃数据,客户端生成大量零字节流传输,dd统计速度。
nc -l 9999 > /dev/null# 发送100MB数据测试
dd if=/dev/zero bs=1M count=100 | nc 192.168.0.102 9999输出示例(自动显示传输速率):
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.001434 s, 73.1 GB/snc -l 9999 > receive.tar.gznc 192.168.0.102 9999 < send.tar.gz适合传整个文件夹: 接收端:
nc -l 9999 | tar -zxvf -发送端:
tar -zcf - /data/test | nc 192.168.0.102 9999nc -l 9999nc 192.168.0.102 9999两端输入文字会实时互通。
替代 telnet 探测端口是否通:
nc -v 192.168.0.102 80
# 可直接发HTTP请求测试网站
GET / HTTP/1.1
Host: 192.168.0.102-l 监听端口时,需在防火墙开放对应端口(如9999),否则外部无法连接;nc -zu 扫描准确率低,生产端口探测推荐 nmap;netcat-traditional 支持 -e 反弹shell,netcat-openbsd 默认移除 -e 参数,渗透场景需注意。nc 轻量无依赖,日常运维四大核心场景: