📜  Netcat – 基本用法和概述

📅  最后修改于: 2022-05-13 01:57:34.416000             🧑  作者: Mango

Netcat – 基本用法和概述

Netcat 是一个 Unix 实用程序,它使用 TCP 或 UDP 协议通过网络连接读取和写入数据。
使用 Netcat 可以轻松完成以下任务:

  • 连接到目标主机的端口。
  • 侦听任何入站连接的某个端口。
  • 建立连接后,跨客户端和服务器发送数据。
  • 建立连接后,通过网络传输文件。
  • 可以在服务器上执行客户端的程序和脚本,反之亦然。
  • 可以向可以执行 shell 命令的客户端提供服务器的远程 shell 访问。

例子

一个简单的客户端 - 服务器连接:
在服务器计算机上键入此命令。

nc -l -p 1234

这里,nc代表 Netcat,我们称之为 Netcat 程序。
-l选项告诉程序监听-p选项指定的端口。在这种情况下,它是 1234。所以命令也可以写成,

现在在客户端机器或其他终端上键入以下内容:-

nc 127.0.0.1 1234



这将在指定端口(即 1234)上创建一个具有 IP 地址(即 127.0.0.1)的 TCP 连接。

一些可以与 Netcat 一起使用的重要选项:

1. Verbose,打印有关连接的附加信息。

#command for terminal 1
nc -vlp 1234
#command for terminal 2
nc -v 127.0.0.1 1234

客户端上的上述命令显示它已成功连接到服务器。此命令还可用于扫描服务器的端口是否打开。

2.数据传输后等待 w 秒,然后终止连接。

#command for terminal 1
nc -w 20 -lp 1234
#command for terminal 2
nc -w 2 127.0.0.1 1234

3.进行简单的聊天和数据传输



#command for terminal 1
nc -lp 1234
#command for terminal 2
nc 127.0.0.1 1234

使用上述命令序列将消息或数据从一个终端和一个 ip 发送到另一个

4.执行文件传输

#command for terminal 1 
nc -v -w 30 -l -p 1234 >manav.txt
#command for terminal 2
nc -v -w 2 127.0.0.1 1234

在本例中,服务器将在收到文件 30 秒后终止连接。如果文件不在当前目录中,则指定整个路径。

5.建立连接成功后执行shell命令

#command for terminal 1
nc -lp 1234 -c /bin/sh
#command for terminal 2
nc 127.0.0.1 1234

/bin/sh是一个 Unix 命令,它提供了一个 shell 来执行 shell 命令。这将为客户端提供一个远程 shell,客户端可以从这里在服务器上执行 shell 命令。

Netcat 的一些要点

  1. 默认情况下,Netcat 使用 TCP 连接。要建立 UDP 连接,使用-u选项。
  2. 如果没有-w选项,连接不会终止,直到退出 Netcat 程序。
  3. -n选项指定数字 IP 地址,而不是域名。也就是说,-n 选项只允许连接一个 IP 地址,但不能将域名解析为 IP 地址。
  4. -k选项用于侦听模式以接受多个连接。