日常在折腾 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 模块中,命令变为:

python -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 上临时的文件传输需求,日常可根据实际情况选用。

2222
Latest posts by 2222 (see all)

【娱乐】32M 内存 VPS 建站

两个多月前,在某商家处看到了个 32M 内存的 NAT VPS 小鸡,价格仅为 5 元人民币一季度,遂下了一单。然而下单后等了好几天迟迟没有开通,又加上购买时提示...

阅读全文

威联通 NAS 配置 NPS 内网穿透

上个礼拜看到威联通的 TS-453Bmin 在狗东又又又促销到了低价,索性入了一台来体验一下正经大厂的系统之类。之前 NAS 用的是捡来的矿渣播酷云,跑的 windows ...

阅读全文

Debian/Ubuntu/CentOS 的防火墙差异

写这篇文章的原因是之前和朋友讨论时,对 Linux 的防火墙问题产生了截然不同的观点,继续交流后才发现原来是各自常用的发行版不同,朋友日常都用 Ubuntu 居...

阅读全文

欢迎留言