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!