发送文件最简单的方法是什么?

发送文件的最简单方法是什么:

  • 从Ubuntu机器,
  • 对于另一个超出本地网络的Ubuntu用户(如果对其他人更好)
  • 通过加密文件传输,
  • 仅使用免费和开源软件,
  • 最好不要依赖第三方,比如你必须上传文件的云应用,
  • 最好不要泄露你的IP地址,不要让你的机器更容易受到文件接收者的攻击。

如何快速设置?

您的要求#5(没有第三方/云存储)和#6(没有IP /主机名泄露)存在相互冲突:要将文件传输到远程计算机,您可以直接连接,也可以不进行直接连接。 如果这样做,远程端将拥有您的IP地址(仅仅因为TCP / IP的工作方式); 如果你不这样做,那么假设你正在转发第三方进行转移,他们必须存储你的数据。

也就是说,您的请求有一些近似值。

F * EX:使用基于网络的第三方转移

F * EX服务器就是为此目的而诞生的。 从fex包描述 :

F * EX(Frams的快速文件交换)是一种服务,可用于允许Internet上任何地方的用户快速方便地交换非常大的文件。

发件人将文件上传到F * EX服务器,收件人会自动收到带有下载URL的通知电子邮件。

F * EX的主要特点:

  • 文件传输几乎无限制的文件大小
  • 发件人和收件人只需要一个电子邮件程序和一个网络浏览器(任何类型;他们不必安装任何软件)[…]
  • 免维护:除创建新的F * EX帐户外无需管理
  • 多个收件人只需要一个存储副本
  • F * EX使用HTTP,不需要防火墙隧道
  • 为命令行用户提供的shell客户端: fexsendfexget 。 ( fex-utils包)

据我所知,F * EX本身不进行加密,但您只需加密要用GPG发送的文件即可。

F * EX服务器完全是开源的,因此您只需在您信任的服务器上安装并运行它。

F EX主页详细说明了F EX与其他文件传输服务和协议的比较。

sendfile :跨UNIX计算机的异步文件传输

sendfile命令已经存在了大约10年:你在发送端和接收端安装它和附带的守护进程,然后传输就像输入一样简单:

 sendfile a.file user@otherhost 

此外, sendfile可以使用GPG自动加密文件(查找-pe-ps选项)。

但是,由于这会直接连接:

  • 接收计算机必须在某个时刻启动并运行,
  • 它必须能够接受sendfile端口上的连接,这意味着它应该可以通过公共IP访问
  • 它可以记录发件人的IP地址

sendfile是由F * EX的同一作者编写的(见上文),他们解释了为什么他们选择在sendfile主页上切换到基于HTTP的第三方服务的原因

自己动手:使用nc

仅使用netcat进行文件传输相对容易。

接收方,您运行:

 nc -l 9999 > myfile 

之后,在发送方,您运行:

 nc otherhost 9999 < myfile 

像往常一样,您应该在发送之前使用GPG加密文件(或者您可以使用管道即时执行此操作,如果您对shell很容易)。 您可以将9999替换为任何其他有效端口号(例如,一次进行多次传输)。

缺点:

  • 协调:您必须以正确的顺序在两端发出两个命令,因此发送方和接收方必须同时在线,并且它们必须协调,例如聊天或电话线。
  • 它必须能够接受9999端口上的连接,这意味着它应该可以通过公共IP访问
  • 接收端可以记录您的IP地址