如何在Linux中通过HTTP快速获取文件和文件夹

时间:2020-03-21 11:44:48  来源:igfitidea点击:

今天,我遇到了各种各样的方法,可以通过Web浏览器为局域网中的其他系统提供单个文件或者整个目录。
我在Ubuntu测试机上测试了几种方法,如下所述,它们都工作正常。
如果我们想知道如何在Linux中通过HTTP轻松快速地提供文件和文件夹,以下方法之一肯定会有所帮助。

在Linux中通过HTTP服务文件和文件夹

免责声明:此处给出的所有方法均应在安全的局域网中使用。
由于这些方法没有任何安全性机制,因此不建议在生产中使用它们。
你被警告了!

方法1-使用simpleHTTPserver(Python)

我们已经写了一个简短的教程来设置一个简单的http服务器,以在下面的链接中立即共享文件和目录。
如果系统安装了Python,则此方法非常方便。

方法2-使用Quickserve(Python)

此方法专门用于Arch Linux及其变体。
检查以下链接以获取更多详细信息。

  • 如何在Arch Linux中即时共享文件和文件夹

方法3-使用Ruby

在这种方法中,我们使用Ruby在类似Unix的系统中通过HTTP提供文件和文件夹。

安装Ruby后,转到我们要在网络上共享的目录,例如theitroad:

$cd theitroad

并且,运行以下命令:

$ruby -run -ehttpd . -p8000
[2016-08-10 16:02:55] INFO WEBrick 1.4.2
[2016-08-10 16:02:55] INFO ruby 2.5.1 (2016-03-29) [x86_64-linux]
[2016-08-10 16:02:55] INFO WEBrick::HTTPServer#start: pid=5859 port=8000

确保在路由器或者防火墙中打开了端口8000。
如果该端口已被某些其他服务使用,请使用其他端口。

现在,我们可以使用URL http://<IP地址>:8000 /从任何远程系统访问此文件夹的内容。

要停止共享,请按CTRL + C。

方法4-使用Http服务器(NodeJS)

Http-server是用NodeJS编写的简单的,可立即投入生产的命令行http-server。

它需要零配置,可用于通过Web浏览器即时共享文件和目录。

安装NodeJS后,运行以下命令以安装http-server。

$npm install -g http-server

现在,转到任何目录并通过HTTP共享其内容,如下所示。

$cd theitroad
$http-server -p 8000
Starting up http-server, serving ./
Available on:
  http://127.0.0.1:8000
  http://192.168.225.24:8000
  http://192.168.225.20:8000
Hit CTRL-C to stop the server

现在,我们可以使用URL http://<ip-address>:8000从网络中的本地或者远程系统访问此目录的内容。

要停止共享,请按CTRL + C。

方法5-使用Miniserve(Rust)

Miniserve是另一个命令行实用程序,可让我们通过HTTP快速提供文件。

这是用Rust编程语言编写的非常快速,易于使用的跨平台实用程序。
与上述实用程序/方法不同,它提供身份验证支持,因此我们可以为共享设置用户名和密码。

安装Rust后,运行以下命令来安装miniserve:

$cargo install miniserve

或者,我们可以从发行版页面下载二进制文件并使其可执行。

$chmod +x miniserve-linux

然后,我们可以使用命令运行它(假设miniserve二进制文件已下载到当前工作目录中):

$./miniserve-linux <path-to-share>

用法

服务目录:

$miniserve <path-to-directory>

例子:

$miniserve /home/sk/theitroad/
miniserve v0.2.0
Serving path /home/sk/theitroad at http://[::]:8080, http://localhost:8080
Quit by pressing CTRL-C

现在,我们可以使用URL http://localhost:8080从本地系统本身和/或者使用URL http://<ip-address>:8080从远程系统访问共享。

要提供单个文件:

$miniserve <path-to-file>

例子:

$miniserve theitroad/file.txt

提供带有用户名和密码的文件/文件夹:

$miniserve --auth igi:123 <path-to-share>

绑定到多个接口:

$miniserve -i 192.168.225.1 -i 10.10.0.1 -i ::1 -- <path-to-share>

如我们所见,我仅给出了5种方法。
但是,本教程结尾处的链接中提供的其他方法很少。
也去测试它们。
另外,不时添加书签并重新访问它,以检查将来列表中是否有任何新添加的内容。