【linux命令】“瑞士军刀”nc的用法简介
一、nc是什么
nc是netcat的简写,是一个功能强大的网络工具,在网络界有着瑞士军刀的美誉。nc命令在linux系统中实际是ncat,nc是软连接到ncat,其最主要的作用就是监听端口和探测端口。
##
本次测试环境为linux系统,nc版本为7.50
##
二、nc主要作用
1.侦听tcp/udp任意端口,一般用于临时测试
-l 用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接
-u 用于指定nc使用UDP协议,默认为TCP
监听tcp端口
nc -l 端口号
例:以tcp的方式监听12345端口
nc -l 12345
查看端口是否被监听成功
监听udp端口
nc -l -u 端口号
例:以udp的方式监听12345端口
nc -l -u 12345
查看端口是否被监听成功
2.作为客户端,探测对端端口是否启用
-z 表示zero,表示扫描时不发送任何数据
-v 表示输出交互或出错信息,利于调试
nc -zv 对端地址 端口号
例:对端(192.168.13.172)的80端口打开、81端口关闭,使用客户端进行探测
nc -zv 192.168.13.172 80 ##探测80端口,成功
nc -zv 192.168.13.172 81 ##探测81端口,失败
例:探测对端的udp端口(53) 但是探测udp我更爱使用nmap这个命令,之后会进行讲解
注意:网上很多教程使用nc进行端口范围扫描,centos7中nc 不支持扫描端口范围
3.服务器之间传输文件,传输完成后,双方的会话都将终止
接收方监听一个端口(33333),负责接收文件并存到recieve.txt
nc -l 33333 > receive.txt
发送端将内容输入到一个文件中(send.txt),发送给接收方
nc 10.122.2.91 33333 < send.txt
在接收方查看,recieve文件生成
4.两个终端聊天(无聊emmm)
机器A上监听一个端口,机器B去连接机器A的端口,双方输入聊天内容,具体的效果类似于一个实时的聊天软件(如下图)
其余参数解释
-h 在线帮助。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-w<超时秒数> 设置等待连线的时间。-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
所有内容只为了记录学习过程,nc其实一些高级的用法目前我还没有使用到,后续会继续补全完善,部分内容来源于网络,侵删。