netcat瑞士军刀

1、nc简介

nc(netcat)是一个短小精悍、功能实用、简单可靠的网络工具,主要有如下作用:
(1)端口侦听,nc 可以作为 server 以 TCP 或 UDP 方式侦听指定端口;
(2)端口扫描,nc 可以作为 client 发起 TCP 或 UDP 请求;
(3)机器之间传输文件;
(4)机器之间网络测速。

nc 实际上是 ncat 的软链接。ncat 是为 Nmap(Network Mapper) 项目编写的,是 Nmap 套件中的一员,它旨在成为可靠的后端工具,可立即为其他应用程序和用户提供网络连接。ncat 不仅可以使用 IPv4 和 IPv6,还可以为用户提供几乎无限的潜在用途。

yum -y install nc

3、从示例中学习

echo "hello world" | nc -u 223.5.5.5 888

nc -u -s 192.168.168.133 -w 30 223.5.5.5 80
============================================================
使用Netcat进行发送文件和接收文件:
-接收文件:本地主机上监听 PORT 1234,并等待文件的到来。接收文件保存到名为received_file.tgz的本地文件中。
nc -l -p 1234 > received_file.tgz
nc -l -p 1234 > shared_file.txt
-发送文件:向远程服务器 IP 6.6.6.6和 PORT 1234 发送一个文件,其中包含名为file.tgz的本地文件。
nc -w1 6.6.6.6 1234 < file.tgz
nc server_ip 1234 < file_to_share.txt
nc -u server_ip 1234 < file_to_share.txt
============================================================
dd if=/dev/zero bs=1M count=10 | nc -u 10.15.10.11 1234
其中:dd命令用于生成一个10MB大小的文件。if参数指定输入文件为/dev/zero,该文件会输出无限的零字节。
bs参数指定每次读写的字节数为1MB,count参数指定读取并输出的块数为10,因此总共生成一个10MB大小的文件。
这个文件会通过管道|传递给nc命令。
============================================================



2、命令格式及常用参数

命令格式

ncat [OPTIONS...] [hostname] [port]

nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] [hostname] [port[s]]

常用参数

-l : 指定 nc 将处于侦听模式。指定该参数,则意味着 nc 被当作 server,侦听并接受连接,而非向其它地址发起连接
-p PORT :指定 nc 使用的源端口
-s : 指定发送数据的源 IP 地址,适用于多网卡机器
-u : 指定 nc 使用 UDP 协议,默认为 TCP
-v : 输出交互或出错信息,新手调试时尤为有用
-w : 超时秒数,后面跟数字 
-z : 表示 zero,扫描时不发送任何数据

选项说明

-4/6 : 强制只使用 IPv4/IPv6 地址;
-D : 在套接字上启用调试;
-d : 不从 stdin 读取;
-h : 打印出帮助信息;
-k : 强制 nc 在当前连接完成后继续侦听另一个连接。注意如果不使用 -l 选项,则使用此选项是错误的;
-l : 指定 nc 应该侦听传入的连接,而不是启动到远程主机的连接。将此选项与 -p、-s 或 -z 选项结合使用是错误的。此外,使用 -w 选项指定的超时将被忽略;
-n : 不要在任何指定的地址、主机名或端口上执行任何 DNS 或服务查找;
-r : 随机选择源端口和目标端口,而不是按照系统分配的顺序或范围内的顺序选择它们;
-S : 启用 RFC 2385 TCP MD5 签名选项;
-t : 使 nc 发送 RFC 854 DON'T 和 WON'T 响应 RFC 854 的 DO 和 WILL 请求。这使得使用 nc 编写 telnet 会话脚本成为可能
-U : 指定使用 Unix 域套接字;
-u : 使用 UDP 代替默认选项 TCP;
-v : 显示命令执行过程;
-z : 表示 zero,只扫描侦听守护进程,而不向它们发送任何数据。此选项与 -l 选项结合使用是错误的;
-C : 发送 CRLF 作为换行符;
-i interval : 指定发送和接收的文本之间的延迟时间间隔。还可指定连接到多个端口之间的延迟时间;
-p source_port : 指定 nc 应使用的源端口,但须受特权限制和可用性限制。将此选项与 -l 选项结合使用是错误的;
-s source_ip_address : 设置本地主机送出数据包的 IP 地址。注意将此选项与 -l 选项结合使用是错误的;
-T ToS : 指定连接的 IP 服务类型(TOS)。有效值是标记 ''lowdelay'', ''throughput'', ''reliability'',或以 0x 开头的 8 位十六进制值;
-w timeout : 如果连接和 stdin 空闲超过指定秒数,则连接将被关闭。-w 标志对 -l 选项没有影响。缺省不超时;
-X proxy_protocol : 请求 nc 在与代理服务器对话时使用指定的协议。支持的协议是 “4”(SOCKsv.4)、“5”(SOCKV.5) 和 “connect”(HTTPS proxy)。如果未指定协议,则使用 SOCKS v.5;
-x proxy_address[:port] : 使用指定代理服务器地址和端口连接到主机。如果未指定端口,则使用代理协议的已知端口(SOCKS为1080,HTTPS为3128);

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值