CuteHttpFileServer / chfs 文件服务器,简易nas,支持http、webdav

软件名为CuteHttpFileServer ,官方简称 chfs。

原来论坛里也有人推荐过,不过没什么介绍,没人重视。在这里重新介绍一下,以小米路由为例子,并附上一些常见的配置、用法、说明。

开源的,LGPL v3协议,不过看起来源码已经比较旧,官网的版本比较新,而且隔三差五还会更新。建议用官网的。

这是一个跨平台的、开源、使用简单、支持http、webdav的文件服务器。

c++ 写的,只要知道设备的 CPU 类型,到官网上下载对应的编译二进制文件,就可以直接运行。所以不仅仅传统的 windows、完整的 linux 发行版、mac 能运行,像软路由、nas 一类精简、魔改的linux应该问题都不大。

  1. 准备

我这里用小米路由为例子。型号是小米路由 R1D。

先刷成开发板。然后申请开 ssh。

  1. 下载

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

找个位置,创建个chfs目录,我这里用/etc/chfs。

电脑、服务器的根据系统选择版本。如果是路由器,例如很多是魔改openwrt就属于精简linux,根据cpu选对应版本,多数是arm、mips。

小米路由R1D就选 chfs-linux-arm-2.0.zip

使用命令 wget http://iscute.cn/tar/chfs/2.0/chfs-linux-arm-2.0.zip

  1. 配置

下完压缩包,命令解压unzip chfs-linux-arm-2.0.zip

得到 chfs 文件

删除下载的压缩包,已经没有必要留着 rm chfs-linux-arm-2.0.zip

编写配置文件 vi /etc/chfs/config.ini

按 i,是编辑模式。

输入以下内容,注意自己替换一下用户名密码

port=81
path=/userdisk/data/
rule=::|用户名:密码:d
log=/etc/chfs/logs
html.title=miroute
html.notice=miroute
image.preview=true
ssl.cert=
ssl.key=
allow=

小白就改一下用户名密码。老司机的可以看一下参数解释。

port 是端口。

path 是路径,/ 也是可以的,不过不太安全。

rule 是用户权限与目录,比较复杂,详细看官网,我只简单说。| 是分割每一条规则,:是分割参数,第一个参数用户名,第二个参数密码,第三个参数是根目录权限。一二参数空就是匿名用户。权限有4种,""(不可访问),“R”(只读),“W”(读写),“D”(写+删除)。第四、五参数,是子目录和对应权限。

log 就是日志文件位置。

html.title 是浏览器标签页上的标题。

html.notice 是网页上第一行描述文字。

image.preview 是开启图片预览功能。

allow 是控制ip黑白名单,具体看官网。

ssl.certssl.key 是开 https 用的。

保存:按 esc 退出编辑模式,输入:wq 保存并退出。

给 chfs 授权,chmod -R 755 chfs

这时候我们可以手动运行一下,测试:

nohup /etc/chfs/chfs --file=/etc/chfs/config.ini &

正常情况下会显示这样的文字

浏览器输入路由ip和端口就能打开网页操作文件

  1. 开机启动

进入开机脚本的目录:cd /etc/init.d

创建文件 chfs:vi chfs

输入以下内容:

#!/bin/sh /etc/rc.common
START=99
start() {
    /etc/chfs/chfs --file=/etc/chfs/config.ini
}
stop() {
    echo 233 >>/userdisk/data/log
}

保存退出

给脚本授权: chmod -R 777 chfs

到目录 cd /etc/rc.d

建立启动软链接 ln -s /etc/init.d/chfs /etc/rc.d/S99chfs

重启路由,测试是否正常开机自启动。

  1. 其他

windows建议可以用raiddrive做客户端,支持协议多,免费还没什么限制。

Android建议可以用es文件浏览器做客户端,但是设置有点奇葩,webdav协议竟然藏在ftp分类里。播放器建议可以用nplayer。

电视可以用kodi和nplayer。

如果家里宽带能申请到公网地址,可以做个ddns,然后在外面也能访问到路由的文件。

1赞

path似乎不支持虚拟目录?

linux下我没测试过虚拟目录。windows是下mklink可以