linux-网络-nc命令

article/2025/9/30 7:45:24

目录

概述

nc命令常用参数

nc命令示例

实现TCP/UDP侦听

作为client端发起TCP/UDP连接

服务器之间传输文件

网络测速


概述

在centos中,nc命令是ncat的软链接。

ncat是一个功能丰富的网络实用程序,是为nmap项目编写的(Network Mapper,最早是Linux下的网络扫描和嗅探工具包)。ncat又被称为Netcat家族分裂出的巅峰之作。Netcat简称nc,在安全界被称为瑞士军刀;而ncat弥补了Netcat的一些不足之处,被叫做21世纪的瑞士军刀。

[root@test ~]# ll /bin/nc
lrwxrwxrwx 1 root root 22 Dec 17 22:37 /bin/nc -> /etc/alternatives/nmap
[root@test ~]# ll /etc/alternatives/nmap 
lrwxrwxrwx 1 root root 13 Dec 17 22:37 /etc/alternatives/nmap -> /usr/bin/ncat

安装

yum install nc -y

nc(ncat)的主要作用

  • 实现TCP/UDP侦听
  • 可以作为client端发起TCP/UDP连接
  • 服务器之间传输文件(不需要密码)
  • 网络测速

网上很多博客还提到了端口扫描,其实centos yum安装的nc命令时ncat,不支持一段范围的端口扫描。只有netcat命令才支持一段范围的端口扫描。

nc命令常用参数

-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

nc命令示例

实现TCP/UDP侦听

这对于测试两台服务器的网络连通性很有用。比如:公有云平台上,对服务器设置了安全组策略,允许其他服务器访问某个端口。但此时服务器上还没有对应的服务监听着端口,无法进行测试。则可以使用nc命令侦听端口,进行临时测试。

TCP侦听

[root@test ~]# nc -l 33333[root@test ~]# netstat -nltp | grep 33333
tcp        0      0 0.0.0.0:33333           0.0.0.0:*               LISTEN      1958/nc             
tcp6       0      0 :::33333                :::*                    LISTEN      1958/nc

UDP侦听

[root@test ~]# nc -l -u 33333[root@test ~]# netstat -nlup | grep 33333
udp        0      0 0.0.0.0:33333           0.0.0.0:*                           2232/nc             
udp6       0      0 :::33333                :::*                                2232/nc

作为client端发起TCP/UDP连接

发起TCP连接

成功

[root@test ~]# nc -zv 192.168.1.1 8080
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.122.2.91:8080.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

失败

[root@test ~]# nc -zv 192.168.1.1 2222
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connection refused.

发起UDP连接

成功

[root@test ~]# nc -zuv 192.168.1.1 33333
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.122.2.91:33333.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.01 seconds.

失败

[root@test ~]# nc -zuv 192.168.1.1 2222
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.122.2.91:2222.
Ncat: Connection refused.

服务器之间传输文件

在实际工作中,很多情况下我们没有root密码。当我们要简单处理个问题,想要传输文件时常常令人抓狂。只是一个小文件,而要去考虑做免密钥;或者是新建一个用户来临时传输文件。

使用nc命令就可以避开这个烦恼,一些小的临时文件,直接通过网络传输,并且不需要密码。

接收端

nc -l 33333 > receive.txt

发送端

nc 10.122.2.91 33333 < send.txt

此方法不仅可以传输简单的文本文件、二进制文件。如果想要传输目录时,将目录制作成压缩包,也可以通过网络传输。

网络测速

测速接收端

[root@test01 ~]# nc -l 33333 > /dev/null

测速发送端

[root@test02 ~]# nc 10.122.2.91 33333 < /dev/zero

接收端dstat网络流量

发送端dstat网络流量

 


http://chatgpt.dhexx.cn/article/txNkPgWM.shtml

相关文章

linux NC-SI

