nc 监听数据_nc命令使用解析大全

名称

nc - 任意的TCP和UDp连接与监听工具

概要

nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]

[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [-x

proxy_address[:port]] [hostname] [port[s]]

描述

nc(或者netcat)的用途是被用来做关于TCP或者UDP协议的事情。可以打开TCP连接,发送UDP包,监听任意的TCP或者UDP端口,做端口扫描,处理IPv4或者IPv6。它不像telnet(1), nc脚本优美且在标准错误端会有单独的错误提示信息,而不是把这些错误发送给标准输出(telnet就这么干的)

通常这样使用:

.·   简单的TCP代理

.·   基于shell脚本的HTTP客户端和服务端

.·   网络程序测试

.·   ssh的SOCKS或者HTTp代理命令

.·   等等

下面是所有选项:

-4      强制nc只能使用IPv4地址。

-6      强制nc只能使用IPv6地址。

-D      在socket上开启debugging功能

-d      不从标准输入中读取任何消息

-h      帮助选项

-i interval

在文本行之间的发送或接受,指定一个延迟时间间隔。 也会产生多个端口间的连接有延迟时间。

-k

强制nc保持监听其他连接,在它当前的连接完成之后。 如果不和-l选项一起使用,会有错误。

-l

通常用来指定nc监听,而不是创建一个连接到远程主机。 如果不与-p, -s或者-z选项一起使用的话,会有错误。另外,如果用-w指定超时选项的话,会被忽略。

-n

不使用DNS或者服务不做任何地址,主机名或者端口的查询

-p source_port

指定nc使用的源端口,来服从权限约束和授权。与-l选项一起使用会产生错误。

-r

指定源 和/或 目的端口是随机选择的,而不是系统按照一个范围或者顺序分配的。

-S

开启RFC 2385 TCP MD5签名选项。

-s source_ip_address

指定发送包的IP接口,与-l选项使用会有错误。

-T ToS

为连接指定IP的服务类型(ToS)。有效的值是令牌“lowdelay”, “throughput”, “reliability”, 或者以“0x”开头的8位的十六进制值。

-C      发送CRLF做为行尾符

-t

让nc发送RFC 854 不要和将不要响应RFC 854要或者将要的请求。这使得nc可以脚本化telnet会话过程。

-U      使用Unix Domain Sockets

-u      使用UDP替代默认的TCP选项

-v      详细信息输出模式

-w timeout

如果连接和标准输入空闲时间超过了超时时间(单位秒),那么连接就好被静默关闭。-w标志对-l选项没影响,比如nc将要永久监听一个连接,使用或者不使用-w标志都可以。默认是没有超时的。

-X proxy_version

与代理服务器交互时的请求,nc必须使用指定的协议。支持的协议是“4” (SOCKS v.4), “5” (SOCKS v.5)和“connect” (HTTPS proxy)。 如果协议不指定,SOCKS版本5将被使用。

-x proxy_address[:port]

请求时,nc必须连接一个使用代理地址和端口的代理做为主机名。如果端口没有被指定,那么众所周知的端口将为代理协议所使用(1080 for SOCKS, 3128 for HTTPS)

-z

指定nc只是扫描监听进程,不发送任何数据给它们。 与-l选项一起使用会有错误。

主机名可以是IP地址或者字符的主机名(除非使用了-n选项)。通常一个主机名必须被指定的(没有指定主机名的都会使用localhost),除非使用了-l选项。

端口可以是单独一个整数或者一个范围。 范围是nn-mm这种格式。通常一个目的端口必须被指定,除非使用了-U选项(这种情况下是指定了socket了)

客户端/服务端 模式

使用nc来构造一个基本的客户端/服务端 模式是很简单的。

在一个控制台,使用nc监听一个指定端口。

例如:

$ nc -l 1234

nc此刻就监听了1234端口。在第二个控制台(或者第二台机器上),连接到监听的机器和端口上:

$ nc 127.0.0.1 1234

端口间就会有个连接了。第二个控制端上面的任何输入都会传送到第一个上面,反之亦然。

在连接被建立之后,nc是不管哪边是服务端哪边是客户端的。使用EOF(‘^D’)可以中断连接。

数据传输

上面的章结可以扩展来构建一个基本的数据传输模式。 在其中一个连接端的任何信息的输入都可以在另外一端输出,而去输入和输出都可以被轻松的捕捉来模拟文件传输。

使用nc监听一个端口,捕捉到的输出重定向到一个文件中。$ nc -l 1234 > filename.out

第二台机器,连接到nc进程,导入一个文件数据来传输。$ nc host.example.com 1234 

文件传输完成之后,连接会被自动关闭的。

服务交互

有时候手动与服务器交互相比较使用用户接口是比较有用的。在troubleshooting的时候很有帮助。比如,接收web站点的主页时:

$ echo -n "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

这也会显示web服务器发送的头部信息。如果需要的话是可以过滤的,使用比如sed这类命令

当用户指定服务器需要的请求格式时,可以构建更加复杂的例子,比如,提交到SMTP服务器的内容:$ nc [-C] localhost 25 <

HELO host.example.com

MAIL FROM: 

RCPT TO: 

DATA

Body of email.

.

QUIT

EOF

端口扫描

可以用来了解目标机器上哪些端口是打开的或者服务在运行。-z标志告诉nc报告打开的端口,而不是初始化一个连接。比如:$ nc -z host.example.com 20-30

Connection to host.example.com 22 port [tcp/ssh] succeeded!

Connection to host.example.com 25 port [tcp/smtp] succeeded!

端口范围被指定限制在20-30端口之间去搜索

可选择的,可以获取到指定服务器有哪些软件在运行,是什么版本。这些信息通常包括在问候条里面。为了获取这些信息,先得建立一个连接,然后在条目信息被获取到的时候关闭这个连接。使用-w可以指定超时,或者可以使用"QUIT"来结束。$ echo "QUIT" | nc host.example.com 20-30

SSH-1.99-OpenSSH_3.6.1p2

Protocol mismatch.

220 host.example.com IMS SMTP Receiver Version 0.84 Ready

例子

打开host.example.com的42端口建立TCP连接,使用端口31337做为源端口,超时5秒$ nc -p 31337 -w 5 host.example.com 42

建立与host.example.com的53端口的UDP连接$ nc -u host.example.com 53

使用本地ip为10.1.2.3与host.example.com的42端口建立连接:$ nc -s 10.1.2.3 host.example.com 42

使用Unix Domain Socket创建和监听:$ nc -lU /var/tmp/dsocket

通过10.2.3.4的8080端口做为HTTP代理,与host.example.com的42端口建立连接。这个例子通常被ssh来使用。$ nc -x10.2.3.4:8080 -Xconnect host.example.com 42

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Redis6]常用数据结构_Hash哈希

