当前位置: 首页 > Linux

每天一条Linux命令——nc命令

时间:2023-04-06 18:32:51 Linux

一、命令介绍nc(netcat)是一个短小精悍、功能强大、简单可靠的网络工具。它主要有以下功能:(1)端口监听。或UDP方式监听指定端口;(2)端口扫描,nc可以作为客户端发起TCP或UDP请求;(3)机器间传输文件;(4)机器间网络测速。nc实际上是ncat的软链接。ncat是为Nmap项目和Nmap套件的一部分而编写的,旨在成为一个可靠的后端工具,可以立即为其他应用程序和用户提供网络连接。ncat不仅可以与IPv4和IPv6一起工作,它还为用户提供了几乎无限数量的潜在用途。Nmap是2.命令格式`nc[-46DdhklnrStUuvzC][-iinterval][-psource_port][-ssource_ip_address][-TToS][-wtimeout][-Xproxy_protocol][-xproxy_address[:port]][hostname][port[s]]`*13.选项说明`-4/6ForceonlyIPv4/IPv6addresses-DEnabledebuggingonsockets-dDonotreadfromstdin-hPrintouthelpinformation-kForcesnc在当前连接完成后继续侦听另一个连接。请注意,在没有-l选项的情况下使用此选项是错误的-l指定nc应侦听传入连接而不是启动与远程主机的连接。将此选项与-p、-s或-z选项结合使用是错误的。此外,使用-w选项指定的超时将被忽略-n不对任何指定的地址、主机名或端口执行任何DNS或服务查找-r随机选择源端口和目标端口,而不是按系统分配的顺序选择它们按范围顺序-S启用RFC2385TCPMD5签名选项-t导致nc发送RFC854DON'T和WON'T以响应RFC854DO和WILL请求。这使得使用nc-U指定Unix域套接字编写telnet会话脚本成为可能-u使用UDP而不是默认选项TCP-v显示命令执行进度-z表示零,仅扫描侦听守护进程,不向它们发送任何数据。将此选项与-l选项结合使用是错误的-C将CRLF作为换行符发送-i间隔指定发送和接收文本之间的延迟间隔。您还可以指定与多个端口的连接之间的延迟-psource_port指定nc应使用的源端口,受特权限制和可用性限制。将此选项与-l选项一起使用是错误的-ssource_ip_address设置本地主机发送数据包的IP地址。请注意,将此选项与-l选项结合使用是错误的-TToS指定连接的IP服务类型(TOS)。有效值是标志“lowdelay”、“throughput”、“reliability”或以0x开头的8位十六进制值-wtimeout如果连接和标准输入空闲时间超过指定时间秒数,连接将关闭。-w标志对-l选项没有影响。默认为无超时-Xproxy_protocol请求nc在与代理服务器通信时使用指定的协议。支持的协议是“4”(SOCKsv.4)、“5”(SOCKV.5)和“connect”(HTTPS代理)。如果未指定协议,则使用SOCKSv.5-xproxy_address[:port]使用指定的代理服务器地址和端口连接到主机。如果未指定端口,则使用代理协议的已知端口(SOCKS为1080,HTTPS为3128)`*1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20*21*22*23*24*25*26*27*28*29*30*31*32*33*34*35*36*37*38*39*40*41*42*43*44nc的控制参数很多,常用的参数列举如下:`-l指定nc将处于监听模式。指定该参数表示nc被当成服务器,监听并接受连接,而不是向其他地址发起连接-pPORT指定nc使用的源端口-s指定发送数据的源IP地址,适用于多网的机器cards-u指定nc使用UDP协议,默认是TCP-v输出交互或错误信息,对初学者调试时特别有用-w超时秒数,后面跟一个数字-z表示为零,扫描时不会发送数据`*1*2*3*4*5*6*7*8*9*10*11*12*13*144.常见例子(1)通过ll命令查看nc命令。`lrwxrwxrwx1rootroot4Aug3022:33/usr/bin/nc->ncat`*1(2)侦听本地端口。假设在当前命令行终端A上进行监听`nc-vl8888Ncat:Version6.40(http://nmap.org/ncat)Ncat:Listeningon:::8888Ncat:Listeningon0.0.0.0:8888`*1*2*3*4再打开一个命令行终端B,同样使用nc发起连接。`nc-v127.0.0.18888`*1另一个终端A会收到请求并打印连接信息:`Ncat:Connectionfrom127.0.0.1.Ncat:Connectionfrom127.0.0.1:37229.`*1*2IfEntercontent在B端,那么A端会收到B端发送过来的内容,打印到标准输出。(3)利用ncs之间的连接进行文件传输。使用nc传输文件比较方便,因为不需要像scp、rsync那样输入密码。将机器A上的文本文件发送到机器B时,需要注意操作顺序。接收方先监听端口,发送方向接收方所在机器的端口发送数据。receiver:`nc-l8888>received.txt`*1sender:`nc127.0.0.18888/dev/null`*1第二步,B机发送数据,A机8888端口无限发送0`nc10.0.1.1618888