命令简介
NC是netcat的简写,是一个功能强大的网络工具,有着网络界的瑞士军刀美誉。Nc
命令在linux系统中实际命令是ncat,nc是软连接到ncat。
NC命令的主要作用如下:
- 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
- 端口的扫描,nc可以作为client发起TCP或UDP连接
- 机器之间传输文件
- 机器之间网络测速
下载方式
2.1 Centos 安装nc
yum -y install nc
2.2 Ubuntu 安装nc
apt-get install netcat
2.3 Mac 安装nc
brew install netcat
参数详解
3.1 命令格式
nc [-hlnruz][-g][-G][-i][-o][-p] [-s][-v...][-w][主机名称][通信端口...]
3.2 命令选项
- -g 设置路由器跃程通信网关,最多可设置 8 个。
- -G 设置来源路由指向器,其数值为 4 的倍数。
- -h 在线帮助。
- -i 设置时间间隔,以便传送信息及扫描通信端口。
- -l 使用监听模式,管控传入的资料。
- -n 直接使用 IP 地址,而不通过域名服务器。
- -o 指定文件名称,把往来传输的数据以 16 进制字码倾倒成该文件保存。
- -p 设置本地主机使用的通信端口。
- -r 乱数指定本地与远端主机的通信端口。
- -s 设置本地主机送出数据包的 IP 地址。
- -u 使用 UDP 传输协议。
- -v 显示指令执行过程。
- -w 设置等待连线的时间。
- -z 使用 0 输入/输出模式,只在扫描通信端口时使用。
使用示例
4.1 验证服务器端口是否通
如下验证192.168.195.20服务器的22端口通,80端口不通。
nc -zv 192.168.195.20 22
4.2 拷贝文件
首先在文件接收终端test2机器上激活nc监听:
nc -lp 11111 > 1.txt
注:11111是自定义启动的监听端口(别与常用/默认监听端口冲突);1.txt为你想要获取的文件。
然后在文件发送终端test1机器上发送文件:
[root@test1 ~]# nc 192.168.195.21 11111 < 1.txt
注:nc 接收IP 端口 < 要传输的文档。
在test2上检查文件是否已成功接收:
4.3 终端之间通信聊天
test1主机上启动nc监听,ctrl+C中断通信。
nc -lp 33333
test2上连接监听,ctrl+C中断通信。
[root@test2 ~]# nc 192.168.195.20 33333
注:链接完成后可进行通信,以上rote为test2发送的消息,可以看出test1可以实时接收。
4.4 验证UDP端口
[root@test1 ~]# nc -uvz 192.168.0.125 111
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.0.125:111.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.04 seconds.
4.5 测速网速
测速网速需要结合dstat命令查看。
安装dstat命令:
[root@test1 ~]# yum install -y dstat
[root@test2 ~]# yum install -y dstat
test1主机上监听端口:
[root@test1 ~]# nc -l 33333 >/dev/null
test2主机上发送数据,全0数据:
[root@test2 ~]# nc 192.168.0.124 33333