现在的位置: 首页 > Linux > Linux管理 > 正文
linux下强大的网络工具Netcat
2013年09月09日 Linux管理 ⁄ 共 2082字 暂无评论 ⁄ 被围观 5,171 views+

一、什么是NetCat?

NetCat,简称nc,在网络工具中有”瑞士军刀“之称,它能够建立并接受传输控制协议(TCP)和用户数据报协议(UDP)的连接,Netcat可在这些连接上读写数据,直到连接关闭为止。它可以通过手工或者脚本与应用层的网络应用程序或服务进行交互。从技术上来讲,NetCat并不能产生UDP连接,因为UDP是一种无连接的协议。

nc测试连接并读取数据有点类似telnet,但却比telnet更好用。

NetCat在绝大多数linux发行版下已经内置,但自带的nc一般不支持非常强大的-e选项,同时还支持windows平台。

二、NetCat的基本使用:

2.1 测试主机端口连通性:

用法: nc [options] host ports

如:

[root@localhost ~]# nc 192.168.8.100 22
SSH-2.0-OpenSSH_4.3

看到了吧,连版本号都显示出来了!!

2.2 在本地建立监听等待远程连接:

[root@localhost ~]# nc -l 8000

……处于等待连接状态……

查看进程信息:

[root@localhost ~]# ps -ef |grep nc
root 3939 3557 0 07:31 pts/1 00:00:00 nc -l 8000

 

root 3943 3800 0 07:33 pts/2 00:00:00 grep nc

在远程主机上测试连接nc监听的端口:

[root@localhost ~]# nc -v 192.168.8.100 8000  #-v参数用于显示详细信息,加的v越多信息越详细
Connection to 192.168.8.100 8000 port [tcp/irdmi] succeeded!

 

三、常见用法及参数说明:

3.1 监听一个端口,并捕获数据到一个文件:

[root@localhost ~]# nc -l 8000 > filename.out

客户端连接后输入一些数据:

[root@localhost ~]#
[root@localhost ~]# nc 192.168.8.100 8000
test
this is client input

[root@localhost ~]#

查看filename.out

[root@localhost ~]# cat filename.out
test
this is client input

3.2 将文件内容传送至nc监听的机器

在第一台服务器上使用nc开启监听:

[root@localhost ~]# nc -l 8000

在第二台机器上传送一个文件内容至第一台服务器:

[root@localhost ~]# nc 192.168.8.100 8000  < /etc/issue

查看第一台查看:

[root@localhost ~]# nc -l 8000
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
Kernel \r on an \m

[root@localhost ~]#

可以看到第二台机器上的文件内容已经被传送过来了。这个结果还可以用上面的方法输出至一个文件。

3.3 端口扫描

如下扫描目标主机20至25的端口

[root@localhost ~]# nc -z -v -v 192.168.8.100 20-25
nc: connect to 192.168.8.100 port 20 (tcp) failed: Connection refused
Connection to 192.168.8.100 21 port [tcp/ftp] succeeded!
Connection to 192.168.8.100 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.8.100 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.8.100 port 24 (tcp) failed: Connection refused
nc: connect to 192.168.8.100 port 25 (tcp) failed: Connection refused

3.5 nc的其他参数:

-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

nc的作用看似简单,但其能发挥的作用是超出我们的想象的!

另外需要注意的是,发行版自带的nc功能上都有所精简,要安装完整版可访问http://sourceforge.net/projects/netcat/files/netcat/下载相应版本,这里不做讨论。

给我留言

留言无头像?


×