百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

Linux之nc命令 linux中nc指令是什么意思

liebian365 2024-10-14 22:22 30 浏览 0 评论

用于设置路由器,是网络工具中的瑞士军刀

nc命令 全称netcat,用于设置路由器。它能通过 TCP 和 UDP 在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用 netcat 命令所能完成的事情令人惊讶。

Centos安装nc

> yum -y install nc

Ubuntu安装nc

> apt-get install netcat

Mac安装nc

> brew install netcat

命令格式

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

TCP端口扫描

> nc -v -z  -w2  rumenz.com  20-30
nc: connectx to rumenz.com port 20 (tcp) failed: Connection refused
nc: connectx to rumenz.com port 21 (tcp) failed: Connection refused
found 0 associations
found 1 connections:
     1:	flags=82<CONNECTED,PREFERRED>
	outif en0
	src 192.168.0.105 port 57984
	dst 203.195.152.245 port 22
	rank info not available
	TCP aux info available

Connection to rumenz.com port 22 [tcp/ssh] succeeded!
nc: connectx to rumenz.com port 23 (tcp) failed: Connection refused
nc: connectx to rumenz.com port 24 (tcp) failed: Connection refused
nc: connectx to rumenz.com port 25 (tcp) failed: Connection refused
nc: connectx to rumenz.com port 26 (tcp) failed: Connection refused
nc: connectx to rumenz.com port 27 (tcp) failed: Connection refused
nc: connectx to rumenz.com port 28 (tcp) failed: Connection refused
nc: connectx to rumenz.com port 29 (tcp) failed: Connection refused
nc: connectx to rumenz.com port 30 (tcp) failed: Connection refused

20-30是端口范围

UDP端口扫描

> nc -v -z -w2 -u rumenz.com 20-25
found 0 associations
found 1 connections:
     1:	flags=82<CONNECTED,PREFERRED>
	outif (null)
	src 192.168.0.105 port 63603
	dst 203.195.152.245 port 20
	rank info not available

Connection to rumenz.com port 20 [udp/ftp-data] succeeded!
found 0 associations
found 1 connections:
     1:	flags=82<CONNECTED,PREFERRED>
	outif (null)
	src 192.168.0.105 port 51642
	dst 203.195.152.245 port 21
	rank info not available

Connection to rumenz.com port 21 [udp/ftp] succeeded!
found 0 associations
found 1 connections:
     1:	flags=82<CONNECTED,PREFERRED>
	outif (null)
	src 192.168.0.105 port 58180
	dst 203.195.152.245 port 22
	rank info not available

Connection to rumenz.com port 22 [udp/ssh] succeeded!
found 0 associations
found 1 connections:
     1:	flags=82<CONNECTED,PREFERRED>
	outif (null)
	src 192.168.0.105 port 57409
	dst 203.195.152.245 port 23
	rank info not available

Connection to rumenz.com port 23 [udp/telnet] succeeded!
found 0 associations
found 1 connections:
     1:	flags=82<CONNECTED,PREFERRED>
	outif (null)
	src 192.168.0.105 port 59767
	dst 203.195.152.245 port 24
	rank info not available

