几种快速下载 VPS 文件的方法
日常在折腾 VPS 时,都会涉及到本地和服务器直接的文件传输,比如上传程序文件,或者拖几个文件回来修改之类。对于少量的小文件,那么 sftp 基本足够,但如果遇到文件较多,体积较大时,sftp 就显得力不从心了,传输效率低而且不支持断点续传,如果遇到个线路状况不太好的机子,用起来体验比较捉急。
这时候常见的办法则是在机子上安装 Nginx 这类 Web 服务器软件,然后就可以通过 IP 地址进行下载了,不过这类方法的缺点就是必须在服务器上装对应软件,但有时候不想在服务器上安装这些,就想图个简单直接,本文就是来说一说如何在不安装任何软件的情况下直接从 VPS 取回文件。
SimpleHTTPServer
现在的几大主流 Linux 发行版都自带了 Python 环境,而 Python 实际本身就内置了一个简易的 HTTP 服务器,称为 SimpleHTTPServer。
此工具的使用方法及其简单,切换到需要展示的目录,然后执行一句命令即可。
比如想共享/home/share 目录,那么就依次执行
1 |
|
程序会直接开始运行,要退出的话直接按 Ctrl+C 即可。
如果是 Python3 环境下,此功能已经合并到了 http.server 模块中,命令变为:
1 |
|
默认情况下会自动监听 8000 端口,使用 IP:8000 即可访问。如果要指定端口,则后面跟随需要的端口即可,比如监听 8888 端口:
1 |
|
另外防火墙里注意还要放行对应端口,比如 CentOS7 里临时放行 8000 端口:
1 |
|
然后浏览器打开 IP+端口即可看到列表形式的页面了
如果对应目录下有 index.html 文件,则会自动当做首页,显示此文件内容。
这种方法的优点是使用特别的简单,对 VPS 可以说是完全没有任何要求,只要是自带 Python 的系统,裸机就能实现文件共享。不过缺点也十分明显,下载只能单线程,遇到线路烂的机子,体验很差。
CuteHttpFileServer
CuteHttpFileServer/CHFS 是一个免费的 HTTP 服务器程序,支持平台广泛,除了 Windows 平台,对 MIPS 和 ARM 架构的 Linux 也都有支持。
程序本身也非常简单,就一个单文件,Windows 版本是有 GUI 界面的版本的,这里就说一下 Linux 下的使用。
在官网下载对应版本后,直接把程序文件丢到需要共享的目录下,然后切换到对应目录,先给与执行权限:
1 |
|
如果直接共享程序所在目录的话,其他默认参数的话,那么直接一句命令即可运行,程序默认监听 80 端口,注意防火墙放行对应端口即可。
如果要指定参数的话,可以参见程序官网说明,比如要指定端口的话,就跟随 port 参数:
1 |
|
要结束程序的话同样直接 Ctrl+C 即可。
运行后 SSH 窗口会提示对应信息,还支持 webdav 访问,地址为 IP+端口/webdav
网页界面如图,可以看到界面比前一个 Python 自带组件可就漂亮多了,功能也很完善,文件夹支持打包下载,文件可以通过二维码共享等:
chfs 程序本身功能非常多,包括用户名访问,黑白名单,用户访问权限控制等一概齐全,具体参考官网即可。可修改的变量参数也有很多种,实际就是要用啥功能就在后面追加啥参数,非常的简单。
File Browser
File Browser 是一个 GO 语言编写的简单轻量的文件管理程序,日常经常会和其他项目搭配在一起使用,不过此程序本身也是有单独版的,这里说明一下单独版本的使用。
Github 项目地址:https://github.com/filebrowser/filebrowser
此程序比起上面两个就微微复杂一点了,运行需要额外的数据库来保存信息。
首先拉取程序,同时会自动安装到用户目录里:
1 |
|
接着开始创建个数据库,运行以下 6 条指令写入配置:
1 |
|
写完数据库配置,然后使用以下命令运行程序即可:
1 |
|
退出的话就是老规矩 Ctrl+C。
浏览器打开 IP+端口地址即可看到程序界面:
输入设定的用户名和密码登陆后即可看到文件目录:
默认情况下,在哪个目录启动的程序,默认就展示此目录的文件内容。比如在 home 目录下执行启动命令,那么默认文件列表就是列出 home 目录下的文件,使用比较灵活。
首次配置完毕后可以把数据库文件保存到本地,下次使用时直接把数据库丢到 VPS 上,然后拖个程序文件就能直接使用了。
File Browser 的功能比上面两个更加强大,图片视频这类可以在线预览,搭配 Caddy 这类可以实现很完善的功能。
以上基本由简到难说了三种程序的使用方法,三种程序各具特色,但总体使用难度都很简单,足以满足 VPS 上临时的文件传输需求,日常可根据实际情况选用。