chfs安装
沙福林 2023-12-30 18:25:56
chfs
安装教程
文件共享
ftp
CuteHttpFileServer/chfs是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。它具有以下特点:
- 单个文件,核心功能无需其他文件
- 跨平台运行,支持主流平台:Windows,Linux和Mac
- 界面简洁,简单易用
- 支持扫码下载和手机端访问,手机与电脑之间共享文件非常方便
- 支持账户权限控制和地址过滤
- 支持快速分享文字片段
- 支持webdav协议 与其他常用文件共享方式(如FTP,飞秋,网盘,自己建站)相比,具有使用简单,适用场景更多的优点,在个人使用以及共享给他人的场景中非常方便快捷。
# windows安装
# 1. 下载chfs
- 官网 (opens new window) | 官网仓库 (opens new window)
直gui-chfs v3.1 (opens new window)官网最新版,本文章windows版本使用
# 2. 解压使用
解压后,并放置在合适的位置,这里我用的虚拟机,解压文件最终放在C:\Program Files\chfs下,其他人可根据自己习惯选择位置 ,双击chfsgui.exe即可打开软件。
打开后

# 3. 配置共享目录
- 添加一个目录,并启动chfs服务,
- 设置游客权限为
只读,即只能 查看、下载。不能进行 上传、新建、删除等操作。 - 添加一个账户
shafulin,并设置权限为读写,即可以查看、下载、上传、新建、删除等操作。 - 服务启动后,界面右上角出现的地址,即为服务访问地址,直接点击访问,例如此处的 http://10.211.55.3 (opens new window)
- 游客访问
一般会提供给游客一个默认的共享目录,如
C:\share\公共目录,可以直接使用,仅支持查看/下载,不支持上传,也可以在设置中修改。
- 登录访问
登录后,可以看到自己的共享目录,除了游客权限外,可以进行上传/删除等操作,也可以在设置中修改。
![]()
# 4. 注意事项
- 注意端口,默认端口为
80,如果端口被占用,可以修改端口号,在chfsgui.exe中修改即可。 - 注意权限,默认游客权限为
读写,如果只是为了共享文件,没有重要文件,可以不修改权限,直接使用即可。
# 5. 用途
- 个人使用,可以将自己的文件放在共享目录下,方便查看和分享。
- 静态文件管理,有些时候发布静态文件,可以使用chfs进行管理。这样前端也能自己部署服务了
# linux安装
# 1. 下载chfs
- 官网 (opens new window) | 官网仓库 (opens new window)
直chfs-linux-amd64-3.1 (opens new window)官网最新版,本文章使用
wget http://iscute.cn/tar/chfs/3.1/chfs-linux-amd64-3.1.zip
1
# 2. 解压使用
# 解压文件
unzip chfs-linux-amd64-3.1.zip
# 文件重命名
mv chfs-linux-amd64-3.1 chfs
# 添加可执行权限
chmod +x chfs
1
2
3
4
5
6
2
3
4
5
6
# 4. 配置文件
在/usr/local/目录下,创建目录,并将解压好的chfs文件放在该目录下,
# 创建目录
mkdir -p /usr/local/chfs
mv chfs /usr/local/chfs
# 下载默认配置文件
cd /usr/local/chfs
# 官方下载地址,wget http://iscute.cn/asset/chfs.ini
wget http://shafulin.sxszck.com/znote/conf/chfs/chfs.ini
1
2
3
4
5
6
7
2
3
4
5
6
7
修改其中一些配置,例如端口号,共享目录等。 原版配置文件 参考,修改以下常用配置项
# 监听端口,默认是80,可能会和本地nginx冲突,建议更换一个端口
port=7778
# 共享根目录,通过字符'|'进行分割,例如配置两个目录地址:/home/user/share1|/home/user/share2
path=/opt/mnt/static/share1|/opt/mnt/static/share2
# 设置日志文件地址
log=/usr/local/chfs/chfs.log
# 网页标题
html.title=文件共享
# 网页顶部的公告板。可以是文字,也可以是HTML标签,此时,需要适用一对``(反单引号,通过键盘左上角的ESC键下面的那个键输出)来包住所有HTML标签。几个例子:
# 1,html.notice=内部资料,请勿传播
# 2,html.notice=`<img src="https://mat1.gtimg.com/pingjs/ext2020/qqindex2018/dist/img/qq_logo_2x.png" width="100%"/>`
# 3,html.notice=`<div style="background:black;color:white"><p>目录说明:</p><ul>一期工程:一期工程资料目录</ul><ul>二期工程:二期工程资料目录</ul></div>`
html.notice=`内部资料,请勿传播`
#----------------- 账户及控制规则 -------------------
# [xxx] xxx即为账户名, 访客的用户名为guest
# password 账户密码
# rule.default 账户对所有的目录和文件的访问权限,但可以针对任意子目录进行重新设定访问权限,以覆盖默认的权限
# rule.none 表示对哪些子目录设置为不可访问的权限,多个目录使用字符'|'分割,也可以分为多行。注意:该子目录本身也不可访问!
# rule.r 表示对哪些子目录设置为读权限,多个目录使用字符'|'分割,也可以分为多行。注意: 该子目录本身不受影响,影响的只是它所包含的目录和文件!
# rule.w 表示对哪些子目录设置为写权限,多个目录使用字符'|'分割,也可以分为多行。注意: 该子目录本身不受影响,影响的只是它所包含的目录和文件!
# rule.d 表示对哪些子目录设置为最高访问权限,多个目录使用字符'|'分割,也可以分为多行。注意: 该子目录本身不受影响,影响的只是它所包含的目录和文件!
#
# 示例:
# [foo]
# password=bar
# rule.default=r
# rule.none=d:\公司制度|d:\财务票据
# rule.r=d:\施工项目\2021年
# rule.r=d:\施工项目\2022年
# rule.d=d:\个人目录\foo
#
# 该账户名为foo,密码为bar,默认访问权限是读权限,但账户没有“d:\公司制度”和“d:\财务票据”的访问权限,且
# 对“d:\施工项目\2021年”和“d:\施工项目\2021年”只有读权限,对“d:\个人目录\foo”有最高访问权限。
#
#设置游客不能查看,根据自己情况选择配置
[guest]
password=
rule.default=
rule.none=/opt/mnt/static/share1|/opt/mnt/static/share2
rule.r=
rule.w=
rule.d=
# 设置一个有全部权限的账户,这里密码不能采用太多特殊符号,否则会识别不了,建议就字母+数字
[shafulin]
password=qazwsxedc123
rule.default=w
rule.none=
rule.r=
rule.w=
rule.d=
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# 5. 编写脚本
封装自定义命令chfs-start,chfs-stop,方便启动/停止chfs服务
# 创建chfs-start命令
cat > chfs-start << EOF
#!/bin/bash
echo 切换到chfs目录
cd /usr/local/chfs
echo 启动chfs服务
nohup ./chfs -file chfs.ini>chfs.log 2>&1 &
# 启动后查看日志
tail -100f /usr/local/chfs/chfs.log
EOF
# 创建chfs-stop命令
cat > chfs-stop << EOF
#!/bin/bash
echo 停止chfs服务
ps -ef | grep chfs | grep -v grep | awk '{print $2}' | xargs kill -9
EOF
# 添加可执行权限
chmod +x chfs-start
chmod +x chfs-stop
# 添加文件到全局命令里
mv chfs-start /usr/local/bin/
mv chfs-stop /usr/local/bin/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 6. 访问
# 启动服务
chfs-start
1
2
2
根据日志打印地址,访问chfs服务,访问地址:服务ip:7778 

# 7. 配置nginx代理(可忽略)
根据自己需要,判断是否配置,我这里对外只暴露80端口,所以需要添加额外代理,这里提供两种配置方式,一种给带域名的,一种给ip方式的
- ip方式
在http-server 端口80 中添加以下配置,最终访问 http://服务器ip/chfs-server/ (opens new window)
# chfs页面访问
location /chfs-server/ {
proxy_pass http://127.0.0.1:7778/;
}
# chfs接口访问
location /chfs/ {
proxy_pass http://127.0.0.1:7778/chfs/;
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 域名方式
在http中添加以下配置,
abc.com为你自己的域名,最终访问 http://chfs-server.abc.com (opens new window)
server {
listen 80;
server_name chfs-server.abc.com;
location / {
proxy_pass http://127.0.0.1:7778/;
}
# chfs接口访问
location /chfs/ {
proxy_pass http://127.0.0.1:7778/chfs/;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12

