Linux系统中的nc命令全称为netcat,是一款功能丰富的网络工具,可用于端口扫描、文件传输、网络连接测试等多种场景,在服务器运维和网络调试工作中应用十分广泛。

nc命令基本语法
nc命令的基础语法格式如下:
nc [选项] 目标主机 端口
常用的选项说明如下:
- -l:监听模式,用于作为服务器端接收连接
- -p:指定本地使用的端口号
- -u:使用UDP协议,默认使用TCP协议
- -v:显示详细的执行过程信息
- -z:扫描模式,不发送任何数据,仅检测端口是否开放
- -w:设置连接超时时间,单位为秒
常见使用场景
1. 端口扫描
使用nc命令可以快速扫描目标主机的指定端口是否开放,以下是扫描本地主机1到100端口的示例:
# 扫描本地主机1-100端口,显示详细信息,超时时间设为2秒 nc -zv -w 2 127.0.0.1 1-100
如果端口开放,会输出对应的连接成功提示,如果端口关闭则会提示连接失败。
2. 测试网络连通性
nc命令可以替代telnet命令测试目标主机的指定端口是否可连通,例如测试本地80端口是否开放:
# 测试本地80端口连通性,显示详细过程 nc -v 127.0.0.1 80
3. 文件传输
利用nc命令可以在两台Linux主机之间快速传输文件,不需要额外安装ftp、scp等工具。
首先在接收端主机执行监听命令,指定接收文件的端口和保存的文件名:
# 接收端监听8888端口,将接收的内容保存为test.txt nc -l 8888 > test.txt
然后在发送端主机执行发送命令,指定接收端的IP和端口,以及要发送的文件:
# 发送端将test.txt文件发送到192.168.0.1的8888端口 nc 192.168.0.1 8888 < test.txt
传输完成后,接收端主机的test.txt文件就会和发送端的文件内容一致。
4. 作为简易聊天工具
nc命令还可以实现两主机之间的简易文本聊天功能。
在服务端执行监听命令:
# 服务端监听9999端口 nc -l 9999
在客户端连接服务端的9999端口:
# 客户端连接服务端192.168.0.1的9999端口 nc 192.168.0.1 9999
连接建立后,两端输入的内容都会同步显示在对方的终端中,输入Ctrl+C即可退出连接。
注意事项
不同Linux发行版的nc命令版本可能存在差异,部分选项的参数格式会略有不同,使用前可以通过man nc命令查看当前系统的nc命令详细帮助文档。如果系统没有预装nc命令,可以通过包管理器安装,例如在Ubuntu系统中执行sudo apt install netcat即可完成安装。