哪种轻量级HTTP或FTP服务器适合简单文件传输?[关闭]


25

此问题是如何将文件复制到不受信任的计算机的后续问题,因为似乎没有专用于此目的的应用程序,所以我现在正在寻找http或ftp服务器作为替代方案。更具体地说,我正在寻找一种轻量级服务器,该服务器可用于计算机之间的简单一次性文件传输。我的意思是说,它应该充当rsync / scp的替代品,以将文件从一台计算机传输到另一台计算机,而不是作为经典的Web服务器。此外,它应该:

  • 在用户空间中运行
  • 易于配置(即没有配置文件,一切都可以通过命令行执行)
  • 支持用户名/密码
  • 支持继续下载
  • 支持导出单个文件而不是整个目录

dbr对上一个问题的答案接近了,但当然只是临时的hack,缺少许多有用的功能。


只需使用Apache2,它比python SimpleHTTPServer快4倍左右。
o0omycomputero0o

Answers:


31

我经常使用这种快速的Python hack通过HTTP服务目录。

python -m SimpleHTTPServer &

将提供当前目录。

默认情况下,它绑定到端口8000。

要选择另一个端口:

python -m SimpleHTTPServer 9090 &

如果在* nix上选择低于1024的端口,则可能需要root特权,否则bind()将失败。


3
真的不确定为什么要关闭此问题。问题和答案都非常有用。
merlin2011 2013年

8
或等效的Python 3:python3 -m http.server
Eliran Malka,2014年

6

SO的某人将我指向了Woof。python中的最小httpd,具有针对此类用途进行了优化的接口。它实际上并不能满足您的所有要求,但是通过允许您指定它将连接的次数,它可以使您使用“准备好了吗?我现在正在启动服务器。” 确保转移的方法。

要允许一(1)个连接thisfile在端口8080 上下载,您只需运行

$ woof thisfile

就这么简单。

这是颇受虐待的原稿。如果喜欢,请为Nate投票。


同样适用于“上传”(如果您需要用户自己不能安装服务器的文件)
golimar

3

您可以尝试通过Ubuntu存储库提供的webfs

Webfs(又名webfsd)是用于纯静态内容的简单HTTP服务器。例如,您可以使用它通过HTTP服务FTP服务器的内容。它也可以用于通过在几秒钟内启动httpd服务器来快速导出某些文件,而无需先编辑配置文件。

另一个选择是HFS(Http文件服务器),它是Windows应用程序,可以通过Wine正常运行

HFS(Http文件服务器)是文件共享软件,可让您发送和接收文件。您可以将此共享限制为仅几个朋友,或者向全世界开放。HFS与经典文件共享不同,因为没有网络。[...]因为它实际上是一个Web服务器,所以您的朋友可以像使用Web浏览器从网站上下载文件一样下载文件。


1
这里的不赞成票是怎么回事?OP要求提供简单的http服务器,并且人们已经提供了它们。那是什么问题呢?
dmckee

HFS还可以很好地用于“上传”(如果您需要用户自己不能安装服务器的文件)
golimar

1

如果您不愿意接受替代方案,请忽略,但是您愿意安装没有任何首选项的HTTP服务器这一事实向我表明,您想要完成传输文件的工作,而不是如何完成文件-

我可以建议您安装FTP服务器吗?

它可以让您完成所需的所有工作,并且通常很容易设置,如果需要,您甚至可以将端口配置为使用80。


1
FTP当然也可以,但是我知道的大多数FTP服务器都不是轻量级的,并且带有很多丑陋的额外包that,使它们不适合简单的一次性文件传输(即,需要root权限,在计算机上的帐户才能访问密码) ,目录处理不灵活等)。使用Pure-FTPd,我什至不知道如何以非root用户身份启动它。
Grumbel

1
同意 出于某种原因,它称为文件传输协议。另一方面,HTTP是超文本传输​​协议。您可能现在对超文本不感兴趣。
李B

1
FTP并不是一个愚蠢的主意,但是您是否有一个建议,可以根据OP的要求轻松设置?
dmckee

1
http的优点是每台通用计算机上都装有网络浏览器,用户可以轻松使用它。好的,它也支持ftp,但是如果您仍然要使用网络浏览器...
dmckee

2
Wil,我们在这里不是在谈论像Apache这样的通用服务器。我们正在谈论的是专用的最小工具。Woof使chttpd看起来很沉重
dmckee

0

我可以推荐http://code.google.com/p/pyftpdlib/吗?
它轻巧,下载源代码并编写Python脚本(只需复制主页上的快速入门部分就够了,只需5-6行,设置用户名和密码,主目录等)。
我将其用于个人PC到PC文件传输(在Ubuntu Hardy上)。一个已知的问题(我可以忍受)是它不能很好地处理Unicode(非ASCII)。


0

答案很简单:thttpd。它赢得了性能,内存使用和安全性方面的简化。所谓安全,是指凭借称职的设计而不是做任何愚蠢的事情来确保它的安全,而不是说它具有各种各样的“安全”特征。就大小和简单性而言,它也接近最佳。

如果您需要更小,更简单的产品,BusyBox httpd可以提供满足您需求的小程序。

我不确定它们是否满足您的一些其他要求,例如提供单个文件,但是您可以使用将符号链接放在http根目录中的包装器来实现。但是,如果使用thttpd执行此操作,则必须禁用符号链接限制。

(我知道这个问题很旧,但这在Google上是最高的结果,现有的答案绝非轻量级。)


2
thttpd以前,它也是我最喜欢的答案,但是由于它“孤立,具有发行关键性的错误并且死在上游” ,因此在2011年从Debian,Ubuntu和RedHat中删除了它。我不再推荐了。
poolie 2013年

0

您也可以尝试HFS(也称为HTTP文件服务器)(http://www.rejetto.com/hfs/),尽管它是Windows应用程序,但据说可以使用WINE很好地工作。它的维护成本非常低,甚至完全不知道文件服务器是什么的新手都可以轻松使用它。它支持拖放功能,您甚至可以控制哪些IP地址可以访问文件,并支持用户帐户和下载速度控制。


1
那如何回答这个问题?更加详细一些。
用户99572在
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.