首页 > 其他分享 >netcat的使用

netcat的使用

时间:2024-03-14 14:13:24浏览次数:23  
标签:选项 nc 端口 TCP 使用 netcat port 7000

目录

一、基本使用简介

usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl]
          [-m minttl] [-O length] [-P proxy_username] [-p source_port]
          [-q seconds] [-s source] [-T keyword] [-V rtable] [-W recvlimit] [-w timeout]
          [-X proxy_protocol] [-x proxy_address[:port]]           [destination] [port]
        Command Summary:
                -4              Use IPv4
                -6              Use IPv6
                -b              Allow broadcast
                -C              Send CRLF as line-ending
                -D              Enable the debug socket option
                -d              Detach from stdin
                -F              Pass socket fd
                -h              This help text
                -I length       TCP receive buffer length
                -i interval     Delay interval for lines sent, ports scanned
                -k              Keep inbound sockets open for multiple connects(配合 -l 选项使用,可以重复接受客户端连接。)
                -l              Listen mode, for inbound connects(开启“监听模式”,nc 作为【服务端】注:如不加该选项,nc 默认作为客户端)
                -M ttl          Outgoing TTL / Hop Limit
                -m minttl       Minimum incoming TTL / Hop Limit
                -N              Shutdown the network socket after EOF on stdin
                -n              Suppress name/port resolutions
                -O length       TCP send buffer length
                -P proxyuser    Username for proxy authentication
                -p port         Specify local port for remote connects(指定“端口号”)
                -q secs         quit after EOF on stdin and delay of secs(让 nc 延时(N 秒)再退出)
                -r              Randomize remote ports
                -S              Enable the TCP MD5 signature option
                -s source       Local source address
                -T keyword      TOS value
                -t              Answer TELNET negotiation
                -U              Use UNIX domain socket
                -u              UDP mode(使用 UDP 协议 注:如不加该选项,默认是 TCP 协议)
                -V rtable       Specify alternate routing table
                -v              Verbose (显示详细信息)
                -W recvlimit    Terminate after receiving a number of packets
                -w timeout      Timeout for connects and final net reads(设置连接的超时间隔(N 秒))
                -X proto        Proxy protocol: "4", "5" (SOCKS) or "connect"(指定代理的类型)
                -x addr[:port]  Specify proxy address and port(以 IP:port 的格式指定代理的位置。)
                -Z              DCCP mode
                -z              Zero-I/O mode [used for scanning]
        Port numbers can be individual or ranges: lo-hi [inclusive]
        
        
-g <网关> # 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> # 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> # 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> # 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> # 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> # 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用

二、netcat的使用

  1. 渗透测试(端口扫描)

nc -znv 127.0.0.1 1-1024 2>&1 | grep succeeded

选项 -z
意思是:开启“zero-I/O 模式”。该模式指的是:nc 只判断某个监听端口是否能连上,连上后【不】与对端进行数据通讯。

选项 -n
由于测试的是【IP 地址】,用该选项告诉 nc,【无须】进行域名(DNS)解析;
反之,如果你要测试的主机是基于【域名】,就【不能】用“选项 -n”

选项 -v
-v 选项前面也聊过,这里要特地强调一下。
对 nc 的其它用法,-v 选项是可加可不加滴;但对于“端口扫描”而言,一定要有这个选项——否则你【看不到】扫描结果

2>&1 | grep succeeded
过滤掉不成功的信息
  1. 要判断某个主机的监听端口是否能连上

    nc -nv 127.0.0.1 80 
    
    选项 -v
    如果你是 nc 的新手,建议总是带上这个选项——通过更详细的输出,能帮你搞明白状况。
    
    选项 -n
    由于测试的是【IP 地址】,用该选项告诉 nc,【无须】进行域名(DNS)解析;
    反之,如果你要测试的主机是基于【域名】,就【不能】用“选项 -n”
    
    选项 -w
    超时设置 在测试链接的时候,如果你没使用 -w 这个超时选项,默认情况下 nc 会等待很久,然后才告诉你连接失败。如果你所处的网络环境稳定且高速(比如:局域网内),那么,你可以追加“-w 选项”,设置一个比较小的超时值。在下面的例子中,超时值设为3秒。
    nc -nv -w 3 x.x.x.x xx
    
    UDP 通常情况下,要测试的端口都是 TCP 协议的端口;如果你碰到特殊情况,需要测试某个 UDP 的端口是否可达。nc 同样能胜任。只需要追加 -u 选项。
    

    3.监听服务器

    nc -lv -port 7000
    

    4.传输文件

    4.1 单个文件

    服务器
    nc -l -p 7000 > file2
    
    客户端
    nc 127.0.0.1 7000 < file1
    
    性能优势 
    
    用 nc 传输文件,相当于是:直接在【裸 TCP】层面传输。你可以通俗理解为:【没有】应用层。如果你传输的文件【超级大】或者文件数
    量【超级多】,用 nc 传输文件的性能优势会很明显(相比“FTP、SSH、共享目录…”而言)
    

    4.2 目录

    服务器
     nc -lv -p 7000 | tar xvf -
    
    客户端
    tar cvf - * | nc -nv 127.0.0.1 7000
    
    管道前面表示把当前目录的所有文件打包为 - 
    

    5. 网速吞吐量测试

    服务器
    nc -nvv -l -p 7000 | pv
    
    客户端
    time nc -n 127.0.0.1 7000 < /dev/zero
    
    -n是不要解析域名,避免解析域名造成时间误差
    其实上面两种方法都把建立连接的握手时间以及 TCP 窗口慢启动的时间给计算进去了,不是特别精确,最精确的方式是搭配 pv 命令(监控统计管道数据的速度)
    

