用 Caddy FileManager扩展 非常简单的部署 私人网盘/在线文件

本站转载自https://doub.io/jzzy-3/

Caddy FileManager扩展介绍

FileManager 是基于Caddy 的扩展。它提供文件管理界面,可用于 上传/下载/删除/预览和重命名 等该目录中的文件。

支持 执行 Linux命令。

支持 上传文件(不支持文件夹)

支持 管理 多用户权限。

支持 搜索 文件/文件夹。

支持 批量 压缩文件下载。

支持 在线浏览 图片/文本/视频等文件。

支持 新建/重命名/移动/编辑/删除 文件和文件夹等操作。

部署简单。

等等 …

Caddy 文档:https://caddyserver.com/docs/filemanager

Github 项目:https://github.com/hacdias/caddy-filemanager

搜索 文件/文件夹和执行 Linux命令不知道是我姿势错误,还是其他原因,一直没什么反应和效果……

前面的几篇教程,我都用到了Caddy,大家应该都能看出来Caddy的易用性,所以本篇教程也很简单,唯一的难点就是 对一些扩展参数的理解,所以我会提供一些示例,不懂的也可以留言。

安装 Caddy

注意:Caddy脚本今天更新了 v1.0.1 版本,新增安装时可选 扩展参数的功能,所以使用旧版本Caddy的,请卸载重装!

wget -N --no-check-certificate https://softs.pw/Bash/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install filemanager

# 如果上面这个脚本无法下载,尝试使用备用下载:

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install filemanager

安装Caddy成功后,继续新建一个用于使用的虚拟主机文件夹,例如 file(可以自己改):

mkdir /usr/local/caddy/www && mkdir /usr/local/caddy/www/file

配置 Caddy

首先,我们先讲一下,FileManager扩展各个参数。

filemanager [baseurl] {
show directory
styles filepath
allow_new [true|false]
allow_edit [true|false]
allow_commands [true|false]
allow_command command
block_command command
allow [url|dotfiles]
allow_r regex
block [url|dotfiles]
block_r regex
}

filemanager 的参数 baseurl 是要流量的文件管理器的URL。默认是 / (比如 /doubi 那么访问入口就是http://ip/doubi )。

show 的参数 directory 是要浏览的文件管理器的文件夹路径,可以使相对或绝对路径。默认是 ./ (服务器上面文件的绝对或相对路径)。

styles 的参数 filepath 是式样表文件的相对或绝对路径,该文件不需要从网络访问(一般可以无视)。

allow_new 是设置 创建 新文件或新文件夹 的权限开关,默认是允许 true (不允许则是 false)。

allow_edit 是设置 编辑/重命名/删除 文件或文件夹 的权限开关,默认是允许 true (不允许则是 false)。

alow_commands 是设置 执行Linux命令 的权限开关,默认是允许 true (不允许则是 false)。

allow_command 是允许执行的 Linux命令。

block_command 是禁止执行的 Linux命令。

allow_command 和 block_command 的参数 command 是Linux命令,默认运行 git/svn/hg (比如这些命令:cp / mv / rm 等)。

allow 是允许访问特定文件或文件夹,可以使用 dotfiles 来允许访问文件或文件夹。

block 是阻止访问特定文件或文件夹,可以使用 dotfiles 来阻止访问文件或文件夹,被阻止的文件或者文件夹将不会显示在 文件管理界面。

allow_r 和 block_r 是上面命令的扩展,可以使用 正则表达式,正则表达式用于匹配 URL,而不是内部路径文件。

我也只是临时了解了一下这个扩展,试了下,就 allow 和 block 我搞不懂,下面我就要根据我的理解来写出各种示例供大家参考和理解了。

配置示例

以下示例中,虚拟主机文件夹皆为 /usr/local/caddy/www/file

示例域名皆为 toyoo.ml

IP HTTP

本示例是,绑定虚拟主机为IP(即通过IP访问),HTTP协议(80端口)。

不需要用户名和密码即可访问,允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 mv。

echo ":80 {
root /usr/local/caddy/www/file
gzip
filemanager / {
show /usr/local/caddy/www/file
allow_new true
allow_edit true
allow_commands true
allow_command mv
}
}" > /usr/local/caddy/Caddyfile

域名 HTTP

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTP协议(80端口)。

不需要用户名和密码即可访问,允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 mv。

