linux网络工具nc命令
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。
nc命令的作用
nc命令的参数
1) -l
使用侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接
2) -p <port>
设置本地主机使用的通信端口
3) -s
指定发送数据的源IP地址,适用于多网卡机
4) -u
指定nc使用UDP协议,默认为TCP
5) -v
输出交互或出错信息,新手调试时尤为有用
6)-w
超时秒数,后面跟数字 , 即设置等待连线的时间
7)-z
表示zero,表示扫描时不发送任何数据
几个使用场景
测试网络连接通信与端口扫描(类似telnet)
服务端(10.12.7.2)作为server启动一个tcp的端口监听:
[root@111 ~]# nc -l 9999 #后面加&表示后台挂起
客户端测试:
[root@222 ~]# nc -vzw 2 10.12.7.2 9999
Connection to 10.12.7.2 9999 port [tcp/distinct] succeeded!
其中-w一定要写在最后,因为2是-w的时间参数,即 nc -vz -w 2 10.12.7.2 9999
如果是对多个端口扫描:
服务端
[root@111 ~]# nc -l 9999 &
[1] 27824
[root@111 ~]# nc -l 9998 &
[2] 27825 客户端
[root@222 ~]# nc -vzw 2 10.12.7.2 9997-9999
nc: connect to 10.12.7.2 port 9997 (tcp) failed: Connection refused
Connection to 10.12.7.2 9998 port [tcp/distinct32] succeeded!
Connection to 10.12.7.2 9999 port [tcp/distinct] succeeded!
传输文件的工具
假设在政府部门的机房,只有已经连接上的两台机子,并不知道ssh的密码,那么同时也无法使用scp拷贝文件,这时nc可以解决问题。
服务端:启动9999端口监听,意思是把此端口接受到的数据都写到abc.txt文件(这个文件名随意,不用与客户端发送的文件名一致)
[root@111 ~]# nc -l 9999 > abc.txt 客户端:向服务端的9999端口发送nick.txt文件
[root@222 ~]# nc 10.12.7.2 9999 < nick.txt
服务端接收完毕,它会自动退出监听,文件大小和客户端一样,md5值也一样
测试网速
测试网速其实利用了传输文件的原理,就是把来自一台机器的/dev/zero 发送给另一台机器的/dev/null
就是把一台机器的无限个0,传输给另一个机器的空设备上,然后新开一个窗口使用dstat命令监测网速
在这之前需要保证机器先安装dstat工具:yum install -y dstat
服务端:服务端启动监听9999端口,把来自这个端口的数据都输出给空设备(这样不写磁盘,测试网速更准确)
[root@333 ~]# nc -l 9999 > /dev/null 客户端:发送数据,把无限个0发送给服务端的9999端口
[root@444 ~]# nc 172.31.52.71 9999 < /dev/zero
使用dstat命令查看两台机子的网速:
服务端:
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
0 0 99 0 0 0| 0 0 | 117M 520k| 0 0 |7017 14k
0 0 99 0 0 0| 0 0 | 117M 514k| 0 0 |6950 14k
0 0 99 0 0 0| 0 0 | 117M 518k| 0 0 |7042 14k
0 0 99 0 0 0| 0 124k| 117M 515k| 0 0 |6985 14k
0 1 98 1 0 0| 0 76k| 117M 510k| 0 0 |7007 14k
0 0 100 0 0 0| 0 0 | 117M 517k| 0 0 |7048 14k
0 1 99 0 0 0| 0 0 | 117M 511k| 0 0 |7036 14k
0 0 99 0 0 0| 0 0 | 117M 514k| 0 0 |7083 14k
0 0 100 0 0 0| 0 60k| 117M 513k| 0 0 |7098 14k
0 0 98 1 0 0| 0 60k| 117M 506k| 0 0 |6948 14k
0 0 99 0 0 0| 0 0 | 117M 510k| 0 0 |7065 14k
0 1 99 0 0 0| 0 0 | 117M 518k| 0 0 |7138 14k
客户端:
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
0 2 98 0 0 0|4096B 48k| 532k 117M| 0 0 | 14k 4615
1 2 97 0 0 1| 0 180k| 865k 117M| 0 0 | 14k 4978
0 2 98 0 0 0| 0 48k| 527k 117M| 0 0 | 14k 4601
1 2 95 2 0 0| 0 124k| 526k 117M| 0 0 | 13k 4600
0 2 98 0 0 0| 0 0 | 534k 117M| 0 0 | 14k 4600
0 2 98 0 0 1| 0 24k| 518k 117M| 0 0 | 14k 4608
1 2 98 0 0 0| 0 52k| 508k 117M| 0 0 | 14k 4549
2 2 95 0 0 0| 0 0 | 525k 117M| 0 0 | 14k 4612
0 2 96 2 0 0| 0 168k| 521k 117M| 0 0 | 13k 4750
1 2 98 0 0 0| 0 0 | 521k 117M| 0 0 | 13k 4570
可以看到服务端接收数据维持在117M,客户端发送数据也在117M。
参考:https://www.cnblogs.com/nmap/p/6148306.html
linux网络工具nc命令的更多相关文章
- 一文让你熟练掌握Linux的ncat(nc)命令
一文让你熟练掌握Linux的ncat(nc)命令 ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的.它是一款拥有多种功能的 CLI 工具,可以用来在网络上读.写以及重定向数据. ...
- 【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备
原文:https://www.cnblogs.com/bakari/p/10449664.html -------------------------------------------------- ...
- Linux 网络工具netcat(nc)的应用
NETCAT netcat是Linux常用的网络工具之一,它能通过TCP和UDP在网络中读写数据,通过与其他工具结合和重定向,可以在脚本中以多种方式使用它. netcat所做的就是在两台电脑之间建立链 ...
- 功能超级强大的网络工具nc
摘自:http://www.linuxso.com/command/nc.html 功能说明:功能强大的网络工具语 法:nc [-hlnruz][-g<网关...>][-G<指向器数 ...
- 需要了解的 Linux 网络和监控命令
列出来的10个基础的每个linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup ...
- 10个基础的linux网络和监控命令
配置zookeeper集群时,需要查看本机ip,输入命令 hostname -i 就会只显示主机ip, 下边搜了一篇常用的 命令,闲的时候多敲敲命令,以便用的时候再找! 我下面列出来的10个 ...
- 注意啦!10 个你需要了解的 Linux 网络和监控命令
下面列出来的10个基础的每个Linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些:hostname, ping, ifconfig, iwconfig, netstat, nslooku ...
- linux网络配置相关命令、虚拟网络接口eth0:0
网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0.eth1...... ethX.而普通猫和ADSL的接口 ...
- 10个实用的 Linux 网络和监控命令[转]
本文列出了10个基础的每个Linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslooku ...
随机推荐
- linux 设置别名
[root@oldboyedu45-xy data]# alias(查找别名) alias cp='cp -i' alias l.='ls -d .* --color=auto' alias ll=' ...
- JS复习之深浅拷贝
一.复习导论(数据类型相关) 想掌握JS的深浅拷贝,首先来回顾一下JS的数据类型,JS中数据类型分为基本数据类型和引用数据类型. 基本数据类型是指存放在栈中的简单数据段,数据大小确定,内存空间大小可以 ...
- RMAN迁移数据库(不改变文件目录)
1.目标库创建相应目录mkdir -p /u01/app/oracle/oradata/orclmkdir -p /u01/app/oracle/fast_recovery_area/ORCLmkdi ...
- SpringBoot + SpringSecurity + Mybatis-Plus + JWT实现分布式系统认证和授权
1. 简介 Spring Security是一个功能强大且易于扩展的安全框架,主要用于为Java程序提供用户认证(Authentication)和用户授权(Authorization)功能. ...
- 用 Roslyn 做个 JIT 的 AOP
0. 前言 上接:AOP有几种实现方式 接下来说说怎么做AOP的demo,先用csharp 说下动态编织和静态编织,有时间再说点java的对应内容. 第一篇先说Roslyn 怎么做个JIT的AOP d ...
- easyUI验证框赋值
下面来看看easyui的各种验证框赋值的方式: <input name="userId" id="userId" class="easyui-n ...
- SysCtlDelay 实现延时
SysCtlDelay 实际上由 3 条汇编指令实现,一次可以延时 3 个 clock. 例如,初始化系统时钟: SysCtlClockFreqSet((SYSCTL_XTAL_16MHZ | SYS ...
- Spring Boot GraphQL 实战 01_快速入门
hello,大家好,我是小黑,又和大家见面啦~ 新开一个专题是关于 GraphQL 的相关内容,主要是通过 Spring Boot 来快速开发 GraphQL 应用,希望对刚接触 GraphQL 的同 ...
- 【剑指offer】03 从尾到头打印链表
题目地址:从尾到头打印链表 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 时间限制:C/C++ 1秒, ...
- BP暴力破解
BurpSuite暴力破解 1.设置代理 首先要用phpstudy打开Mysql和Apache,然后将设置浏览器代理,地址127.0.0.1 端口8080 2.进入dvwa靶场 进入dvwa时,要用 ...