参考文章: Linux搭建WebDav服务 - Colzry’s Blog

以下操作如出现无权限的情况, 可根据自己实际情况, 使用sudo提权解决

步骤一: 安装WebDAV服务

首先, 我们需要安装WebDAV Server, 打开页面下载合适的版本, 本文以linux-amd64-webdav.tar.gz为例, 其中amd64表示x64架构

然后, 解压并移动文件到/usr/bin/, 其余的README和LICENSE文件可删除

1
2
tar -zxvf linux-amd64-webdav.tar.gz
mv webdav /usr/bin/

步骤二: 配置WebDAV服务

安装完成后, 我们需要对WebDAV服务进行配置. 首先, 我们需要创建一个目录用于存储WebDAV文件. 可以使用以下命令创建一个名为 /home/liudh/webdav的目录, 注意修改用户名liudh为自己的用户名

1
mkdir /home/liudh/webdav

然后, 我们需要编辑WebDAV服务的配置文件. 可以使用以下命令打开配置文件进行编辑

1
vim /opt/webdav_config.yaml

在配置文件中, 我们需要添加以下内容.

注意根据自己的实际修改, 端口号可修改, 用户名, 密码, 用户空间均修改为自己的内容

注意缩进, corsusers后的参数均需要两个空格的缩进, 带-的参数需再缩进两个空格(四个)

每一个参数:后均有一个空格

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
# Server related settings
address: 0.0.0.0
port: 10101
# 如果无需验证填 false
auth: true
# 如果不需要 https 则填 false
tls: false
# https证书和密钥,如果 tls 为 false,cert 和 key 不需要
# cert: cert_path
# key: key_path
# 访问前缀,建议默认
prefix: /
debug: false
# 如果 auth 为 false 生效,文件共享的路径
scope: .
modify: true
rules: []
# 跨域设置
cors:
enabled: true
credentials: true
allowed_headers:
- Depth
allowed_hosts:
- http://localhost:10101
allowed_methods:
- GET
exposed_headers:
- Content-Length
- Content-Range
# 用户信息,如果 auth 为 true 生效
users:
- username: liudh
password: passwd
scope: /home/liudh/webdav/
# 是否允许修改
modify: true
# 可以根据此模板继续添加其他用户

保存并关闭配置文件后, 使用以下命令启动服务, 显示地址和端口即为启动成功

1
/usr/bin/webdav -c /opt/webdav_config.yaml

步骤三: 添加守护进程

1
vim /usr/lib/systemd/system/webdav.service

将以下内容添加到文件中

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=WebDAV server
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/webdav -c /opt/webdav_config.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.target

保存并关闭, 然后运行以下命令, 可能会要求输入用户密码验证

1
2
3
4
systemctl daemon-reload
systemctl start webdav.service
systemctl status webdav.service
systemctl enable webdav.service

之后修改配置文件后, 可以使用以下命令重启服务

1
systemctl restart webdav.service

步骤四: 挂载webdav测试服务

使用任意webdav挂载软件, 挂载测试, 注意填写参数如下

1
2
3
4
5
6
协议: http # 如果配置了ssl证书就用https
主机: # 设备的ip地址或域名, 如果是本地设备就填局域网的IP !!!域名或IP结尾要加上 / 这个符号
# 例如: 192.168.1.100:10101/ 如果端口是单独填写就填: 192.168.1.100/
端口: 10101 # 注意配置防火墙开放端口, 本地设备一般不需要
用户名: liudh # 都改成自己的
密码: passwd

之后就可以上传下载文件测试一下了, 如果有错误就用

1
systemctl status webdav.service

查看错误日志.

如果填对了账户还显示密码错误, 大概率是前面配置文件时缩进出错了, 回头检查一下