Rclone配置Server Webdav服务

AI大语言模型

安装Rclone:

sudo apt install rclone

有些软件仓库没有最新版,推荐访问Rclone官网下载。

添加用户组和服务用户:

sudo groupadd webdav
sudo useradd -r -s /sbin/nologin -g webdav webdav

创建日志文件:

sudo touch /var/log/rclone-webdav.log
sudo chown webdav:adm /var/log/rclone-webdav.log
sudo chmod 640 /var/log/rclone-webdav.log

创建用于存放密码文件的目录:

sudo mkdir /etc/rclone

配置用于访问Webdav的用户,其中的davuser为用户名:

echo "davuser:$(openssl passwd -apr1)" | sudo tee /etc/rclone/webdav.password

为密码文件设置权限:

sudo chown root:webdav /etc/rclone/webdav.password
sudo chmod 640 /etc/rclone/webdav.password

创建用于存放SSL证书的目录:

sudo mkdir /etc/rclone/ssl
sudo chown root:webdav /etc/rclone/ssl

如果是局域网使用,生成证书方法可参考:本地调试安装SSL证书启用HTTPS访问

将证书文件上传到ssl目录,然后设置权限:

sudo chown root:webdav /etc/rclone/ssl/{webdav.pem,webdav.key}
sudo chmod 644 /etc/rclone/ssl/webdav.pem
sudo chmod 640 /etc/rclone/ssl/webdav.key

配置Webdav服务

创建服务:

sudo nano /etc/systemd/system/rclone-webdav.service

配置示例内容如下:

[Unit]
Description=Rclone WebDAV Server
After=network.target
Wants=network.target

[Service]
Type=simple
User=webdav
Group=webdav
ExecStart=rclone serve webdav drive: \
  --addr 0.0.0.0:5572 \
  --realm "Rclone Webdav" \
  --cert /etc/rclone/ssl/webdav.pem \
  --key /etc/rclone/ssl/webdav.key \
  --htpasswd /etc/rclone/webdav.password \
  --umask 022 \
  --log-file /var/log/rclone-webdav.log \
  --log-level NOTICE \
  --log-file-max-size 1M \
  --log-file-max-backups 3
Restart=on-failure
RestartSec=60s
StandardOutput=append:/var/log/rclone-webdav.log
StandardError=append:/var/log/rclone-webdav.log

NoNewPrivileges=yes # 防止进程在运行时获取新的权限
PrivateTmp=yes # 为服务创建私有的tmp目录
ProtectSystem=strict # 只允许读写ReadWritePaths指定的目录
ReadWritePaths=/var/log /etc/rclone

[Install]
WantedBy=multi-user.target

重载配置:

sudo systemctl daemon-reload

启用服务:

sudo systemctl enable --now rclone-webdav

如果是外部访问,服务器有开启防火墙,需要放行对应端口:

sudo ufw allow 5527/tcp

配置说明

  • drive:存储路径可以是Rclone配置的远程存储,也可以是本地目录。为本地目录时,确保webdav用户具有读写权限,还需要将路径添加到ReadWritePaths;
  • –addr:指定IP和端口,127.0.0.1限制本机访问,0.0.0.0允许内网访问。如需使用域名访问,可以使用Nginx、Apache、Caddy等配置。
  • –umask掩码:限制用户创建的文件的最大权限,计算方法:默认文件666、目录777,默认值减去umask就得到最终权限值。设置为022可以得到文件644、目录755的标准权限值。
  • –log-level日志级别:
    • DEBUG:用于调试,如果服务无法正常启动,可以设置该值便于排查问题;
    • INFO:记录所有连接信息,信息量会比较大;
    • NOTICE:记录警告和重要事件;
    • ERROR:只输出错误信息。
AI大语言模型