您的位置:首页 > 运维架构 > Linux

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

2013-06-28 20:12 701 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nc netcat