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

官网:http://iscute.cn/chfs
GitHub:GitHub - docblue/chfsgui: This is just a GUI WRAPPER for chfs(cute http file server)
原来论坛里也有人推荐过,不过没什么介绍,没人重视。在这里重新介绍一下,以小米路由为例子,并附上一些常见的配置、用法、说明。

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

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

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

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

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

找个位置,创建个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

下完压缩包,命令解压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.cert 和 ssl.key 是开 https 用的。

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

给 chfs 授权,chmod -R 755 chfs

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

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

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

图片
图片
774×730 65.9 KB
浏览器输入路由ip和端口就能打开网页操作文件

图片
图片
1713×1007 70.5 KB
开机启动
进入开机脚本的目录: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

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

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

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

电视可以用kodi和nplayer。

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


下面是一个稍复杂点的共享配置,针对不同用户,开放了不同的文件夹访问权限,大家可以举一反三,照猫画虎。
--rule=“:::public:RW|admin:123456:RWD|guest:guest::public:RW:video:R”
解释如下:
rule=:::public:RW
//匿名用户无用户名和密码,可以访问共享目录下的public,对该文件夹的权限为“读写”

rule=admin:123456:RWD
//admin,可以访问共享目录下的所有文件夹,权限为“读写删”。

rule=guest:guest::public:RW:video:R
//访客用户guest,可以访问共享目录下的video,权限为“只读”,还可以访问public,权限为“读写”。

//此配置的目录结构示例:

// D:\share (admin可以完全访问下面所有文件夹,权限为读写删)
// |___public (匿名用户仅可访问此文件夹,可以读写)(guest用户可访问此文件夹,可以读写)
// |___image
// |___video (guest用户可访问此文件夹,只读)
// |___music
// |___book
// |___software
// |___document
// |___temp

懒得复制了。魔改在这里
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8260783&highlight=chfs

#---------------------------------------

配置文件在下面
chfs.zip