Hash哈希 简介 Redis hash 是一个键值对集合。 Redis hash是一个string类型的field和value的映射表&#xff0c;hash特别适合用于存储对象。 类似Java里面的Map<String,Object> 用户ID为查找的key&#xff0c;存储的value用户对象包含姓名&#xff0c;年龄&#xff…

ASP.NET Core中的分布式缓存

ASP.NET Core中的分布式缓存在上一篇文章中[1]&#xff0c;我解释了如何使用内存缓存在ASP.NET Core应用程序中管理缓存。如果您的应用程序托管在单个服务器上&#xff0c;则可以使用这种类型的缓存。那.NET Core框架可以使用哪些工具在云中的分布式方案中进行缓存呢IDistribut…

marquee滚动起始位置_巧用喵影关键帧制作滚动水印,让视频小偷无可盗

视频创作者最奔溃瞬间&#xff0c;不是翻遍了所有网站还找不到合适的素材&#xff0c;也不是作品快完成了却发现电脑死机&#xff0c;而是自己呕心沥血做出来的视频被盗了&#xff0c;结果盗版视频的播放量还更高&#xff01;&#xff01;​理想的解决方法就是给视频打上水印。…

.NET Core + K8S + Loki 玩转日志聚合

Grafana loki1. Intro最近在了解日志聚合系统&#xff0c;正好前几天看到一篇文章《用了日志系统新贵Loki&#xff0c;ELK突然不香了&#xff01;》&#xff0c;所以就决定动手体验一下。本文就带大家快速了解下Loki&#xff0c;并简单介绍.NET Core如何集成Loki。2. Whats Lok…

[Redis6]常用数据类型_Zset有序集合

Zset有序集合 简介 Redis有序集合zset与普通集合set非常相似&#xff0c;是一个没有重复元素的字符串集合。 不同之处是有序集合的每个成员都关联了一个评分&#xff08;score&#xff09;,这个评分&#xff08;score&#xff09;被用来按照从最低分到最高分的方式排序集合中…

css 旋转45_CSS教程——第14期

警告&#xff01;本期内容建议CSS基础良好的人看&#xff0c;本期为实战篇&#xff0c;难度有点大哈喽大家好我是wawjf灰常抱歉我们咕咕了快两周&#xff0c;主要原因是我们的几位作者(加上我其实就两个)去夏令营学习了某重要东西&#xff0c;所以没时间更新&#xff0c;在这里…

使用Azure Blob Storage实现一个静态文件服务器

什么是Azure Blob StorageAzure Blob Storage是微软Azure的对象存储服务。国内的云一般叫OSS&#xff0c;是一种用来存储非结构化数据的服务&#xff0c;比如音频&#xff0c;视频&#xff0c;图片&#xff0c;文本等等。用户可以通过http在全球任意地方访问这些资源。这些资源…

[Nginx]简介

Nginx 简介 Nginx 概述 Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好&#xff0c;中国大陆使用 nginx网站用户有&#xff1a;百度、京东、新浪…

简述tcp协议三报文握手过程_TCP协议中的三次握手和四次挥手(图解)

