Rclone配置Server Webdav服务
安装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:只输出错误信息。