请未来的首富帮我写个能跑起来的 caddy 2 的 Caddyfile,不是我懒,详见内文

2021-01-30 05:55:48 +08:00
 cathedrel

放狗搜了两天,网上的例子基本都是 v1 版本的配置方式,跟 v2 不通用,caddy 官网的文档太简单我看不懂。。。

家里面自己一个人用的 debian 10 文件服务器,目标是用 caddy 开 webdav,下载了官网带 webdav 模块的文件,安装配置成功,Caddyfile 很简单的 3 行配置可以跑起来:

nas.local

root * /mnt/nas

file_server browse

这样的配置文件可以实现在家里另一台电脑上浏览器里输入 nas.local 即可网页形式浏览 nas 上的文件,而且是自动跳转 https 的( caddy 自己的证书)

然后我想加上全局的验证和 webdav 功能就无论如何不能成功:

nas.local

basicauth / name pass

root * /mnt/nas

file_server browse

webdav /dav {

scope /mnt/nas

modify true

}

用 journalctl -xef -u caddy.service 查看错误,name 有问题,scope 有问题,modify 有问题,可是网上找来找去找不到没问题的模板。。。

请未来的首富帮忙写个 caddy v2 的配置文件吧,或者用非程序员也能懂的白话文指出问题在哪儿,谢谢了,好人一生平安,好人必成首富

7414 次点击
所在节点    程序员
54 条回复
cathedrel
2021-01-31 20:11:42 +08:00
@matrix67 主操作电脑是 manjaro,默认安装了 ufw,我刚刚看了一下,“家庭”是关闭的,“公共的”和“办公室”是开启的,但是所有的“传出”都是默认允许的,“传入”被禁止,这应该完全不影响吧?
matrix67
2021-01-31 20:53:27 +08:00
@cathedrel ufw 没玩过,默认传入被禁止,也就是 server 端的回包会被 rst 掉?

你可以先放通这个规则试试
matrix67
2021-01-31 20:54:31 +08:00
@cathedrel 老哥加油啊,哈哈,我能不能成为首富就靠你啦!!
YouLMAO
2021-01-31 22:09:06 +08:00
中国的首富,是一种诅咒死亡的话
cathedrel
2021-01-31 22:57:34 +08:00
@matrix67 这会发现之前完全不能连接是服务器的防火墙问题,真是奇怪,明明给 firewalld 开了 10001 端口,也 reload 了,但就是连不上,现在我是 disable firewalld 然后重启系统再运行 webdav --config webdev.json,能连上了!一开始提示证书机构未知,接受证书后就说“请确认您的用户信息”,意思用户名或者密码错误,我在 json 里面设置的很简单啊,怎么回事?

服务器上的输出:

2021/01/31 22:41:39 http: TLS handshake error from 192.168.1.10:36796: read tcp 192.168.1.123:10001->192.168.1.10:36796: read: connection reset by peer

json 里面关于 user 的如下:

"users": [

{

"username": "admin",

"password": "ooadmin",

"modify": true,

"scope": "/mnt/nas"

}

]

}

用户名 admin 密码 ooadmin,怎么也不可能打错,这又是什么奇怪的问题?

还有个奇怪的点:webdav 客户端用 nas.local 是连不上的,必须用 ip 才能连上,但是同一台电脑里 ssh 和 ping 都可以连上 nas.local,怪事频出啊
cathedrel
2021-01-31 23:16:27 +08:00
@matrix67 另外,台式机的防火墙不关是开启还是关闭还是开启状态下完全允许传入传出,webdav 都是这样德行
cathedrel
2021-01-31 23:53:27 +08:00
@matrix67 又在手机上试了一下(前面全部是在电脑上试的),连不上,不管是 nas.local 或者 IP,都连不上,手机上也没有更多的提示,服务器端也是完全没有任何接入的提示,我现在怀疑这个 webdav 服务端可能有点什么问题,不过它的 issue 页面又好像没什么那么多吐槽的,太奇怪了
qinghon
2021-02-01 00:27:59 +08:00
突然有点奇怪为啥 nginx 没人写个插件自动维护 https
cathedrel
2021-02-01 06:58:17 +08:00
@squkw 你好首富,头大,问题一个接一个

我的配置文件就照抄的你在 4 楼的样子,只是 basicauth 上面加了一行 file_server browse,运行起来就只能是在浏览器里浏览文件,webdav 客户端一直说请确认用户信息,好像是用户名和密码对不上的意思,可是很简单的用户名和密码不可能错(就 123 ),而且浏览器的页面就是这个用户名和密码进去的,这是什么问题呢? webdav 可以 /需要另外设置登入信息吗?
matrix67
2021-02-01 09:37:25 +08:00
@YouLMAO #44 哈哈哈哈哈
matrix67
2021-02-01 09:41:18 +08:00
@cathedrel #45

> webdav 客户端用 nas.local 是连不上的,必须用 ip 才能连上
这个问题是你客户端 dns 解析的问题。

> TLS handshake error
这个是你客户端 ssl 没选上的问题。 你先把服务端 https 那些都选项都删了,只使用 http 试试。要是能连上,再 debug ssl 问题。
reed2020
2021-02-01 09:59:41 +08:00
caddy2 的文档和配置真是一言难尽,caddy1 还挺好的
squkw
2021-02-01 20:12:41 +08:00
@cathedrel 应该不是密码的问题,我觉得是不能在同一个端口开启 file_server 和 webdav,你再添加一块
nas.local:8080 {
file_server browse
root * /mnt/nas
basicauth {
root 加密后的密码
}
}

或者 webdav 的用另一个端口,反正不能都用一个端口
keling
2021-09-04 06:29:56 +08:00
@squkw 谢谢,按照你的修改下可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/749758

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX