nc全称为netcat,是一款开源的网络工具,可以实现基于TCP/UDP协议的数据传输和监听。它可以作为网络工具进行扫描、端口开闭检测等,也可以作为前后端通信的桥梁,甚至可以在不同服务器之间进行文件传输。
如果要使用nc进行数据传输,必须了解nc运行的两种模式:主动模式(client)和被动模式(server),在这两种模式下,nc所接的线是不同的。
在client模式下,nc主要用作主动连接服务器,并进行数据交互。在这种情况下,nc所接的线要与目标主机的网络协议一致,例如:
当目标主机使用TCP协议时,应该连接TCP协议线。当目标主机使用UDP协议时,应该连接UDP协议线。
在server模式下,nc常常用于开启一个本地服务,并等待客户端连接。在这种情况下,nc所接的线取决于需要监听的端口协议。例如:
如果监听的是TCP协议的端口,那么应该使用TCP协议线接收连接;如果监听的是UDP协议的端口,那么应该使用UDP协议线接收连接。
无论是client还是server模式中,nc一般只接一个线,多个线接收会导致只有一个线起作用而其余的线无法接收信息。
nc可以和其他工具进行组合,如监听网络中的一个端口,然后将接收到的信息传递给其他处理工具进行处理。nc与其他工具相结合的示例:
(1)将nc通过管道命令串接到awk中,实现对网络流量的过滤和消费。
(2)使用nc和ssh搭建安全的文件传输通道,保证数据传输的安全性。
(3)使用nc和dd命令结合,将服务器磁盘上某个文件转换成网络数据流进行传输。