使用命令行使用Netcat 跨联网计算机发送数据
Netcat 是一个强大的命令行工具,可以使用TCP/IP 通过网络连接读取和写入数据,通常用于中继、文件传输、端口扫描等。尽管 netcat 起源于 unix 和 linux 世界,但 netcat 也内置于 Mac OS X 中,我们将使用 nc 实用程序作为在两台联网计算机之间发送数据和其他文本的简单方法。通过使用 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 for Mac-到 Mac 输入共享,或者如果您要在 Mac 和 PC 之间跨平台,则可以使用免费的 Synergy 实用程序。两者都允许用户共享剪贴板数据以及鼠标和键盘等输入设备。
郑重声明,虽然此演示是在两台装有OS X 的Mac 上显示的,但您没有理由不能使用netcat 在Mac 和Linux 计算机之间发送数据,反之亦然。
netcat还有很多其他的好用处,如果你有任何最喜欢的,请在评论中告诉我们!