nc命令详解
一、简介
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具
二、语法参数详解
nc [-hlnruz] [-g<网关...>] [-G<指向器数目>] [-i<延迟秒数>] [-o<输出文件>] [-p<端口>]
[-s<来源位址>] [-v...] [-w<超时秒数>] [主机名称] [通信端口...]
参数说明
-g <网关> 设置路由器跃程通信网关,最多可设置8个。
-G <指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
-n 直接使用IP地址,而不通过域名服务器。
-o <输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p <通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 输出交互或出错信
-w <超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
三、常用操作
1、机器之间传输文件
首先,在A机上监听指定端口,并将该端口得到的数据重定向到文件
nc -lp 9999 > test.txt
然后,在B机上向该端口写入文件
nc <A机IP> 9999 < test2.txt
唯一的缺点是没有进度显示,因此你并不能准确的知道是否已经完成。
2、机器之间网络测速
本地监听一个端口用于接收请求,把请求信息转到到空洞文件中,减少输出
nc -l 8888 >/dev/null
发送测试数据,把无限个0发送给到8888端口
nc 192.168.1.3 8888 < /dev/zero
然后可以使用dstat
查看当前网速
3、TCP端口扫描
# 扫描指定TCP范围端口
nc -v -z -w2 192.168.1.3 1-100
# 扫描指定UDP范围端口
nc -u -z -w2 192.168.1.3 1-1000
# 扫描指定端口
nc -nvv 192.168.1.3 80
参考: