Linux命令之nc命令

参考:Linux命令之nc命令,自己验证了一遍, 做个记录

一、命令简介

nc是netcat的简写,是一个功能强大的网络工具,有着网络界的瑞士军刀美誉。nc命令在linux系统中实际命令是ncat,nc是软连接到ncat。nc命令的主要作用如下:

  1. 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
  2. 机器之间传输文件
  3. 端口的扫描,nc可以作为client发起TCP或UDP连接
  4. 机器之间网络测速

nc如果找不到nc命令可以使用安装

yum install -y nc  # CentOS

 

二、使用示例

1.检查服务器端口是否通

nc -zv ip port

 

 

 2.拷贝文件

如果需要快速实现两个局域网主机的文件cpoy,可以采用该方式指定UDP协议传输,传输速率可参考下文,我的笔记本传输速率大概为50M左右

首先在文件接收终端机器上激活nc监听

nc -lp 55555 > recive.txt

 

 然后在文件发送终端机器上发送文件

nc -w 1 10.248.14.70 55555 < send.txt

检查文件是否已成功接收

 

3.终端之间的通信聊天

cdx: 你是誰
d18: 我是d18,你是誰?
cdx: 我是cdx

第一台主机上启动nc监听,ctrl+C中断通信

第二台主机上连接监听,ctrl+C中断通信

 

 

 4.扫描端口

nc -v -w 1 10.248.24.98 -z 55550-55555

端口扫描,通的端口返回succeeded,不通的端口返回refused。

 

 

 5.验证UDP端口

nc -uvz 10.248.24.98 55555

在 d18 上打开udp端口, cdx 上进行验证:

d18@d18:~$ nc -l -u 55555
cdx@cdx:~$ nc -uvz 10.248.24.98 55555
Connection to 10.248.24.98 55555 port [udp/*] succeeded!
cdx@cdx:~$

 

6.测网速

d18主机上监听端口。d18作为接收段

d18@d18:~$ nc -l 55555 >/dev/null

cdx主机上发送数据,全0数据。cdx作为发送端

cdx@cdx:~$ nc 10.248.24.98 55555 </dev/zero

recv为d18入流量

d18@d18:~$ dstat
You did not select any stats, using -cdngy by default.
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw
 46   2  52   0   0|  47k  157k|   0     0 |   9B   10B|  12k   30k
 56   5  37   1   0|   0   332k|  65M  887k|   0     0 |  29k   60k
 49   4  46   0   0|   0  4096B|  65M  966k|   0     0 |  30k   61k
 58   6  36   0   0|   0   164k|  72M  860k|   0     0 |  28k   58k
 48   5  47   0   0|   0   216k|  80M 1009k|   0     0 |  29k   61k
 51   4  45   0   0|   0     0 |  62M  941k|   0     0 |  29k   61k
 54   6  39   0   0|   0    16k|  74M 1000k|   0     0 |  30k   64k
 54   5  41   0   0|   0    76k|  60M  910k|   0     0 |  29k   62k
 45   4  50   1   0|   0    48k|  69M  994k|   0     0 |  29k   63k
 56   6  38   1   0|   0    24k|  87M  945k|   0     0 |  29k   60k
 57   6  37   0   0|   0     0 |  72M 1039k|   0     0 |  30k   63k
 56   6  37   1   0|   0   284k|  67M  960k|   0     0 |  29k   61k
 55   6  38   1   0|   0   132k|  71M 1025k|   0     0 |  31k   64k

send为cdx发送流量

cdx@cdx:~$ dstat
You did not select any stats, using -cdngy by default.
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw
  1   0  98   1   0| 167k  133k|   0     0 |   0     0 |2555  2722
  4   1  96   0   0|   0     0 | 513k   90M|   0     0 |  68k   11k
  4   0  95   1   0|   0    20k| 770k   79M|   0     0 |  63k   11k
  4   0  96   0   0|   0     0 | 927k   69M|   0     0 |  58k   11k
  3   1  96   0   0|4096B    0 | 903k   76M|   0     0 |  62k   11k
  3   0  97   0   0|   0     0 | 838k   61M|   0     0 |  52k 9501
  4   0  95   1   0|   0   116k| 855k   67M|   0     0 |  56k 9916
  3   0  96   0   0|   0     0 | 912k   67M|   0     0 |  56k   10k
  4   0  96   0   0|   0     0 | 932k   82M|   0     0 |  66k   11k
  4   0  94   2   0|   0    20k| 874k   71M|   0     0 |  59k   11k
  4   0  96   0   0|   0     0 | 911k   69M|   0     0 |  58k   10k
  4   0  96   0   0|   0   132k| 894k   67M|   0     0 |  56k   10k
  3   0  96   0   0|   0     0 | 858k   71M|   0     0 |  59k   11k

 

三、nc使用语法及参数说明

OpenBSD netcat(Debian 补丁级别 1.187-1ubuntu0.1)
用法:nc  [-46CDdFhklNnrStUuvZz] [-I 长度] [-i 间隔] [-M ttl]
      [-m minttl] [-O 长度] [-P proxy_username] [-p source_port]
			[-q 秒] [-s 源] [-T 关键字] [-V rtable] [-W recvlimit] [-w 超时]
			[-X proxy_protocol] [-x proxy_address[:port]] [destination] [port]
        命令摘要:
                -4 使用 IPv4
                -6 使用 IPv6
                -b 允许广播
                -C 发送 CRLF 作为行尾
                -D 启用调试套接字选项
                -d 与标准输入分离
                -F 传递套接字 fd
                -h 这个帮助文本
                -I length TCP 接收缓冲区长度
                -i 间隔 发送线路的延迟间隔,扫描的端口
                -k 保持入站套接字为多个连接打开
                -l 监听模式,用于入站连接
                -M ttl 传出 TTL / 跳数限制
                -m minttl 最小传入 TTL / 跳数限制
                -N 在标准输入 EOF 后关闭网络套接字
                -n 禁止名称/端口解析
                -O length TCP 发送缓冲区长度
                -P proxyuser 代理认证的用户名
                -p port 指定远程连接的本地端口
                -q secs 在标准输入 EOF 后退出并延迟 secs
                -r 随机化远程端口
                -S 启用 TCP MD5 签名选项
                -s source 本地源地址
                -T 关键字 TOS 值
                -t 应答 TELNET 协商
                -U 使用 UNIX 域套接字
                -u UDP 模式
                -V rtable 指定备用路由表
                -v 详细
                -W recvlimit 收到一定数量的数据包后终止
                -w timeout 连接和最终网络读取超时
                -X proto 代理协议:“4”、“5”(SOCKS)或“connect”
                -x addr[:port] 指定代理地址和端口
                -Z DCCP 模式
                -z 零 I/O 模式 [用于扫描]
        端口号可以是单个或范围:lo-hi [含]

 

posted @ 2022-07-19 19:53  小柴i  阅读(19077)  评论(0编辑  收藏  举报