nc:全称netcat,可以打开tcp连接,发送udp数据包,监听任意tcp和udp的端口,实现端口扫描和同时处理IPv4和IPv6。
-4 使用IPv4地址。
-6 使用IPV6地址..
-D 开启debugging 在 socket.
-d 不尝试从stdin读取数据.
-h 查看帮助信息
-i 指定文本行发送和接收的延时时间. 也可以制造连接到多端口的延时.
-I 指定TCP接收缓冲区大小
-n 任何指定的地址,主机名或端口都不做任何DNS或服务解析.
-k 强制nc持续监听另一个连接直到它的连接完成. 没有 -l 选项是错误的.
-l 用于指定nc应该监听一个传入的连接,而不是连接到远程主机. 该选项不能与以下选项联合使用-p, -s, 或 -z 选项. 此外, 任何用-w选项指定的超时会被忽略.-
-p source_port 指定nc使用的源端口,受到权限和可用性的限制.
-r 指定源和/或目标端口随机选择而不是一个范围序列或系统分配的顺序.
-s source 指定源IP的接口用于发送数据包.
-u 使用UDP协议。
-V rtable 设置要使用的路由表. 默认是 0.
-v 使nc给出更详细的输出.
-w timeout 无法建立的或者闲置的连接在指定秒数之后超时. .
-z 指定nc只是扫描正在监听的守护进程,不发送任何数据. 不可和-l选项同时使用。
-q 指定客户端收到EOF之后退出的时间
1)传输文件
使用-l在本地监听一个端口,并把输出定向到一个文件,然后从另一台设备上往此端口上传输文件。
服务器1:nc -l 8899 >123.txt
服务器2:nc 192.168.0.2438899 <test_curl
这样就把test_curl给传过来了
或者:
server1:nc -l 8899| tar zxf -
server2:tar zcf- node-v0.12.2.tar.gz | nc 192.168.0.2438899
2)端口扫描或探测
[root@jjjjjjjjjj ~]# nc -v -w 2 192.168.0.243 -z 20-30
nc: connect to 192.168.0.243 port 20 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 21 (tcp)failed: Connection refused
Connection to 192.168.0.243 22 port[tcp/ssh] succeeded!
nc: connect to 192.168.0.243 port 23 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 24 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 25 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 26 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 27 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 28 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 29 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 30 (tcp)failed: Connection refused
也可指定单个端口
nc -v -w 2 192.168.0.243 80
本文出自 “Study-Everyday” 博客,请务必保留此出处http://studys.blog.51cto.com/9736817/1689244
原文:http://studys.blog.51cto.com/9736817/1689244