在Internet上的两台计算机之间直接传输文件


27

我正在寻找一种简单而直接的方法来在两个人之间传输任何类型和任何大小的文件。如果可能,仅使用Web浏览器,而不同时将文件存储在第三台计算机上。

我希望这样做,无需最终用户连接到第三台服务器,因为那样一来,数据将流经计算机xyz.com,可能会减慢传输速度并带来安全风险。

我想避免只为偶尔的文件传输设置整个FTP服务器。到目前为止,我已经发现了JetBytesClick2CopyPipeBytes。这些Web服务应该使传输变得容易。但是,流量通过它们的服务器,因此它们对我想要的没有好处。

我希望客户和我之间直接进行转移。加密将是一个不错的附加功能。

我知道这样做必须打开计算机上的一个端口,并在路由器上配置位端口重定向。但是,NAT遍历也是不错的选择。

我的问题是:

有没有一种简单的方法可以在两台计算机之间进行单个端到端直接文件传输,从而避免了第三方?(如果可能,请使用加密和NAT遍历)


您是否正在寻找仅通过HTTP或其他方式传输的解决方案?
Pacerier,2011年

我个人使用启用自动索引功能的chroot监禁Web服务器与他人共享文件。然后,我有了一个被监禁的ftp匿名帐户,人们可以使用该帐户将文件直接发送给我。我要告诉妈妈我是否想与某人共享文件,这是Skype解决方案。至少比使用电子邮件附件更好。
isuldor 2012年

1
也许直接文件传输程序sourceforge.net/projects/file-transfer-开源,拖放,承诺可选upnp(在xp上?),teredo,安全连接和自动发现,(可选的东西需要在设置页面中
打勾

我们可以重新打开吗?我将其改写为实施建议
n611x007 2014年

Answers:


13

如果使用* nix,最肮脏的方法是使用netcat(nc)将文件保存到远程主机。但是,如果要加密,则最好使用SCP / SSH。

您必须意识到,如果任何一方都在NAT后面,并且您不想设置端口转发,那么在不先连接到第三方服务器的情况下进行直接连接是不可能的。服务器不一定必须中继流量(请参阅http://en.wikipedia.org/wiki/UDP_hole_punching),并且大多数都不需要,因为带宽成本很高。

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

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


3
cryptcat是具有加密功能的netcat
Journeyman Geek

netcat也可用于Windows。我喜欢这样
Benoit

作为参考,Skype不再使用P2P:support.skype.com/en/faq/FA12381/what-is-the-cloud
Radderz

10

基于WebRTC的解决方案可能以最简单的形式满足您的需求。您确实连接到第三方网站,但这仅用于连接对等方,而不是文件传输部分。

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

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


在我的公司(高度安全)网络上,reep.io无法正常工作,但justbeamit.com可以正常工作!我希望这两种服务都可以工作,因为它们都是基于WebRTC技术的,但是似乎比这要复杂一些。非常感谢您的提示!
令人赞叹的

8

您可以使用rsync在远程计算机之间同步文件。该实用程序可用于cygwin中的Windows ,也可以与预打包的cwRsync一起安装。

我会保留原先的答案,但是鉴于最近有关NSA的启示,我不再建议使用Skype进行安全的文件传输。

您可以使用Skype将文件直接发送给其他人。当两个用户都位于NAT之后时,Skype有时甚至可以工作。如果您足够聪明,可以在路由器上打开端口,则这样做将增加协商直接连接的可能性。

更广泛地说,许多聊天程序都包含文件共享/发送机制。默认情况下,大多数都不像Skype一样提供加密。但是,只要您和收件人具有相同的聊天客户端,便可以使用“简单工具”来共享文件。


感谢您的回答。这里的问题是,我总是必须依靠第三家公司,专门为此开设一个帐户,并且该服务可能会中断或服务条款可能会更改。如果可能的话,我想避免这种情况。但是我不知道Skype可以协商直接连接。仍然可以从您的回答中推断出情况并非总是如此?
Benoit

@Benoit-我从未有过Skype无法发送文件的信息。进入Skype服务器的唯一流量是建立连接。所有数据都在您和您的收件人之间。至于本服务条款是非常 unlightly文件共享是Skype的一个核心部分。
Nifle

@Benoit Skype 始终使用直接连接;甚至Skype用户的数据库也是分布式的。Skype的好处是其端到端加密。Skype无法看到您正在传输的数据。(+1顺便说一句)
squircle

5

如果您运行的Linux / unix ssh是在客户端服务器模型中传输文件的安全方法。如果在NAT之后,则在传入连接上需要端口转发。


3

FTP。它已经存在了很长时间。太不安全了。而且很简单。

下载Filezilla,它既可以充当服务器,也可以充当客户端。确保将防火墙设置为允许出站。让您的目标下载filezilla并连接到filezilla服务器。传输文件。

就像那样,您的所有点滴都散布在互联网上,所有人都可以看到,后院的微风中有那么多衣物在翻转。


也不是那么可靠。您需要进行哈希检查以确保所收到的内容与发送的内容完全相同。TCP / IP伪装成可靠的,但最终并不是100%。例如,Just试图发送几个千兆字节的备份,发现我制作的zip在目标上有错误,但在源上没有。没有显示错误。总体而言,散列是好的,但是仍然可以给您带来错误的提示。每个散点都在1 mb点处比较好。因此,两台计算机之间的洪流对于大文件来说会更好。
rxantos

FTP确实很难处理非常大的文件(它从来没有考虑过使用像今天开发时那样大的文件)。SFTP是用于大型文件的更好装备的协议,并且比FTP安全得多。
MaQleod

3

我曾经写过一篇博客文章,介绍如何使用Python的内置HTTP服务器传输文件。简而言之,安装Python,cd在包含要共享和执行的文件的目录中打开命令提示符python -m SimpleHTTPServer。如果您使用的是Linux或OS X,则非常方便,因为默认情况下安装了Python(在Windows上也很容易安装)。

如果您位于NAT之后,则需要在路由器或其他设备(我想您已经知道)上设置端口转发。


1
“博客文章”链接转到垃圾邮件站点
-MFB

@MFB我猜它曾经去过他的合法网站,但他此后失去了对该网站的控制权,现在它重定向到一个停放的域名类型页面。我现在已将链接编辑出去。对于phunehehe,如果看到此消息,请对链接发表评论。如果您现在在其他地方有该博客文章的副本,则可以对其进行编辑,但是请注意,故意链接到垃圾邮件将不被允许。
nhinkle

终于我恢复了博客帖子,更新了:)
phunehehe

2

可以进行UPnP NAT遍历的 Web服务器将工作,接收方仅需要Web浏览器。由于使用Web服务器很容易进行加分加密,因此只需使用https。

这是一个示例(收费软件99USD),RaidenHTTPD





1

为什么没人提到IRC DCC传输?https://en.wikipedia.org/wiki/Direct_Client-to-Client,您将获得HexChat客户端,将其安装在两台计算机上,输入Freenode,然后创建一个供两者加入的通道,然后右键单击其他“联系人/ PC”并发送文件。一直有效的老技术,除了用于拨号直接连接的超级终端外,大约在1995-1998年间,DCC是下载音乐和电影的主流方式。


1

魔术虫孔可以用于此目的。在Ubuntu上,您可以通过apt-get安装(也可以通过Python pip安装):

sudo apt install magic-wormhole

要发送文件,您只需告诉要发送的内容

wormhole send README.md

这将输出您应该在接收端运行的命令行。这包括一个秘密密钥(这样您也可以通过电话阅读它)。您未指定任何计算机名称或IP地址。蠕虫病毒会自动建立连接并加密要传输的文件。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.