标签:选项,nc,端口,TCP,使用,netcat,port,7000
From: https://www.cnblogs.com/getonechao/p/18072711

相关文章

  • netfilter: iptable的使用
    netfilter相关网址官网:netfilter/iptablesprojecthomepageiptables基础知识详解_LarryHai6的博客-CSDN博客_iptables使用iptables进行端口转发-云+社区-腾讯云(tencent.com)原理图iptables1.原理叙述iptables具有Filter,NAT,Mangle,Raw四种内建表:1.Filter......
  • ESP32-Cam 初步使用:网络摄像头示例
    此片意在教会你如何初步使用ESP32-cam阅读本文,你将学会:一.学会安装Arduino二.学会使用相关例程一、Arduino的下载安装及汉化1.下载Arduino(Arduino软件下载官网)2.Arduino的安装3.Arduino的汉化:左上角File-->Preferences(Ctrl+逗号也能进入)-->Settings-->Lang......
  • docker的使用方法
    一、docker安装Docker官方文档|DockerDocumentation1.自动安装wgethttp://fishros.com/install-Ofishros&&sudobashfishros2.手动安装2.1.ubuntu安装1.系统需求UbuntuJammy22.04(LTS)UbuntuImpish21.10UbuntuFocal20.04(LTS)UbuntuBionic18.04......
  • 介绍Git 的基本概念和使用方式
    Git是一种分布式版本控制系统,用于管理和跟踪源代码的变化。它具有以下基本概念和使用方式:1.仓库(Repository):Git使用仓库来存储源代码和历史记录。仓库可以是本地的,也可以是远程的。每个项目都有一个对应的仓库。2.提交(Commit):提交是对代码的一次更改。每个提交都有一个唯一......
  • 4_关于类的主动使用和被动使用
    关于类的主动使用和被动使用在JVM当中表示两个class对象是否为同一个类存在的两个必要条件:类的完整类名必须一致,包括包名。加载这个类的ClassLoader必须相同。换句话说,在JVM当中,即使这两个类对象(class对象)来源同一个class文件,被同一个虚拟机加载,但只要加载它们的ClassLoader......
  • VMwear虚拟机的安装与使用(Win11)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、前言什么是VMware?VMware与Linux二、VWmear下载与安装(1)安装VMware虚拟机软件。(2)按照指引安装完成后,单击“许可证”按钮输入密钥(3)创建RHEL8.3虚拟机。(4)对虚拟机的RHEL8.3系统做快照和恢......
  • Raspberry:Wiringpi的安装及使用
    +++title="Raspberry:Wiringpi的安装及使用"description="Wiringpi的安装及使用"date=2022-05-04T14:01:09+08:00author="chao"draft=falseimage=""math=truecategories=["os"]tags=["raspberry"]+......
  • php使用openssl生成公钥私钥
    1、确保你的PHP环境已经启用了OpenSSL扩展$config=array("digest_alg"=>"sha1","private_key_bits"=>1024,"private_key_type"=>OPENSSL_KEYTYPE_RSA,"config"=>�......
  • flask多表查询操作的两种方法(使用外键和不使用外键)
    1使用外键:在Flask中使用Flask-SQLAlchemy进行连表查询时,可以通过定义模型的外键关系来实现。下面是一个如何定义模型和进行连表查询的示例:首先,定义两个模型:fromflask_sqlalchemyimportSQLAlchemy#初始化SQLAlchemydb=SQLAlchemy()#用户模型classUser(db.Model......
  • MogDB-openGauss default privileges 使用方法
    MogDB/openGaussdefaultprivileges使用方法权限是用户访问数据库对象的首要条件,每个新增用户默认属于PUBLIC角色组成员,也就是具有PUBLIC角色组的权限,但在日常业务使用中,仅仅具有PUBLIC权限是远远不够的,还需要具有额外的权限,在MogDB/openGauss数据库支持的业务中经常需......