互联网上两台计算机之间直接传输文件

互联网上两台计算机之间直接传输文件

我正在寻找一个简单的但直接在两个人之间传输任何类型和大小的文件的方法。如果可能的话,只使用网络浏览器,而不用将文件存储在第三台机器上。

我希望这样做没有要求最终用户连接到第三方服务器,因为这样数据将通过机器流动xyz.com,可能会减慢传输速度并带来安全风险。

我希望避免为了偶尔的文件传输而设置整个 FTP 服务器。到目前为止,我发现JetBytes点击复制管道字节。这些网络服务应该使传输变得容易。但是流量会经过他们的服务器,所以它们不能满足我的要求。

我希望转账在我和客户之间直接进行。加密将是一个很好的附加功能。

我知道这样做我必须在我的计算机上打开一个端口,并在我的路由器上配置一个位端口重定向。然而,NAT 穿越也是很好的补充。

我的问题是:

是否有一种简单的方法可以在两台计算机之间进行单端到端的直接文件传输,避免第三方?(如果可能的话,使用加密和 NAT 穿越)

答案1

如果您使用 *nix,最肮脏的方法是使用 netcat ( nc) 将文件发送到远程主机。但如果您想要加密,您不妨使用 SCP/SSH。

您必须意识到,如果任何一方位于 NAT 后面,并且您不想设置端口转发,那么如果不先连接到第三方服务器,就无法建立直接连接。服务器不一定必须中继流量(请参阅http://en.wikipedia.org/wiki/UDP_hole_punching),但由于带宽成本昂贵,大多数公司都不这么做。

例如,Skype 会尝试使用多种 NAT 遍历方法建立直接连接,然后再通过其超级节点中继流量。(Skype 是一个典型的 P2P 网络。)

至于账户问题。我想这是不可避免的。所有方法都需要某种配置或设置,这通常比注册账户更难。

答案2

基于 WebRTC 的解决方案可以满足您的需求,也许是最简单的形式。您确实可以连接到第三方网站,但那只是为了让对方连接,而不是文件传输部分。

示例服务:
https://www.justbeamit.com/
https://www.sharedrop.io/

编辑:我知道这并不满足 OP 的所有要求,但还有另一个非常有用的解决方案:Firefox 发送。使用此功能,您可以将文件以加密形式上传到第三方服务器。该服务为您提供一个 URL,您可以与他人共享。该 URL 还包含解密文件的密钥。然后他们可以下载该文件。在下载一定次数或 24 小时后,文件会自动删除。服务器永远不会看到密钥,因此无法解密文件。使用第三方服务器的优势在于共享方和下载方不需要同时在线。

答案3

可以使用 Magic Wormhole 来实现这一点。在 Ubuntu 上,你可以通过 apt-get 安装(也可以通过 Python pip 安装):

sudo apt install magic-wormhole

要发送文件你只需告诉发送什么

wormhole send README.md

这将输出您应在接收端运行的命令行。这包括一个密钥(您也可以通过电话读取它)。您无需指定任何机器名称或 IP 地址。Wormhole 会自动建立连接并加密要传输的文件。

https://magic-wormhole.readthedocs.io/en/latest/welcome.html

答案4

如果您运行的是 Linux / unix ssh,那么它是一种在客户端服务器模型中传输文件的安全方式。但是,如果位于 NAT 后面,则传入连接需要端口转发。

相关内容