Connection to rumenz.com port 24 [udp/*] succeeded!
found 0 associations
found 1 connections:
     1:	flags=82<CONNECTED,PREFERRED>
	outif (null)
	src 192.168.0.105 port 58696
	dst 203.195.152.245 port 25
	rank info not available

Connection to rumenz.com port 25 [udp/smtp] succeeded!

扫描指定端口

> nc -v json.im 80
found 0 associations
found 1 connections:
     1:	flags=82<CONNECTED,PREFERRED>
	outif en0
	src 192.168.0.105 port 58683
	dst 150.109.147.28 port 80
	rank info not available
	TCP aux info available

Connection to json.im port 80 [tcp/http] succeeded!

建立 C/S 聊天室

nc 的本质是在两台机器之间建立连接,之后就可以基于这个连接做很多事情,数据传输是其中一个最为基本的。我们下面就使用 nc 来建立一个 C/S 的聊天室。

模拟 Server 端

> nc -v -l 127.0.0.1 8086

监听8086端口

模拟 Client 端

> nc -v -p 8085 localhost 8086

-p : 指定源端口

连上之后,Client 和 Server 端就可以相互聊天了。

发送文件

nc 不仅可以发送消息,还可发送文件。

假设服务端有一个 s.txt 的空文件,而客户端有一个 c.txt 文件,含有数据:rumenz.com。

Server 端接收文件

> nc -l 127.0.0.1 8086 > s.txt

Client 端发送文件:

> nc 127.0.0.1 8086 < c.txt

然后s.txt就会有rumenz.com的数据。除了可以发送文件,nc 也可以发送目录,只需要将目录压缩发送即可。

支持 UDP 和 IPv6 连接

nc 默认使用 TCP 和 IPv4 协议建立连接,我们可以使用参数 -u 和 -6 参数来分别使用建立 UDP 和 IPv6 连接。

Server 端:

> nc -u -6 -l localhost 8086

Client 端

> nc -u -6 localhost 8086

相关推荐

Linux-常用操作命令介绍(linux常用的命令大全)

1.帮助命令帮助命令1.1help命令语法格式:命令--help作用:查看某个命令的帮助信息示例#ls--help#netstat--help1.2man命令语法格式:man命令...

推荐:一个小而美的Java工具类库(java工具软件)

前言是的,你没看错,没看错,它就是hutool!相信很多做java开发的朋友应该都已经认识并使用过它了,今天带大家再重温一下它都有哪些功能,并以示例来看看hutool是如何简便实现JWT认...

【SpringBoot后端开发】第三部分 Linux操作系统常用命令(3)

创作不易,请帮忙转发、点赞和评论!四、Linux常用命令对于Linux系统来说,中央处理器、内存、磁盘驱动器、键盘、鼠标、用户等都是文件,而Linux系统管理的命令是它正常运行的核心,与之DOS命令类...

linux常用命令在线查询工具(linux常用命令在线查询工具有哪些)

linuxvi编辑器常用命令linux查看iplinuxfind-name查找文件名linuxshelllinux查看端口占用linux删除文件命令linuxcp命令复制文件到另一个...

使用免费绿色工具chfs,将文件夹共享成网盘

需求:业务需求方有个需要将apk包上传到服务器中,通过chfs可以将服务器目录共享出来,可以可以登录后台自行上传apk文件包。本文就教大家三个知识点1.centos7下使用chfs,共享目录。2.使用...

Mysql和Hive之间通过Sqoop进行数据同步

文章回顾理论大数据框架原理简介大数据发展历程及技术选型实践搭建大数据运行环境之一搭建大数据运行环境之二本地MAC环境配置CPU数和内存大小查看CPU数sysctlmachdep.cpu#核数为...

真实案例记录Linux被植入rootkit导致服务器带宽跑满的解决过程

一、关于linux下的rootkitrootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到攻击和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工...

python周期任务调度工具Schedule使用详解

如果你想周期性地执行某个Python脚本,最出名的选择应该是Crontab脚本,但是Crontab具有以下缺点:不方便执行秒级任务。当需要执行的定时任务有上百个的时候,Crontab的管...

Linux 系统日常巡检脚本(shell巡检脚本)

Linux系统日常巡检脚本,巡检内容包含了,磁盘,内存cpu进程文件更改用户登录等一系列的操作直接用就行了。报告以邮件发送到邮箱在log下生成巡检报告。#!/bin/bash#@Au...

Schedule—简单实用的 Python 周期任务调度工具

如果你想周期性地执行某个Python脚本,最出名的选择应该是Crontab脚本,但是Crontab具有以下缺点:1.不方便执行秒级任务。2.当需要执行的定时任务有上百个的时候,Cronta...

celery定时与异步任务详解(定时任务异步执行)

celery简介Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。Celery的架构由三部分组成,消息中间件(messagebroke...

开源免费的定时任务管理系统:Gocron

Gocron:精准调度未来,你的全能定时任务管理工具!-精选真开源,释放新价值。概览Gocron是github上一个开源免费的定时任务管理系统。它使用Go语言开发,是一个轻量级定时任务集中调度和管理...

PHP Laravel定时任务Schedule(laravel定时任务原理)

前提:本文方法是利用Linux的crontab定时任务来协助实现Laravel调度(Mac也一样)。一、首先添加Crontab定时任务,这里只做简单介绍:用命令crontab-e添加如下内容**...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

如何定期执行 Python 脚本:5 种常见方法

定期执行任务是自动化工作流程中的重要环节,无论是数据抓取、文件备份,还是定期报告生成,定时运行脚本都可以极大提高效率。本文将介绍五种方法,通过这些方法,你可以轻松设置定期执行Python脚本的任务...

取消回复欢迎 发表评论: