netcat的正确打开方式

简介

nc(netcat)是一个能通过TCP和UDP读写数据的工具,很多Linux发行版已经预装。最近发现了关于nc的很多有趣的应用场景,果然名副其实,很是牛叉。。。于是简单梳理了一下。

参数说明

  • -g <网关> 设置路由器跃程通信网关,最丢哦可设置8个。
  • -G <指向器数目> 设置来源路由指向器,其数值为4的倍数。
  • -h 在线帮助。
  • -i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
  • -l 使用监听模式,管控传入的资料。
  • -n 直接使用IP地址,而不通过域名服务器。
  • -o <输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
  • -p <通信端口> 设置本地主机使用的通信端口。
  • -r 乱数指定本地与远端主机的通信端口。
  • -s <来源位址> 设置本地主机送出数据包的IP地址。
  • -u 使用UDP传输协议。
  • -v 显示指令执行过程。
  • -w <超时秒数> 设置等待连线的时间。
  • -z 使用0输入/输出模式,只在扫描通信端口时使用。

使用场景

测试端口连通性

使用nc -z可以测试远程主机端口的连通性。
以前我们测试某台远程主机的某个端口是否能连通,通常都是用telnet ip port,现在可以用nc来替代了。

示例:

nc -z 192.168.1.60 19011
Connection to 192.168.1.60 port 19011 [tcp/*] succeeded!

端口扫描

使用-z参数时,还可以指定一个端口范围进行扫描。
以后简单场景下,就不需要动用nmap这种专业工具了。

示例:

TCP:
nc -z -v 192.168.1.60 19000-19100 2>&1 | grep succeeded

UDP:
nc -z -v -u 192.168.1.60 19000-19100 2>&1 | grep succeeded

启监听端口

很多时候,如果拜托网管为我们做一个NAT映射,或新配置了一个防火墙策略后,通常要启一个临时的tomcat/apache/nginx行测试,非常麻烦。
如果只是临时测试的话,直接使用nc -l 端口号就可以启一个监听了,如果早点知道的话就可以省去很多时间了。

示例:

nc -l 33333

HTTP服务健康监控

nc配合echo来使用,可以模拟发送一段HTTP请求报文,对一个HTTP服务进行健康度检测。
如果服务支持HEAD方法的话,可以尽量使用HEAD以减轻测试时对服务端的压力。
于是简单场景下,我们又可以抛弃wgetcurl了。。。

示例:

echo -e "GET /mobsale-service/health HTTP/1.0\r\n\r\n" |nc -t 192.168.1.60 19011
echo -e "HEAD /mobsale-service/client HTTP/1.0\r\n\r\n" |nc -t 192.168.1.60 19011

文件传输

通常,我们在两台服务器之前传递文件,首选都是sftp/scp,或者ftp,或者更古老的sz/rz
但如果这些方式都被禁用的话怎么办呢?可以用nc来自己铺路,只要能连网,就能传文件!

示例:

传递方:
cat readme.txt | nc -l 33333

收接方:
nc 192.168.1.61 33333 > readme.txt

如果要传递目录的话,需要配合tar/zip等工具进行打包。

聊天工具

还可以使用nc来进行单方向聊天,这貌似是一个然并卵的东西。。。
和文件传输的原理其实是一样的。

示例:

接收方:
nc -l 33333

发送方:
nc 192.168.1.61 33333

发送发输入内容回车之后,接收方就会显示了

简易WEB服务器

不借助tomcat/nginx/httpd等WEB容器,仅用nc就可以用快速搭建一个单页面的WEB服务器。

首先新建一个index.html文件:

<!doctype html>
<html>
    <head>
      <meta charset="utf-8">
      <title>Test Page</title>
    </head>
    <body>
      <h1>It Works!</h1>
    </body>
</html>

执行以下脚本,将一个简单的HEAD与index.html中的BODY拼接并输出:

while true;do { printf '%b\r\n' 'HTTP/1.1 200 OK' '%b\r\n';cat index.html; }|nc -l 33333;done

在浏览器上输入http://ip:port/whatever 就可以看到刚才的页面了

远程桌面

设想如下场景:
如果某台远程主机禁用了某用户(例如root)的SSH远程登录权限,只能通过低权限的管理用户登录,再用su -的方式切换过去进行操作。如果觉得不爽,有没有可能绕过这个限制呢?
使用nc就可以在远程新开一个任意监听端口,然后在本地就可以模拟SSH登录了,可以说是命令行版的"远程桌面"吧。

原理如下:

  1. 从网络收到命令写入fifo文件中
  2. cat命令读取fifo文件,并且发送到bash命令
  3. bash执行完的结果发送给nc
  4. nc通过网络把内容发送给客户端
远程:  
mkfifo /tmp/tmp_fifo; cat /tmp/tmp_fifo | /bin/bash -i 2>&1 | nc -l 33333 > /tmp/tmp_fifo

本地:  
nc -n 192.168.1.60 33333

四层反向代理

与上面的"模拟SSH登录"原理类似,nc的另一个场景是可以充当一个4层的反向代理,这个比较实用了,LVS/HA/Nginx统统都可以下岗了。。。

示例:

mkfifo backpipe; nc -l 33333  0<backpipe | nc 192.168.1.60 19011 1>backpipe

后记

大体先写这么多了,以后的使用过程中如果还有新的发现,随时补充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,647评论 18 139
  • win7 cmd管理员权限设置 net localgroup administrators 用户名 /add 把“...
    f675b1a02698阅读 5,178评论 0 11
  • 部分内容转载自搜狗百科 cmd是command的缩写.即命令提示符(CMD),是在OS / 2 , Windows...
    青冥之上阅读 2,388评论 0 24
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,944评论 6 13
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,156评论 2 33