英文原文:LinuxNetcat命令——网络的瑞士军刀Netcat是网络工具中的瑞士军刀,它可以通过TCP和UDP在网络中读写数据.通过将它与其他工具组合并重定向,您可以通过多种方式在脚本中使用它。使用netcat命令可以做的事情真是太神奇了。netcat所做的只是在两台计算机之间建立链接并返回两个数据流,之后能做什么就看你的想象了。您可以设置服务器、传输文件、与朋友聊天、流媒体或将其用作其他协议的独立客户端。下面是一些使用netcat的例子。[A(172.31.100.7)B(172.31.100.23)]Linuxnetcat命令举例:1.端口扫描端口扫描经常被系统管理员和黑客用来寻找一些机器上开放的端口,帮助他们识别系统中的漏洞。$nc-z-v-n172.31.100.721-25可以运行在TCP或UDP模式,默认是TCP,-u参数调整为udp.z参数告诉netcat使用0IO,立即关闭连接连接成功后,不进行数据交换(感谢@jxing指点)v参数表示使用冗余选项(译者注:即verbose输出)n参数告诉netcat不要对IP地址的域名使用DNS反向查找此命令将打印从21到25的所有开放端口。横幅是文本,横幅是您所连接的服务发送给您的文本消息。当您尝试识别漏洞或服务的类型和版本时,横幅信息非常有用。但是,并非所有服务都发送横幅。找到开放端口后,您可以使用netcat轻松连接到该服务以获取其横幅。$nc-v172.31.100.721netcat命令将连接到开放的端口21并打印在该端口上运行的服务的标志信息。聊天服务器如果你想和你的朋友聊天,有很多软件和信息服务可以供你使用。但是,如果你没有这么豪华的配置,比如你在机房,所有的外部连接都被限制了,你怎么和整天坐在隔壁房间的朋友交流呢?别郁闷,netcat提供了这样的方法,你只需要创建一个Chat服务器,一个预先确定好的端口,他就可以联系到你了。Server$nc-l1567netcat命令在1567端口启动一个tcp服务器,所有的标准输出和输入都会输出到这个端口。输出和输入都显示在这个shell中。Client$nc172.31.100.71567你在机器B上输入的内容都会出现在机器A上。3.文件传输大多数时候,我们试图通过网络或其他工具来传输文件。方式有很多,比如FTP、SCP、SMB等等,但是当你只是需要临时或者一次传输文件的时候,花时间在你的机器上安装配置一个软件真的很值得。假设,你想从A传输一个文件file.txt到B。A或B可以用作服务器或客户端。下面设A为服务器,B为客户端。Server$nc-l1567
