Linux中功能强大的网络工具—NC

命令简介

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
图片[1]-Linux中功能强大的网络工具—NC-不念博客

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  端口 < 要传输的文档。

图片[2]-Linux中功能强大的网络工具—NC-不念博客

在test2上检查文件是否已成功接收:

图片[3]-Linux中功能强大的网络工具—NC-不念博客

4.3 终端之间通信聊天

test1主机上启动nc监听,ctrl+C中断通信。

nc -lp 33333
图片[4]-Linux中功能强大的网络工具—NC-不念博客

test2上连接监听,ctrl+C中断通信。

[root@test2 ~]# nc 192.168.195.20 33333

注:链接完成后可进行通信,以上rote为test2发送的消息,可以看出test1可以实时接收。

图片[5]-Linux中功能强大的网络工具—NC-不念博客

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 </dev/zero

查看流量:

[root@test1 ~]# dstat
© 版权声明
THE END