前言
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