前言

nc(也称为netcat)是一个功能强大的网络工具,它允许用户读写从TCP和UDP网络连接传输的数据。它通常被用于调试、数据传输、端口扫描、网络测试等。

相比于socat需要下载源码编译安装,nc功能简单,但是一般系统都自带安装


基本用法和说明

监听端口

监听TCP端口:nc -l -p <port>

监听UDP端口:nc -l -u -p <port>

连接到远程主机和端口

TCP连接:nc <host> <port>

UDP连接:nc -u <host> <port>

数据传输

你可以使用nc从一个系统向另一个系统发送文件。例如,在发送方:nc -l -p 1234 < file.txt,在接收方:nc <sender_ip> 1234 > received_file.txt

聊天

你可以使用nc在两个系统之间建立一个简单的聊天会话。在两台机器上分别运行nc命令监听和连接相同的端口,然后你就可以开始聊天了。

端口扫描

尽管nc不是专门用于端口扫描的工具,但你可以使用它来检查某个端口是否开放。例如,nc -zv <host> <port>(其中-z表示零I/O模式,即只扫描而不发送任何数据,-v表示详细输出)。

其他选项

-e <command>:在连接建立后执行指定的命令。

-w <timeout>:设置连接超时时间。

-i <delay>:设置行之间的延迟(以秒为单位)。

还有很多其他选项,可以通过man nc或nc --help查看完整的文档和选项列表。


UDP测试例子

监听方

nc -l -u  -p 12345

发送方

echo "Hello, UDP!" | nc -u 192.168.12.208  12345

TCP测试例子

监听方

nc -l  -p 12345

备注:默认情况下是采用TCP协议,只有在指定-u参数才使用UDP协议

发送方

nc 192.168.12.208 12345