使用命令行通过 Netcat 在联网计算机之间发送数据

使用 netcat 通过网络发送数据

Netcat 是一个强大的命令行工具,可以使用 TCP/IP 通过网络连接读取和写入数据,通常用于中继、文件传输、端口扫描等。虽然 netcat 起源于 unix 和 linux 世界,但 netcat 也内置于 Mac OS X 中,我们将使用 nc 实用程序作为在两台联网计算机之间发送数据和其他文本的简单方法。
< br />通过使用 netcat 以相当简单的客户端和服务器关系发送数据,它提供了一种可能比 传统文件共享,当用户在发送和接收数据时更喜欢留在命令行中,并且通过 SSH 或 SFTP 不实用。

请注意,netcat 不需要登录或身份验证,唯一的要求是客户端知道服务器的 IP 地址和侦听端口号。这显然会增加一些安全滥用的可能性,因此使用 netcat 发送数据和文本通常最好留给高级用户使用,或者仅在风险很小的受保护本地网络后面使用。在需要强调安全性的情况下,最好使用 SSH。

为方便起见,我们将使用 netcat 侦听的计算机 1 称为“服务器”,将向计算机 1 发送数据的计算机 2 称为“客户端”。

将 Netcat 设置为在服务器(计算机 1)和端口上侦听

我们将启动 netcat 并让它侦听端口 2999,然后使用以下命令字符串将接收到的任何数据重定向到名为“received.txt”的文件:

nc -l 2999 > received.txt

在调用它完成移动到客户端之前,您需要在本地网络上拥有 Mac 的 IP 地址。您可以从网络控制面板获取,或者因为您已经在终端,通过命令符合以下语法:

ipconfig getifaddr en0

仅支持 Wi-Fi 的现代 Mac 将使用 en0,支持以太网和 wifi 的 Mac 可能使用 en1。如果没有任何结果,请尝试使用另一个接口获取 LAN IP。假设此 Mac 的 IP 报告为“192.168.1.101”,当然您的 IP 可能会有所不同。您将需要在客户端计算机上使用它来发送数据,我们将在接下来介绍。

将数据从客户端(计算机 2)传输到监听服务器

现在在您希望从中发送数据的客户端上,您可以使用如下命令。我们将使用 cat 通过网络将文本文件转储到监听的 netcat 服务器,但您可以通过管道传输任何您想要的内容:

<代码>cat sendthisdataover.txt |数控 192.168.1.101 2999

为了使其正常工作,请务必从服务器填写您自己的 IP 地址,并 cat 您要发送的适当文件或文本。

假设本地网络速度稍快,数据即使不是立即到达也应该很快到达。一旦数据传输完成,连接的双方将停止,服务器将停止监听,然后关闭端口。这使得一次性发送数据(如日志文件或大文本文档)非常有效,但对于移动大量文件则不一定实用。

如前所述,您可以传输几乎任何数据,无论是另一个应用程序、tail、cat 的输出,还是直接从剪贴板中使用 pbcopy 和 pbpaste,它将通过 netcat 传输。

应该注意的是,在 Mac 之间或 Mac 和 Linux 或 Windows 机器之间共享剪贴板有更方便的方法,在这些情况下,您最好使用免费工具,例如 Teleport 用于 Mac 到 Mac 输入共享,或免费 < href="https://ipressx.com/share-single-keyboard-mouse-between-multiple-macs-computers/">Synergy 实用程序(如果您要在 Mac 和 PC 之间跨平台)。两者都允许用户共享剪贴板数据以及鼠标和键盘等输入设备。

郑重声明,虽然此演示是在两台装有 OS X 的 Mac 上进行的,但您没有理由不能使用 netcat 在 Mac 和 Linux 机器之间发送数据,反之亦然。

netcat 还有很多其他的重要用途,如果您有任何喜欢的用途,请在评论中告诉我们!