网络工具中的瑞士军刀nc命令 - Kirin博客

网络工具中的瑞士军刀nc命令

作者: Bee

全网最全的网络资源分享网站

标签:

Linux

特别声明:部分文章为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系站长!请勿违法!本站文章仅供学习了解!技术无罪!

kirin博客

NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。

netcat(简写是 nc) 是 linux 上非常有用的网络工具,它能通过 TCP 和 UDP 在网络中读写数据。通过配合使用其他工具和重定向,可以在脚本中以多种方式使用它。netcat 所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。

安装nc

yum install -y 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 输入 / 输出模式,只在扫描通信端口时使用。

端口扫描

nc -v -w 2 192.168.2.34 -z 21-24
//输出
nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused
Connection to 192.168.2.34 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused 

文件拷贝

在192.168.2.34上

nc -l 1234 > test.txt 

在192.168.2.33上

nc 192.168.2.34 < test.txt 

简单聊天工具

在192.168.2.34上

nc -l 1234 

在192.168.2.33上

nc 192.168.2.34 1234 

这样,双方就可以相互交流了。使用 ctrl+C(或 D)退出。

用 nc 命令操作 memcached

  1. 存储数据:printf “set key 0 10 6rnresultrn” |nc 192.168.2.34 11211
  2. 获取数据:printf “get keyrn” |nc 192.168.2.34 11211
  3. 删除数据:printf “delete keyrn” |nc 192.168.2.34 11211
  4. 查看状态:printf “statsrn” |nc 192.168.2.34 11211
  5. 模拟 top 命令查看状态:watch “echo stats” |nc 192.168.2.34 11211
  6. 清空缓存:printf “flush_allrn” |nc 192.168.2.34 11211 (小心操作,清空了缓存就没了)

连接 web 服务器

//建立从本地1234端口到host.example.com的80端口连接,5秒超时
nc -p 1234 -w 5 host.example.com 80 

udp 连接服务器

nc -u host.example.com 53 

连接服务器并执行

echo -n "GET / HTTP/1.0"r"n"r"n" | nc host.example.com 80 

指定 TCP 协议版本

netcat 的 -4 和 -6 参数用来指定 IP 地址类型,分别是 IPv4 和 IPv6:

//server
nc -4 -l 2389
//client
nc -4 localhost 2389 

禁止从标准输入中读取数据

该功能使用 -d 参数,请看下面例子:

//server side 
$ nc -l 2389

//client side
nc -d localhost 2389 

强制 Netcat 服务器端保持启动状态

通常情况下如果连接到服务端的客户端连接断开, 服务端进程也会退出, 如果想让服务端保持存活可以加一个-k的参数

//server side
$ nc -k -l 2389

//client side
nc localhost 2389 

nc聊天

server1:

[root@server1 ~]# nc -l 1234  hello!
hi! 

server2:

[root@server2 ~]# nc  192.168.200.27 1234  hello!
hi!
分享到:
加入交流群
未经允许不得转载:

作者: Bee, 转载或复制请以 超链接形式 并注明出处 Kirin博客
原文地址: 《网络工具中的瑞士军刀nc命令》 发布于2022-2-3

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就加入交流群吧

QQ扫一扫