在Ubuntu上搭建WebDAV服务器用于Venera同步

在Ubuntu上搭建WebDAV服务器用于Venera同步

概述

Venera是一款优秀的漫画阅读器,支持通过WebDAV协议同步阅读进度和漫画数据。本教程将详细介绍如何在Ubuntu系统上搭建WebDAV服务器,实现Venera的多设备数据同步。

环境要求

  • Ubuntu 18.04 或更高版本
  • Apache2 HTTP服务器
  • 具有sudo权限的用户账户

安装步骤

1. 安装Apache和必要模块

1
2
sudo apt update
sudo apt install apache2 apache2-utils

2.启用WebDAV相关模块

1
2
3
sudo a2enmod dav
sudo a2enmod dav_fs
sudo a2enmod auth_digest

3.创建目录结构

1
2
3
4
5
# 创建WebDAV共享目录
sudo mkdir -p /var/www/webdav

# 创建锁数据库目录
sudo mkdir -p /var/lib/dav

设置目录权限

1
2
3
sudo chown -R www-data:www-data /var/www/webdav
sudo chown -R www-data:www-data /var/lib/dav
sudo chmod -R 755 /var/www/webdav

4.创建WebDAV配置文件

创建配置文件 /etc/apache2/sites-available/webdav.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
DavLockDB "/var/lib/dav/DavLock"
Alias /webdav "/var/www/webdav"

<Directory "/var/www/webdav">
DAV On
Options Indexes
AuthType Basic
AuthName "WebDAV"
AuthUserFile "/etc/apache2/webdav.passwd"
Require valid-user

# 允许PROPFIND深度无限(Venera必需)
DavDepthInfinity on

# 允许所有WebDAV方法
<LimitExcept GET POST OPTIONS PROPFIND>
Require valid-user
</LimitExcept>

# 大文件上传支持 (1GB)
LimitRequestBody 1073741824
</Directory>

一行一段

5.创建用户认证

创建WebDAV用户

1
sudo htpasswd -c /etc/apache2/webdav.passwd 用户名

设置密码文件权限

1
2
sudo chown www-data:www-data /etc/apache2/webdav.passwd
sudo chmod 640 /etc/apache2/webdav.passwd

6.启动配置并重启服务

1
2
3
4
5
# 启用WebDAV站点
sudo a2ensite webdav.conf

# 重启Apache服务
sudo systemctl restart apache2

7.配置防火墙

如果使用UFW防火墙,开放相应端口

1
2
3
4
5
# 开放80端口(HTTP)
sudo ufw allow 80/tcp

# 或者开放自定义端口(如8080)
sudo ufw allow 8080/tcp

端口配置(可选)

如果需要使用非标准端口,编辑端口配置文件

1
sudo nano /etc/apache2/ports.conf

修改监听端口

1
Listen 8080

云服务器额外配置

###如果使用云服务器(阿里云、腾讯云等),需要在控制台配置安全组规则:

###1. 登录云服务商控制台
###2. 找到服务器实例的安全组配置
###3. 添加入站规则:

· 协议类型:TCP

· 端口范围:使用的端口号(80或8080)

· 授权对象:0.0.0.0/0

###测试配置,测试连接

1
curl -X PROPFIND http://服务器IP:端口/webdav/ -u '用户名:密码'

###成功应返回XML格式的目录列表。

###检查服务状态

1
2
3
4
5
# 检查Apache状态
sudo systemctl status apache2

# 检查端口监听
sudo netstat -tlnp | grep apache2

搞定了,接下来就是维护了

用户管理

1
2
3
4
5
# 添加新用户
sudo htpasswd /etc/apache2/webdav.passwd 新用户名

# 删除用户
sudo htpasswd -D /etc/apache2/webdav.passwd 用户名

###服务管理

1
2
3
4
5
6
7
8
# 重启Apache
sudo systemctl restart apache2

# 查看服务状态
sudo systemctl status apache2

# 查看访问日志
sudo tail -f /var/log/apache2/access.log