知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux nc命令参数及用法详解之毕业纪

发布时间:2014-09-05 14:20:59作者:知识屋

linux nc命令参数及用法详解之毕业纪
 
一、功能说明:强大的网络工具netcat 
二、语  法:nc [options] 
 
[options] 
-d        后台模式 
-e prog        程序重定向,一旦连接,就执行 [危险!!] 
-g <网关>    设置路由器跃程通信网关,最多可设置8个。 
-G <指向器数目>    设置来源路由指向器,其数值为4的倍数。 
-i <延迟秒数>    延时的间隔 
-l        监听模式,用于入站连接 
-L        连接关闭后,仍然继续监听 
-n        直接使用IP地址,而不通过域名服务器。 
-o <输出文件>    指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。 
-p <端口>    设置本地主机使用的通信端口。 
-r        随机本地及远程端口 
-s <源ip地址>    设置本地主机送出数据包的IP地址。 
-t        使用TELNET交互方式 
-u        使用UDP传输协议。 
-v        详细输出(用两个-v可得到更详细的内容) 
-w <超时秒数>    设置等待连线的时间,即指定多少秒后,断开。 
-z        使用0输入/输出模式,只在扫描通信端口时使用。 
-h        帮助信息 
主机名/ip    指定访问的主机名/ip 
port        监听远程主机的端口,可以是单个或范围(M-N)。 
 
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源地址>][-v...][-w<超时秒数>][主机名称][通信端口...] 
 
三、应用 
 
①端口扫描(常用于检测某个ip的某个服务[端口]是否被监听,即某服务是否启动) 
格式: 
    nc  -v  -w 2 -z $ip  $port 
 
-v            显示指令执行过程。 
-w  <超时秒数>        设置等待连线的时间。 
-z            使用0输入/输出模式,只在扫描通信端口时使用。 
 
②远程数据的传输(源主机---->目的主机($ip需监听端口)。传完后ctrl+c中断连接,缺点:不知道什么时候传完)
格式: 
    远程(目的)主机:nc -l $port > $file 
    源主机:      nc $ip $port < $file 
 
③简单的及时聊天(需要在某台主机上,监听端口$port,别的主机可以连接,进行聊天,Ctrl+c,Ctrl+d退出) 
格式: 
    远程(目的)主机:nc -l $port 
    源主机:      nc $ip $port 
 
④硬盘或分区(同②,源主机---->目的主机,克隆硬盘或分区的操作,不应在已经mount的的系统上进行。) 
格式: 
    远程(目的)主机:nc -l $port |dd of=分区 
    源主机:      dd if=分区 | nc $ip $port 
 
四、例子 
①批量检测服务器指定端口开放情况: 
1、假如我们要监控一堆指定的IP和端口,可新建一个文件(第1列服务器IP,第2列要监控的端口)。 
# vim /scripts/ip-ports.txt 
 
    192.168.0.100 80   
    192.168.0.100 8081   
    192.168.0.101 8082   
    192.168.1.100 21 
 
2、我们可以写这样一个脚本来批量检测端口是否开放: 
# vim /scripts/ncports.sh 
 
    #!/bin/bash   
    #检测服务器端口是否开放,成功会返回0值显示ok,失败会返回1值显示fail   
      
    cat /scripts/ip-ports.txt | while read line   
    do   
      nc -w 10 -z $line > /dev/null 2>&1   
      if [ $? -eq 0 ]   
      then   
        echo $line:ok   
      else   
        echo $line:fail   
      fi    
    done 
 
3、执行脚本查看运行结果如下: 
# chmod a+x  /scripts/ncports.sh 
# /scripts/ncports.sh 
192.168.0.100 80:ok 
192.168.0.100 8081:ok 
192.168.0.101 8082:ok 
192.168.1.100 21:fail 
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