NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。
使用方法:
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
[-x proxy_address[:port]] [hostname] [port[s]]
nc 命令常见选项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-
v
显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
|
软件安装 (以centos 为例)
yum install nc -y
举例说明
远程拷贝文件 不需要输入用户名密码
目的主机监听
nc -l 监听端口[ 未使用端口] > 要接收的文件名
nc -l 23456 > 20170113_all.sql
打开另外一个终端查看端口是否监听到
netstat -tnlp | grep 23456
tcp 0 0 0.0.0.0:23456 0.0.0.0:* LISTEN
源主机发起请求
nc 目的主机ip 目的端口 < 要发送的文件
nc -l 23456 < 20170113_all.sql
检查目的主机文件是否拷贝
[root@localhost31 ~]# ll 20170113_all.sql
-rw-r--r-- 1 root root 27903998 Feb 23 10:23 20170113_all.sql
端口扫描功能
[root@localhost31 ~]# nc -v -z -w2 192.168.10.31 1-3
nc: connect to 192.168.10.31 port 1 (tcp) failed: Connection refused
nc: connect to 192.168.10.31 port 2 (tcp) failed: Connection refused
nc: connect to 192.168.10.31 port 3 (tcp) failed: Connection refused
简单聊天功能
[root@localhost31 ~]# nc -l 1234
[root@localhost32 ~]# nc 192.168.10.31 1234
开启聊天模式,停止聊天一段 ctrl+z 终止
server 2 发送消息
[root@localhost32 ~]# nc 192.168.10.31 1234
hi
server 1 接收消息
[root@localhost31 ~]# nc -l 1234
hi
拷贝目录下文件的功能
目的拷贝 32 上的一个目录到 31 服务器上
31 服务器器操作
[root@localhost31 ~]# nc -l 12345 | tar -C /tmp/ -zxf-
31 服务器随机 监听 12345 端口 ,将拷贝过的文件放到 /tmp/ 目录下面
32 服务器操作
[root@localhost32 ~]# tar -zcvf- keepalived_offline_install | nc 192.168.10.31 12345
检查
[root@localhost31 tmp]# ls keepalived_offline_install/
keepalived_offline_install.sh rpm
本文转自 水滴石川1 51CTO博客,原文链接:http://blog.51cto.com/sdsca/1900477,如需转载请自行联系原作者