日常在折腾 VPS 时,都会涉及到本地和服务器直接的文件传输,比如上传程序文件,或者拖几个文件回来修改之类。对于少量的小文件,那么 sftp 基本足够,但如果遇到文件较多,体积较大时,sftp 就显得力不从心了,传输效率低而且不支持断点续传,如果遇到个线路状况不太好的机子,用起来体验比较捉急。

这时候常见的办法则是在机子上安装 Nginx 这类 Web 服务器软件,然后就可以通过 IP 地址进行下载了,不过这类方法的缺点就是必须在服务器上装对应软件,但有时候不想在服务器上安装这些,就想图个简单直接,本文就是来说一说如何在不安装任何软件的情况下直接从 VPS 取回文件。


SimpleHTTPServer

现在的几大主流 Linux 发行版都自带了 Python 环境,而 Python 实际本身就内置了一个简易的 HTTP 服务器,称为 SimpleHTTPServer。

此工具的使用方法及其简单,切换到需要展示的目录,然后执行一句命令即可。

比如想共享/home/share 目录,那么就依次执行

cd /home/share
python -m SimpleHTTPServer

程序会直接开始运行,要退出的话直接按 Ctrl+C 即可。

如果是 Python3 环境下,此功能已经合并到了 http.server 模块中,命令变为:

python3 -m http.server

默认情况下会自动监听 8000 端口,使用 IP:8000 即可访问。如果要指定端口,则后面跟随需要的端口即可,比如监听 8888 端口:

python -m SimpleHTTPServer 8888

另外防火墙里注意还要放行对应端口,比如 CentOS7 里临时放行 8000 端口:

firewall-cmd --zone=public --add-port=8000/tcp     

#如果跟随--permanent 参数则为永久放行,否则重启失效

然后浏览器打开 IP+端口即可看到列表形式的页面了,如下图:

如果对应目录下有 index.html 文件,则会自动当做首页,显示此文件内容。

这种方法的优点是使用特别的简单,对 VPS 可以说是完全没有任何要求,只要是自带 Python 的系统,裸机就能实现文件共享。不过缺点也十分明显,下载只能单线程,遇到线路烂的机子,体验很差。


CuteHttpFileServer

CuteHttpFileServer/CHFS 是一个免费的 HTTP 服务器程序,支持平台广泛,除了 Windows 平台,对 MIPS 和 ARM 架构的 Linux 也都有支持。

官网:http://iscute.cn/chfs

程序本身也非常简单,就一个单文件,Windows 版本是有 GUI 界面的版本的,这里就说一下 Linux 下的使用。

在官网下载对应版本后,直接把程序文件丢到需要共享的目录下,然后切换到对应目录,先给与执行权限:

chmod +x chfs      #chfs 为默认程序名称

如果直接共享程序所在目录的话,其他默认参数的话,那么直接一句命令即可运行,程序默认监听 80 端口,注意防火墙放行对应端口即可。

如果要指定参数的话,可以参见程序官网说明,比如要指定端口的话,就跟随 port 参数:

./chfs --port=8000     #指定 8000 端口

要结束程序的话同样直接 Ctrl+C 即可。

运行后 SSH 窗口会提示对应信息,还支持 webdav 访问,地址为 IP+端口/webdav:

网页界面如图,可以看到界面比前一个 Python 自带组件可就漂亮多了,功能也很完善,文件夹支持打包下载,文件可以通过二维码共享等:

chfs 程序本身功能非常多,包括用户名访问,黑白名单,用户访问权限控制等一概齐全,具体参考官网即可。可修改的变量参数也有很多种,实际就是要用啥功能就在后面追加啥参数,非常的简单。


File Browser

File Browser 是一个 GO 语言编写的简单轻量的文件管理程序,日常经常会和其他项目搭配在一起使用,不过此程序本身也是有单独版的,这里说明一下单独版本的使用。

官网:https://filebrowser.org/

Github 项目地址:https://github.com/filebrowser/filebrowser

此程序比起上面两个就微微复杂一点了,运行需要额外的数据库来保存信息。

首先拉取程序,同时会自动安装到用户目录里:

curl -fsSL https://filebrowser.org/get.sh | bash

接着开始创建个数据库,运行以下 6 条指令写入配置:

#创建数据库文件 filebrowser.db,并存放在/etc/目录下
filebrowser -d /etc/filebrowser.db config init

#设定监听地址,一般默认设定成本机
filebrowser -d /etc/filebrowser.db config set --address 0.0.0.0

#设定监听端口,这里设为 8000
filebrowser -d /etc/filebrowser.db config set --port 8000

#设置默认语言为中文
filebrowser -d /etc/filebrowser.db config set --locale zh-cn

filebrowser -d /etc/filebrowser.db config set --branding.files "/"

#设置日志存放位置,这里也存放在/etc/目录下
filebrowser -d /etc/filebrowser.db config set --log /etc/filebrowser.log

#创建一个管理员用户,用户名为 admin,密码为 admin123
filebrowser -d /etc/filebrowser.db users add admin admin123 --perm.admin

写完数据库配置,然后使用以下命令运行程序即可:

filebrowser -d /etc/filebrowser.db

退出的话就是老规矩 Ctrl+C。

浏览器打开 IP+端口地址即可看到程序界面:

输入设定的用户名和密码登陆后即可看到文件目录:

默认情况下,在哪个目录启动的程序,默认就展示此目录的文件内容。比如在 home 目录下执行启动命令,那么默认文件列表就是列出 home 目录下的文件,使用比较灵活。

首次配置完毕后可以把数据库文件保存到本地,下次使用时直接把数据库丢到 VPS 上,然后拖个程序文件就能直接使用了。

File Browser 的功能比上面两个更加强大,图片视频这类可以在线预览,搭配 Caddy 这类可以实现很完善的功能。


以上基本由简到难说了三种程序的使用方法,三种程序各具特色,但总体使用难度都很简单,足以满足 VPS 上临时的文件传输需求,日常可根据实际情况选用。

骁龙 8cx Gen3 的 Windows 11 on ARM 体验

老早之前写了苹果 M1 虚拟机和初代骁龙 8cx 跑 Win11 ARM 版的体验,转眼都过去一年多了,现在来给这系列再续一笔。 最近为了体验下 8cx Gen3,买了台华...

阅读全文

Xbox One S 更换固态硬盘流程

记录一下给 Xbox One S 换硬盘的过程,虽然手头现在有 XSX 和 XSS 了,但 X1S 作为我第一台游戏机,还是陪我度过了几年美好时光的,所以如今固态硬盘一路下...

阅读全文

无线宝一代 64G 加速版编程器刷 Padavan

前年底买的一代京东无线宝挂到现在基本也没啥收益了,之前一天还能有个四五毛捞点电费,现在收益又挨了几轮刀后基本惨不忍睹了,白嫖那么多流量一个月到头来...

阅读全文

评论已经关闭。