echo "http://toyoo.ml {
root /usr/local/caddy/www/file
gzip
filemanager / {
show /usr/local/caddy/www/file
allow_new true
allow_edit true
allow_commands true
allow_command mv
}
}" > /usr/local/caddy/Caddyfile

域名 HTTPS

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTPS协议(443端口)。

不需要用户名和密码即可访问,允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 mv。

如果你有 SSL证书和密匙的话,把 SSL证书(xxx.crt)和密匙(xxx.key)文件放到 /root 文件夹下(也可以是其他文件夹,自己改下面代码),然后这样做:

echo "https://toyoo.ml {
root /usr/local/caddy/www/file
tls /root/xxx.crt /root/xxx.key
gzip
filemanager / {
show /usr/local/caddy/www/file
allow_new true
allow_edit true
allow_commands true
allow_command mv
}
}" > /usr/local/caddy/Caddyfile

如果你没有 SSL证书和密匙,那么你可以这样做:

下面的 xxxx@xxx.xx 改成你的邮箱,同时需要注意的是,申请 SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则 Caddy会申请并配置失败!

echo "https://toyoo.ml {
root /usr/local/caddy/www/file
tls xxxx@xxx.xx
gzip
filemanager / {
show /usr/local/caddy/www/file
allow_new true
allow_edit true
allow_commands true
allow_command mv
}
}" > /usr/local/caddy/Caddyfile

域名 HTTP重定向 HTTPS

本示例是,域名HTTP重定向为HTTPS。

当你是手动指定 SSL证书和密匙 来配置的话,Caddy只会监听 443端口(https),并不会自动设置 80端口(http)的重定向,如果要做重定向的话,可以这样做:

下面的示例代码中,是把 http://toyoo.ml 重定向到了 https://toyoo.ml 。

echo "http://toyoo.ml {
redir https://toyoo.ml{url}
}
https://toyoo.ml {
gzip
tls /root/xxx.crt /root/xxx.key
…
}" > /usr/local/caddy/Caddyfile

单用户/多用户 说明

这里会简单解释一下 单用户/多用户 配置后,权限的分配问题。

filemanager {

# 在前面是设定 全局配置的,所有用户都会继承全局配置。

allow_commands false # 这个全局配置代表所有用户都无法执行 Linux命令。

allow_new false # 这个全局配置代表所有用户都无法新建 文件或文件夹。

user1:

# 用户名下面就是该用户 user1 的具体配置,只针对该用户。

# 该用户的配置可以覆盖 同名的全局配置。

allow_commands trus # 这个用户配置,会覆盖全局配置,user1 用户允许执行 Linux命令。

# 该用户 user1 无法新建 文件或文件夹。

user2:

# 用户名下面就是该用户 user2 的具体配置,只针对该用户。

# 该用户的配置可以覆盖 同名的全局配置。

allow_new true # 该用户 user2 可以新建 文件或文件夹,覆盖全局配置。

}

设置用户名和密码(单用户)

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTP协议(80端口)。

需要用户名和密码登录( user/doub.io ),允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 cp 。

因为只有一个用户,所以不需要设置全局配置。

echo "http://toyoo.ml {
root /usr/local/caddy/www/file
gzip
basicauth / user doub.io
filemanager / {
show /usr/local/caddy/www/file
user:
allow_new true
allow_edit true
allow_commands true
allow_command cp
}
}" > /usr/local/caddy/Caddyfile

多用户配置

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTP协议(80端口)。

需要用户名和密码登录,多用户,分别是 admin 和 user 用户。

admin 用户(相当于管理员)允许 允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令cp 。

user 用户(相当于游客)只允许浏览 文件管理器的内容和信息,其他任何操作都无法执行。

echo "http://toyoo.ml {
root /usr/local/caddy/www/file
gzip
basicauth / admin doubi233
basicauth / user doub.io
filemanager / {
show /usr/local/caddy/www/file
allow_commands false
admin:
allow_new true
allow_edit true
allow_commands true
allow_command cp
user:
allow_new false
allow_edit false
}
}" > /usr/local/caddy/Caddyfile

修改完配置后,请重启 Caddy 以生效。

service caddy restart

然后尝试访问 IP或域名 查看是否正常。

FileManager 使用说明

界面介绍

进入文件管理界面后,界面大概如下(可能随版本更新会有差别)。

顶部中间 是 搜索栏 和 Linux命令执行栏。

顶部右边 是退出当前用户的按钮(如果设置了用户账号)。

