访问手机版  

Linux常用命令|Linux培训学习|考试认证|工资待遇与招聘,认准超级网工!

招聘|合作 登陆|注册

网络工程师培训

当前位置:网络工程师 > 技术课程 > linux > 热点关注 > linux常用命令

Linux nc 命令详解

时间:2019-08-16

linux shell 命令 大全_linux命令大全 root_linux命令大全

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。

netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。

下面是一些使用netcat的例子.

[A(172.31.100.7) B(172.31.100.23)]

Linux netcat 命令实例:

端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞。

$nc -z -v -n 172.31.100.7 21-25
可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp.

pipe建立的管道是单工的,其参数是一个包含两个元素的整形数组fd[2],创建成功后fd[0]代表管道可读的一端,fd[1]代表可写的一端,这两个的本质都是文件描述符,当进程间有数据要传输时,数据发送的一端需要关闭fd[0],接收端要关闭fd[1],才能正常传送数据。这是一种办法,但是要考虑到,因为你不知道用户是使用什么软件在发送udp数据过来,你乱发数据过去,很大可能是被客户软件认为是不合法的数据而过滤掉,如果sock5代理因为发过去的数据被过滤了而认为客户 是断开了,那么极容易就将没有断开的用户也踢下去了,而且现在的oicq还会使用使用两个连接,一个是udp连接,另一个是tcp连接,udp连接只是登陆上服务器时使用,tcp连接却是进行数据传输的,而udp连接却是一直都不会有数据传输的了,如果socks5代理因为udp连接长时间没有数据传输而将那个udp连接关闭的话,oicq也会因为这样而掉线(你关闭了udp连接,oicq以为代理是不可用了,自己会将tcp连接断开)。c:当服务器确定数据已静完成发送,则向客户端发送(fin)报文告诉客户端:"我这边数据发完了,准备好关闭连接"。

v 参数指使用冗余选项(译者注:即详细输出)

n 参数告诉netcat 不要使用DNS反向查询IP地址的域名

这个命令会打印21到25 所有开放的端口。Banner是一个文本,Banner是一个你连接的服务发送给你的文本信息。当你试图鉴别漏洞或者服务的类型和版本的时候,Banner信息是非常有用的。但是,并不是所有的服务都会发送banner。

一旦你发现开放的端口,你可以容易的使用netcat 连接服务抓取他们的banner。

$ nc -v 172.31.100.7 21

netcat 命令会连接开放端口21并且打印运行在这个端口上服务的banner信息。

假如你想和你的朋友聊聊,有很多的软件和信息服务可以供你使用。但是,如果你没有这么奢侈的配置,比如你在计算机实验室,所有的对外的连接都是被限制的,你怎样和整天坐在隔壁房间的朋友沟通那?不要郁闷了,netcat提供了这样一种方法,你只需要创建一个Chat服务器,一个预先确定好的端口,这样子他就可以联系到你了。

Server

linux shell 命令 大全_linux命令大全 root_linux命令大全

$nc -l 1567

netcat 命令在1567端口启动了一个tcp 服务器,所有的标准输出和输入会输出到该端口。输出和输入都在此shell中展示。

Client

$nc 172.31.100.7 1567

不管你在机器B上键入什么都会出现在机器A上。

大部分时间中,我们都在试图通过网络或者其他工具传输文件。有很多种方法,比如FTP,SCP,SMB等等,但是当你只是需要临时或者一次传输文件,真的值得浪费时间来安装配置一个软件到你的机器上嘛。假设,你想要传一个文件file.txt 从A 到B。A或者B都可以作为服务器或者客户端,以下,让A作为服务器,B为客户端。