NCSI 的简单介绍 它主要包括&#xff1a;一个管理控制器(Management Controller, MC)&#xff0c;一个或多个(NCSI 的电气特性最多支持 4 个)网络控制器(Network Controller, NC)。网络控制器一方面连接了外部网络接口与内部主机接口&#xff0c;另一方面&#xff0c;又与管理控…

【Linux】 浅谈 NCSI 及其在 Linux 上的实现

关于NCSI的标准介绍&#xff0c;我们可以参考DMTF的文档&#xff0c;链接&#xff1a; https://www.dmtf.org/sites/default/files/standards/documents/DSP0222_1.1.0.pdf https://www.dmtf.org/sites/default/files/standards/documents/DSP0222_1.2.0b.pdf 也可以参考下面这…

Linux内核ncsi驱动源码分析(一)

一、共享网口NCSI的初始化 1.注册ncsi驱动 linux-5.4.11\drivers\net\ethernet\faraday\ftgmac.c 系统起来时&#xff0c;ftgmac100_probe函数&#xff0c;根据dts文件里的ncsi节点是否存在&#xff0c;判断是否需要加载ncsi驱动设备 linux-5.4.11\linux-5.4.11\arch\arm\bo…

什么是网络连接状态指示器NCSI

什么是网络连接状态指示器&#xff1f; &#xff08;NCSI &#xff0c;Network Connectivity Status Indicator&#xff09;&#xff0c;中文意思&#xff1a;网络连接状态指示器&#xff0c;是Windows系统判断某一台机器是否能够连接到Internet的技术。其实&#xff0c;最早是…

SpringBoot项目下的mvnw与mvnw.cmd

原文地址:http://ju.outofmemory.cn/entry/214018 Maven是一个常用的构建工具&#xff0c;但是Maven的版本和插件的配合并不是那么完美&#xff0c;有时候你不得不切换到一个稍微旧一些的版本&#xff0c;以保证所有东西正常工作。 而Gradle提供了一个Wrapper&#xff0c;可以…

SpringBoot--maven-wrapper(mvnw)--使用/详解

原文网址&#xff1a;SpringBoot--maven-wrapper(mvnw)--使用/详解_IT利刃出鞘的博客-CSDN博客 简介 本文介绍SpringBoot项目中maven-wrapper&#xff08;也就是mvnw&#xff09;的用法。 粉丝福利&#xff1a;很多粉丝私信问我有没有Java的面试及PDF书籍等资料&#xff0c;我…

安卓-mvvm项目架构搭建(一)- 项目搭建

前言 用了几百年的mvp和mvc了&#xff0c;这和我的业务环境脱不了关系&#xff0c;维护老旧项目的时间很多&#xff0c;导致一直没什么机会来写一个mvvm标准架构的应用&#xff0c; 我开个帖子记录一下使用安卓组件化和mvvm模式来从头做一个项目 开始 1.将会使用jectpact来…

android mvvm架构-基于Jetpack

2020年最新最实用的android-MVVM框架 https://github.com/VcStrong/JetpackMVVM.git 注册的密码规则是数字加字母超过8位即可 测试账号&#xff1a;13126965106 密码&#xff1a;111111aa 阅读此文档前&#xff0c;先尝试运行项目&#xff0c;文档中部分类名需要结合项目中代码…

安卓如何搭建Mvvm框架

安卓架构从我们最初熟悉的Mvc模式&#xff0c;发展到用Mvp&#xff0c;再到现在比较火的Mvvm架构。一路走来感觉架构都是浮云&#xff0c;最主要的还是个人对业务的理解深入&#xff0c;然后再进行代码的封装解耦&#xff0c;才能真正是代码逻辑简洁和维护成本减小。 下面我们就…

mvnw,到底是什么鬼?

不羡鸳鸯不羡仙&#xff0c;一行代码调半天。原创&#xff1a;小姐姐味道&#xff08;微信公众号ID&#xff1a;xjjdog&#xff09;&#xff0c;欢迎分享&#xff0c;转载请保留出处。 使用start.spring.io生成项目&#xff0c;会发现里面有mvnw和mvnw.cmd两个文件。两个文件加…

SpringBoot创建项目生成的maven-wrapper(mvnw)

1 生成 用https://start.spring.io/生成Spring Boot初始项目后&#xff0c;会生成几个文件&#xff1a; . |-- .mvn | -- wrapper | |-- maven-wrapper.jar | – maven-wrapper.properties |-- mvnw |-- mvnw.cmd 在一些项目中并没有这几个文件&#xff0c;可见它们不是必须的…

Android MVI框架的使用

AndroidMviFrame AndroidMviFrame 是一个Android简单易用的项目框架 文档下面会对框架中所使用的一些核心技术进行阐述。该框架作为技术积累的产物&#xff0c;会一直更新维护&#xff0c;如果有技术方面的谈论或者框架中的错误点&#xff0c;可以在 GitHub 上提 Issues&…

关于Maven ./mvnw

文章目录 寻找找到帮助命令./mvnw是什么?add:该命令成功运行.后来?失败 寻找 C:\Users\71027>mvn /? [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ---------------…

Android MVVM架构

1.MVC,MVP,MVVVM 1.1什么是MVVM 1.MVVM&#xff0c;是Model-View-ViewModel的简写&#xff0c;是M-V-VM三部分组成。它本质上就是MVC 的改进 版。MVVM 就是将其中的View 的状态和行为抽象化&#xff0c;其中ViewModel将视图 UI 和业务逻辑分 开&#xff0c;它可以取出 Model …

Maven(mvn)的学习下载和配置

文章目录 Maven&#xff08;mvn&#xff09;1.Maven 是什么&#xff1f;2.Maven做什么&#xff1f;2.1传统方式对项目的管理2.2Maven对jar包的管理 3.Maven怎么学3.1Maven如何创建项目3.2Maven的下载与配置3.3Maven的项目结构3.4Maven依赖的引入3.5Maven依赖的剔除3.6Maven依赖…

Android之 MVC到MVVM架构发展和封装

一 简介 1.1 软件架构发展趋势是解耦&#xff0c;即分离数据层和视图层&#xff0c;使得数据层专注于业务的数据和逻辑处理。从而提高代码的可读可编辑效率&#xff0c;提高团队协作能力&#xff0c;项目的生产能力&#xff0c;降低后期维护成本。 1.2 Android架构发展MVC -…

安卓mvvm

AndroidX的意思是android extension libraries, 也就是安卓扩展包 AndroidX其实是Jetpack类库的命名空间 (190条消息) AndroidX初识_Neda Wang的博客-CSDN博客https://blog.csdn.net/weixin_38261570/article/details/111500044 viewmodel Android 面试总结 - ViewModel - 知…

Android MVVM的实现

Android MVVM的实现 前言&#xff1a; 在我们写一些项目的时候&#xff0c;通常会对一些常用的一些常用功能进行抽象封装&#xff0c;简单例子&#xff1a;比如BaseActivity&#xff0c;BaseFragment等等…一般这些Base会去承载一些比如标题栏&#xff0c;主题之类的工作&…

Android MVI框架搭建与使用

MVI框架搭建与使用 前言正文一、创建项目① 配置AndroidManifest.xml② 配置app的build.gradle 二、网络请求① 生成数据类② 接口类③ 网络请求工具类 三、意图与状态① 创建意图② 创建状态 四、ViewModel① 创建存储库② 创建ViewModel③ 创建ViewModel工厂 五、UI① 列表适…

Android MVVN 使用入门

MVVM&#xff08;Model-View-ViewModel&#xff09;是一种基于数据绑定的设计模式&#xff0c;它与传统的 MVC 和 MVP 模式相比&#xff0c;更加适合处理复杂的 UI 逻辑和数据展示。在 Android 开发中&#xff0c;MVVM 通常使用 Data Binding 和 ViewModel 实现。 下面是一个简…