怎样使用 Netcat 在 Linux 计算机之间快速传输文件

不乏可以帮助您在计算机之间传输文件的软件解决方案。 但是,如果您很少这样做,则 NFS 和 SFTP(通过 OpenSSH)等典型解决方案可能会过大。 此外,这些服务对接收和处理传入连接永久开放。 配置不正确,这可能会使您的设备容易受到某些攻击。

netcat,即所谓的“TCP/IP 瑞士军刀”,可用作通过本地网络或 Internet 传输文件的临时解决方案。 当虚拟机或容器不包含开箱即用的功能时,它也可用于向/从虚拟机或容器传输数据。 您甚至可以将其用作两个设备之间的复制粘贴机制。

怎样在各种 Linux 发行版上安装 netcat

大多数基于 Linux 的操作系统都预装了这个。 打开终端并输入:

如果未找到该命令,请安装包含 netcat(一种 BSD 变体)的软件包。 还有包含较少功能的 GNU 版本的 netcat。 您需要在接收文件的计算机和发送文件的计算机上使用 netcat。

在基于 Debian 的发行版(例如 Ubuntu 或 Linux Mint)上,使用以下命令安装该实用程序:

使用 openSUSE, 按照此页面上的说明进行操作,特定于您的确切分布。

在 Arch Linux 上输入以下命令:

不幸的是,RedHat 系列不包括 netcat 的 BSD 或 GNU 变体。 出于某种奇怪的原因,他们决定使用 nmap-ncat。 虽然类似,但某些命令行选项不可用,对于 example -N. 这意味着您必须更换一行,例如 nc -vlN 1234 > ncnc -vl 1234 > nc 以便它适用于 RedHat/Fedora.

在 RedHat 上安装 ncat:

并在 Fedora:

怎样使用 netcat 在 Linux 计算机之间传输文件

在将接收文件的计算机上,找到您的内部网络上使用的 IP 地址。

在“src”之后,您将看到设备的内部网络 IP 地址。 如果由于某种原因结果无关紧要,您还可以尝试:

在提供的屏幕截图中 example,IP 为 10.11.12.10。

在将接收文件的同一台计算机上,输入以下命令:

netcat 接收文件

在将发送文件的计算机上,键入以下内容,将 10.11.12.10 替换为您之前发现的 IP:

netcat-发送文件

目录和文件路径可以是绝对的或相对的。 绝对路径是“/home/user/Pictures/file.png”。 但是,如果您已经在“/home/user”中,则可以使用相对路径“Pictures/file.png”,如上面的屏幕截图所示。

在第一个命令中使用了两个参数: -v-l. -v 使输出变得冗长,打印更多细节,这样你就可以看到发生了什么。 -l 使实用程序在端口 44444 上“侦听”,实际上在接收设备上打开了一个通信通道。 如果您启用了防火墙规则,请确保它们没有阻止连接。

在第二个命令中, -N 让网猫 close 当转移完成时。

通常,netcat 会在终端中输出它接收到的所有内容。 > 为此输出创建重定向。 它不是将其打印在屏幕上,而是将所有输出发送到之后指定的文件 >. < 反向工作,从指定的文件中获取输入,而不是等待来自键盘的输入。

如果您在没有重定向的情况下使用上述命令,例如, nc -vl 44444nc -N 10.11.12.10 44444,您在两个设备之间创建了一个基本的“聊天”。 如果你在一个终端上写一些东西并按下 Enter,它将出现在另一台计算机上。 这是您怎样将文本从一台设备复制并粘贴到另一台设备的方法。 按 Ctrl + D(在发件人上)或 Ctrl + C(在任何地方) close 连接。

优化文件传输

当您发送大文件时,您可以即时压缩它们以加快传输速度。

在接收端输入:

然后在发送方输入以下内容,将 10.11.12.10 替换为接收设备的 IP 地址:

发送和接收目录

显然,有时您可能希望一次发送多个文件,例如 example, 整个目录。 下面也会在通过网络发送之前压缩它们。

在接收端,使用以下命令:

netcat-receiving-tar-gzipped-directory

在发送设备上,使用:

netcat-sending-tar-gzipped-directory

结论

最好只在局域网上使用它。 主要原因是网络流量未加密。 如果您将其通过 Internet 发送到服务器,则您的数据包可能会在网络路径上被拦截。 但是,如果您传输的文件不包含敏感数据,那就不是真正的问题。 但是,服务器通常预先配置了 SSH 以接受安全的 FTP 连接,您可以使用 SFTP 代替进行文件传输。

永远不会错过

接收我们最新教程的更新。

注册所有时事通讯。 我想通过电子邮件接收时事通讯。 我们不会共享您的数据,您可以随时取消订阅。 订阅