中部左边 是一个可以返回上一级目录的按钮和当前文件夹名字。

中部右边 是一系列的操作按钮,在不同情况下会不同,当前是选择文件的情况下。

操作按钮从左到右分别是:

新窗口 打开文件或下载文件

移动 文件/文件夹

重命名 文件/文件夹

切换 显示状态(方块和列表)

上传 文件(不支持文件夹)

压缩 下载(这个是会把你选择的文件/文件夹 压缩到一个文件然后下载,CTRL + 鼠标左键 可以选择多个文件或文件夹)

查看 当前选中文件的信息(目前还未开放)

下面的自然就是文件和文件夹了。

使用技巧

一些按键有对应的作用:

F1 – 查看帮助

F2 – 重命名 文件/文件夹

DEL – 删除所选 文件/文件夹

ESC – 清除当前选择 或 关闭提示

CTRL + S – 保存下载 文件/文件夹(zip压缩)

CTRL + 鼠标左键 单击 – 选择多个文件/文件夹

鼠标左键 双击 – 打开文件/文件夹

鼠标左键 单击 – 选择文件/文件夹

暂时不能用的按键:

Alt + 鼠标左键 单击 – 选择一组文件

Caddy 使用说明

启动:service caddy start

停止:service caddy stop

重启:service caddy restart

查看状态:service caddy status

查看Caddy启动日志: tail -f /tmp/caddy.log

Caddy配置文件位置:/usr/local/caddy/Caddyfile

其他说明

启动显示成功,但是实际未运行

因为 服务脚本判断的问题,只判断了nohub是否运行 Caddy成功,但没有判断 Caddy 是否保持正常运行。

你可以理解为,nohub成功启动了 Caddy,但是 Caddy因为配置文件错误等原因,启动后又退出了。

所以这种情况下,你应该去查看启动日志:

tail –f /tmp/caddy.log

单网站/多网站

当然,上面的几个示例,实际上都算是单网站。

最后一句代码都是 }” > /usr/local/caddy/Caddyfile ,也就是清空了 Caddy配置文件,然后再写入了配置信息。

如果你要设置多个网站,那么把最后一句代码改成 }” >> /usr/local/caddy/Caddyfile 即可,注意是把 > 改成 >> ,这样就不会清空原来的配置信息了,而是会把要添加的配置信息加到配置文件最后!

Caddy启动失败,打开 http://ip 显示的是 It works !

一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。

netstat -lntp

# 我们可以通过这个命令查看是不是被其他软件占用了 80 端口。

不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。

停止 Apache2

service apache2 stop

# 尝试使用上面这个关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。

kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')

取消开机自启动

# 以下代码仅限 Debian/Ubuntu 系统 #

update-rc.d -f apache2 remove

卸载 Apache2

# 以下代码仅限 Debian/Ubuntu 系统 #

apt-get remove --purge apache2

关闭 Apache2后,就可以尝试启动 Caddy ,并试试能不能打开网页。

service caddy start

如果你是 Aria2 教程里过来的,那么请看这个示例和说明

使用这个扩展的时候,请先确定你的caddy安装了这个扩展(2017/03/23 17:50 以前通过我网站其他教程安装的皆没有),否则请卸载重装!

卸载 Caddy:

bash caddy_install.sh uninstall

使用这个扩展,那么就不需要 caddy 自带的列表功能了,所以可以删除参数 browse ,然后如下设置即可。

需要用户名和密码登录,允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 cp 。

因为只有一个用户,所以不需要设置全局配置,你访问下载的BT文件就可以通过 http://ip或域名/Download/ 来访问和操作了,用户名和密码是 user233 / doub.io 。

更多的示例,请查看这里

echo -e "http://toyoo.ml {
root /usr/local/caddy/www/aria2
gzip
basicauth / user233 doub.io
filemanager /Download {
show /usr/local/caddy/www/aria2/Download
user233:
allow_new true
allow_edit true
allow_commands true
}
}" > /usr/local/caddy/Caddyfile

启动 Caddy后,无法访问

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT

# 删除防火墙规则,内容一样把 -I 换成 -D 就行了:

iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT
iptables -D INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《用 Caddy FileManager扩展 非常简单的部署 私人网盘/在线文件》
文章链接:https://www.qqooo.cn/html/1153.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
本站资源均来源于网络,若侵犯您的权益,请来信 Feelym@88.com 删除!