建立TCP需要三次握手才能建立&#xff0c;而断开连接则需要四次握手。整个过程如下图所示&#xff1a;先来看看如何建立连接的。首先Client端发送连接请求报文&#xff0c;Server段接受连接后回复ACK报文&#xff0c;并为这次连接分配资源。Client端接收到ACK报文后也向Server段…

台湾RD技术谈|嘉宾郭家齊董大偉黃保翕

欢迎来到Azure Show!Azure Show欢迎来到Azure Show第四期&#xff0c;本期特辑是首次推出RD技术谈栏目&#xff0c;我们邀请了宝岛台湾的三位重量级嘉宾&#xff0c;保哥、Edward和董大伟三位老师&#xff0c;他们既是微软的最有价值专家&#xff0c;也是微软技术社区区域总监&…

ajax option请求后无post请求_ThingJS:一种浏览器、服务器和技术的新组合方法——Ajax...

Web应用是一种极大方便用户的操作界面&#xff0c;数据维护技术Ajax也从中脱颖而出&#xff0c;ThingJS采用了Ajax的数据维护能够形成轻量化的开发流程。为什么Ajax通过XHR 实现Ajax 通信的一个主要限制&#xff0c;来源于跨域安全策略。默认情况下&#xff0c;XHR 对象只能访问…

[Nginx]负载均衡和动静分离

负载均衡 客户端发送多个请求到服务器&#xff0c;服务器处理请求&#xff0c;有一些可能要与数据库进行交互&#xff0c;服务器处理完毕后&#xff0c;再将结果返回给客户端。 这种架构模式对于早期的系统相对单一&#xff0c;并发请求相对较少的情况下是比较适合的&#xff…

一文看懂async和“await”关键词是如何简化了C#中多线程的开发过程

一文看懂"async"和“await”关键词是如何简化了C#中多线程的开发过程当我们使用需要长时间运行的方法&#xff08;即&#xff0c;用于读取大文件或从网络下载大量资源&#xff09;时&#xff0c;在同步的应用程序中&#xff0c;应用程序本身将停止运行&#xff0c;直…

[Nginx]nginx常用的命令

nginx常用的命令 使用nginx操作命令前提条件:必须进入nginx的目录 cd /www/local/webserver/nginx/sbin查看nginx的版本号 ./nginx -v启动nginx ./nginx关闭nginx ./nginx -s stop重新加载nginx ./nginx -s reload

pc 图片预览放大 端vue_安利一款简单好用的Vue图片预览插件

在项目中因为要经常用到图片预览效果&#xff0c;自己写的话麻烦死啦(懒)vue-photo-preview一个基于 photoswipe 的 vue 图片预览插件&#xff0c;支持移动端和PC端&#xff0c;支持各种手势操作&#xff0c;放大缩小&#xff0c;体验流畅。gitHub: https://github.com/8263277…

[Nginx]nginx的配置文件

nginx配置文件 nginx配置文件位置 nginx配置文件由三部分组成 第一部分 全局块 从配置文件开始到 events 块之间的内容&#xff0c;主要会设置一些影响 nginx 服务器整体运行的配置指令&#xff0c;主要包括配置运行 Nginx 服务器的用户&#xff08;组&#xff09;、允许生成…

pe下找不到ssd硬盘_【进入pe系统后认不到硬盘解决方法】进入pe系统看不到硬盘_pe系统不认硬盘...

2014-01-07 11:11:42有个别朋友在使用一键U盘装系统工具安装系统&#xff0c;在进入pe装系统时发现找不到电脑硬盘了&#xff0c;接下来看看小编为大家带来的解决方法&#xff01;2017-03-01 17:01:06pe是装系统最常用到的预安装环境&#xff0c;只需通过启动盘制作工具就可以将…

Abp vNext 二进制大对象系统(BLOB)

一、简介ABP vNext 在 v 2.9.x 版本当中添加了 BLOB 系统&#xff0c;主要用于存储大型二进制文件。ABP 抽象了一套通用的 BLOB 体系&#xff0c;开发人员在存储或读取二进制文件时&#xff0c;可以忽略具体实现&#xff0c;直接使用IBlobContainer 或 IBlobContainer<T>…

[Nginx]location 指令说明

location 指令说明 该指令用于匹配 URL。 语法如下&#xff1a; 1、 &#xff1a;用于不含正则表达式的 uri 前&#xff0c;要求请求字符串与 uri 严格匹配&#xff0c;如果匹配 成功&#xff0c;就停止继续向下搜索并立即处理该请求。 2、~&#xff1a;用于表示 uri 包含正则…

卡尔曼_卡尔曼估计两步法

在上一篇文章中手把手推导了一遍卡尔曼增益&#xff0c;不熟悉的小伙伴可以看养生的控制人&#xff1a;卡尔曼增益推导​zhuanlan.zhihu.com这里再回顾一下重点。问题重述假设真实系统为其中 。我们对系统状态的估计&#xff08;数据融合&#xff09;为其中卡曼尔增益为我们可以…