命令简介
- NC是netcat的简写,是一个功能强大的网络工具,有着网络界的瑞士军刀美誉。Nc
命令在linux系统中实际命令是ncat,nc是软连接到ncat。 - NC命令的主要作用如下:
- 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
- 端口的扫描,nc可以作为client发起TCP或UDP连接
- 机器之间传输文件
- 机器之间网络测速
下载方式
-
Centos 安装nc
yum -y install nc
参数详解
-
命令格式
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>] [-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
-
命令选项
-
-g<网关> 设置路由器跃程通信网关,最多可设置 8 个。
-
-G<指向器数目> 设置来源路由指向器,其数值为 4 的倍数。
-
-h 在线帮助。
-
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-
-l 使用监听模式,管控传入的资料。
-
-n 直接使用 IP 地址,而不通过域名服务器。
-
-o<输出文件> 指定文件名称,把往来传输的数据以 16 进制字码倾倒成该文件保存。
-
-p<通信端口> 设置本地主机使用的通信端口。
-
-r 乱数指定本地与远端主机的通信端口。
-
-s<来源位址> 设置本地主机送出数据包的 IP 地址。
-
-u 使用 UDP 传输协议。
-
-v 显示指令执行过程。
-
-w<超时秒数> 设置等待连线的时间。
-
-z 使用 0字节 输入/输出模式,只在扫描通信端口时使用。
使用示例
-
验证服务器端口是否通
如下验证 192.168.44.142 端口 22/tcp 端口通不通nc -zv 192.168.44.142 22
-
z
使用 0字节 输入/输出模式,只在扫描通信端口时使用 -
v
显示指令执行过程Ncat: Version 7.80 ( https://nmap.org/ncat ) Ncat: Connected to 192.168.44.142:22. Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds. #连接成功
测试一下端口不通的情况
nc -zv 192.168.44.142 80
Ncat: Version 7.80 ( https://nmap.org/ncat ) Ncat: Connection refused. #连接被拒绝
-
消息传输
2.1. 首先在文件接收端激活nc监听,作为server端nc -lp 8888
在本地监听8888端口
-
l
使用监听模式,管控传入输入信息 -
p
<通信端口> 设置本地主机使用的通信端口2.2. 客户端连接通过ip地址和端口连接server端
注:ip地址是server端的ip地址nc 192.168.44.42 8888
3.3. 测试在client发送消息,查看在server端是否能接收到消息
注:回车发生消息也可以通过管道传输文件
-
验证UDP端口
nc -uvz 192.168.44.142 68
如下验证 192.168.44.142 端口 68/udp端口通不通
-
u 使用 UDP 传输协议
-
v 显示指令执行过程
-
z 使用 0 输入/输出模式,只在扫描通信端口时使用
Ncat: Version 7.80 ( https://nmap.org/ncat ) Ncat: Connected to 192.168.44.142:68. Ncat: UDP packet sent successfully #发送成功 Ncat: 1 bytes sent, 0 bytes received in 2.01 seconds
-
测试网速
测速网速需要结合dstat命令查看。
安装dstat命令:yum install -y dstat
需要使用两台主机测试,两台主机都需要安装
dstat
主机1:192.168.44.146
主机2:192.168.44.142在主机2上监听端口 8888
nc -l 8888
-
l
使用监听模式,管控传入输入信息在主机1上向主机2发送数据
nc 192.168.44.142 8888 < /dev/zero
发送全0数据
查看流量
dstat