NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
安装nc
[root@rhel6 ~]# yum install nc Loaded plugins: security Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package nc.x86_64 0:1.84-24.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Installing: nc x86_64 1.84-24.el6 rhel6rhn 57 k Transaction Summary ======================================================================================================================== Install 1 Package(s) Total download size: 57 k Installed size: 109 k Is this ok [y/N]: y Downloading Packages: nc-1.84-24.el6.x86_64.rpm | 57 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : nc-1.84-24.el6.x86_64 1/1 Verifying : nc-1.84-24.el6.x86_64 1/1 Installed: nc.x86_64 0:1.84-24.el6 Complete! [root@rhel6 ~]# nc --help nc: invalid option -- '-' 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参数
参数说明:
- -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。
- -G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
- -h 在线帮助。
- -i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
- -l 使用监听模式,管控传入的资料。
- -n 直接使用IP地址,而不通过域名服务器。
- -o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
- -p<通信端口> 设置本地主机使用的通信端口。
- -r 乱数指定本地与远端主机的通信端口。
- -s<来源位址> 设置本地主机送出数据包的IP地址。
- -u 使用UDP传输协议。
- -v 显示指令执行过程。
- -w<超时秒数> 设置等待连线的时间。
- -z 使用0输入/输出模式,只在扫描通信端口时使用。
实例
TCP端口扫描 范围为 22 - 100
[root@rhel6 ~]# nc -v -w 1 10.120.4.22 -z 22-100 Connection to 10.120.4.22 22 port [tcp/ssh] succeeded!
扫描UDP端口
# nc -u -z -w 2 192.168.0.1 1-1000 //扫描192.168.0.3 的端口 范围是 1-1000
扫描mysql端口
[root@rhel6 ~]# nc -v -w 1 127.0.0.1 -z 3306 | grep succeeded | awk '{print $NF}' succeeded!