【linux命令】“瑞士军刀”nc的用法简介

2023-06-20 06:21:41 博客园

一、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其实一些高级的用法目前我还没有使用到,后续会继续补全完善,部分内容来源于网络,侵删。