linux nc命令参数及用法详解
1、功能说明:强大的网络工具netcat 2、语 法: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<超时秒数>][主机名称][通讯端口...] 3、应用 ①端口扫描(经常使用于检测某个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 4、例子 ①批量检测服务器指定端口开放状况: 一、假如咱们要监控一堆指定的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 二、咱们能够写这样一个脚原本批量检测端口是否开放: # 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 三、执行脚本查看运行结果以下: # 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