1. 简介

WebDAV(Web Distributed Authoring and Versioning)是一种基于 HTTP 的协议,

允许用户通过网络直接编辑和管理服务器上的文件

本教程介绍如何在 Ubuntu 24.04 上使用 Apache2 搭建 WebDAV 服务,无需域名,仅使用 HTTP(适用于内网或测试环境)。

在这里插入图片描述


2. 前提条件

  • Ubuntu 24.04 服务器(物理机/虚拟机/云服务器)
  • SSH 访问权限(或本地终端)
  • root 或 sudo 权限

3. 安装 Apache2 和 WebDAV 模块

更新软件包并安装 Apache2 及 WebDAV 依赖:

sudo apt update
sudo apt install apache2 apache2-utils
sudo a2enmod dav dav_fs

4. 配置 WebDAV 目录

4.1 创建 WebDAV 存储目录

sudo mkdir -p /var/www/webdav
sudo chown -R www-data:www-data /var/www/webdav
sudo chmod -R 775 /var/www/webdav

4.2 创建 WebDAV 用户密码文件

sudo htpasswd -c /etc/apache2/webdav-passwd username

(替换 username 为你的用户名,并输入密码)


5. 配置 Apache WebDAV 虚拟主机

5.1 创建 WebDAV 配置文件

sudo nano /etc/apache2/sites-available/webdav.conf

粘贴以下内容:

<VirtualHost *:80>ServerAdmin admin@localhostDocumentRoot /var/www/webdav<Directory /var/www/webdav>DAV OnOptions Indexes FollowSymLinksAuthType BasicAuthName "WebDAV Restricted"AuthUserFile /etc/apache2/webdav-passwdRequire valid-user</Directory>
</VirtualHost>

保存并退出(Ctrl + XYEnter)。

5.2 启用配置并重启 Apache

sudo a2ensite webdav.conf
sudo systemctl restart apache2

6. 防火墙放行(如启用)

sudo ufw allow 80/tcp
sudo ufw reload

7. 测试 WebDAV 服务

7.1 浏览器访问

访问 http://你的服务器IP,输入用户名和密码,应能看到 /var/www/webdav 目录内容。

7.2 命令行测试

curl -X PROPFIND --user username:password http://服务器IP/

预期输出:

HTTP/1.1 207 Multi-Status
<d:multistatus>...</d:multistatus>

7.3 挂载为本地磁盘(Linux/macOS)

sudo apt install davfs2  # 安装 davfs2(Linux)
sudo mount -t davfs http://服务器IP /mnt/webdav

(输入用户名密码后,文件会挂载到 /mnt/webdav


8. 常见问题排查

问题可能原因解决方案
401 Unauthorized密码错误或未配置认证检查 /etc/apache2/webdav-passwd
403 Forbidden目录权限不足sudo chown -R www-data:www-data /var/www/webdav
500 Server ErrorWebDAV 模块未加载sudo a2enmod dav_fs && systemctl restart apache2
无法连接防火墙阻止 80 端口sudo ufw allow 80/tcp

9. 安全注意事项

⚠️ HTTP 是明文传输,仅适用于内网或测试环境!
如需公网访问,强烈建议启用 HTTPS(可使用 Let’s Encrypt 或自签名证书)。


10. 总结

  • ✅ 已成功在 Ubuntu 24.04 上部署 WebDAV
  • ✅ 支持 HTTP 访问,无需域名
  • ✅ 可通过浏览器、命令行或挂载本地磁盘访问

下一步建议

  • 配置 HTTPS(使用 certbot 申请免费证书)
  • 限制访问 IP(增强安全性)

📌 支持 WebDAV 的软件一览表

类别软件名称用途WebDAV 支持方式适用平台
笔记管理ObsidianMarkdown 笔记管理需插件(如 Remotely Save)Windows/macOS/Linux
Joplin开源 Markdown 笔记原生支持全平台
Notion在线笔记(需第三方工具)通过 rclone/Zapier 间接同步Web/全平台
文件管理CyberduckFTP/SFTP/WebDAV 客户端原生支持Windows/macOS
WinSCPWindows 文件传输工具原生支持Windows
RaiDrive挂载 WebDAV 为本地磁盘原生支持Windows
rclone命令行文件同步工具原生支持Linux/macOS/Win
办公工具LibreOffice开源 Office 套件支持打开/保存 WebDAV 文件全平台
Zotero文献管理软件支持同步附件到 WebDAV全平台
移动端 AppSolid ExplorerAndroid 文件管理器原生支持Android
Documents (Readdle)iOS 文件管理支持 WebDAV 连接iOS
FolderSyncAndroid 自动同步工具支持定时同步到 WebDAVAndroid
开发/备份Git版本控制(需服务器支持)通过 HTTP WebDAV 托管仓库全平台
Duplicati加密备份工具支持备份到 WebDAV全平台

📌 注意事项

  1. 安全性:HTTP 是明文传输,建议内网使用或搭配 HTTPS(如 Let’s Encrypt)。
  2. 兼容性:部分软件(如 Git)需要 WebDAV 服务器支持 PUT/DELETE 方法。
  3. 移动端限制:iOS 需使用支持 WebDAV 的 App(如 Documents)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/80634.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/80634.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/80634.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node.js 实战——在express 中将input file 美化,并完成裁剪、上传进度条

美化上传按钮 在ejs 页面 <!DOCTYPE html> <html> <head><meta charset"utf-8"></meta><title><% title %></title><link relstylesheet href/stylesheets/form.css/><!-- 本地 Bootstrap 引入方式 -->…

MySQL为什么选择B+树

1.hash表&#xff1a;不支持范围查询 2.跳表&#xff1a;索引层增加太快&#xff0c;IO成本增加太快 3.二叉树、AVL树、红黑树&#xff1a;树高度增加太快&#xff0c;IO成本增加太快 4.B树&#xff1a;树高增加太快&#xff1b;范围查询只能走中序遍历&#xff0c;IO成本很…

go程序编译成动态库,使用c进行调用

以下是使用 Go 语言打包成 .so 库并使用 C 语言调用的完整步骤&#xff1a; 1. Go 语言打包成 .so 库 &#xff08;1&#xff09;编写 Go 代码 创建一个 Go 文件&#xff08;如 calculator.go&#xff09;&#xff0c;并定义需要导出的函数。导出的函数名必须以大写字母开头…

YOLO-World:基于YOLOv8的开放词汇目标检测

文章目录 前言1、出发点2、方法2.1.TextEncoder2.2.ReparmVLPAN2.3.输出头 3、实验3.1.数据集3.2.LVIS测试集 总结 前言 本文介绍一篇来自腾讯的开放词汇检测工作&#xff0c;发表自CVPR2024&#xff0c;论文链接&#xff0c;开源地址。 1、出发点 GroundingDINO在开放词汇检测…

华为网路设备学习-21 IGP路由专题-路由过滤(filter-policy)

一、路由过滤&#xff08;filter-policy&#xff09; 1、用于控制路由更新、接收的一个工具 2、只能过滤路由信息&#xff0c;无法过滤LSA 二、路由过滤&#xff08;filter-policy&#xff09;与动态路由协议 1、距离矢量路由协议 RIP动态路由协议 交换的是路由表&#xff0…

美化IDEA注释:Idea 中快捷键 Ctrl + / 自动注释的缩进(避免添加注释自动到行首)以及 Ctrl + Alt + l 全局格式化代码的注释缩进

打开 Settings 界面&#xff0c;依次选择 Editor -> Code Style -> Java&#xff0c;选择 Code Generation&#xff0c; 取消 Line comment at first column 和 Block comment at first column 的勾选即可&#xff0c; 1、Line comment at first column (行注释在第一列…

服务器数据恢复—硬盘坏道导致EqualLogic存储不可用的数据恢复

服务器存储数据恢复环境&故障&#xff1a; 一台EqualLogic某型号存储中有一组由16块SAS硬盘组建的RAID5阵列。上层采用VMFS文件系统&#xff0c;存放虚拟机文件&#xff0c;上层一共分了4个卷。 磁盘故障导致存储不可用&#xff0c;且设备已经过保。 服务器存储数据恢复过程…

openharmony系统移植之gpu mesa3d适配

openharmony系统移植之gpu mesa3d适配 文章目录 openharmony系统移植之gpu mesa3d适配1. 环境说明2. gpu内核panfrost驱动2.1 使能panfrost驱动2.2 panfrost dts配置 3. buildroot下测试gpu驱动3.1 buildroot配置编译 4. ohos下mesa3d适配4.1 ohos下mesa3d编译调试4.1.2 编译4.…

Kafka生产者send方法详解

Kafka生产者send方法详解 1. send方法的工作原理 1.1 基本流程 #mermaid-svg-EXvKiyf8oSlenrxK {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-EXvKiyf8oSlenrxK .error-icon{fill:#552222;}#mermaid-svg-EXvKiyf…

【sdkman】sdk命令使用简介

SDKMAN! 使用指南 SDKMAN! 是一个用于管理多个软件开发工具包版本的命令行工具。 基本命令 安装 SDK # 安装最新稳定版 sdk install java# 安装特定版本 sdk install scala 3.4.2# 安装本地版本 sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT sdk ins…

开源字体设计工具字玩 FontPlayer

开源字体设计工具字玩 FontPlayer 内测版 v0.2.0 于 2025 年 5 月 9 日发布 基础功能&#xff1a;用户可以使用该工具绘制字体并导出 otf 字体文件&#xff0c;设计属于自己的字库。脚本功能&#xff1a;提供了脚本功能&#xff0c;用户可以用程序的方式绘制字形组件&#xff0…

快速入门深度学习系列(3)----神经网络

本文只针对图进行解释重要内容 这就是入门所需要掌握的大部分内容 对于不懂的名词或概念 你可以及时去查 对于层数 标在上面 对于该层的第几个元素 标在下面 输入层算作第0层 对于第一层的w b 参数 维度如下w:4*3 b:4*1 这个叫做神经元 比如对于第一层的神经元 这里说的很…

【Python 算法零基础 2.模拟 ⑤ 基于栈和队列】

目录 基于栈 Ⅰ、1441. 用栈操作构建数组 算法与思路 ① 初始化操作序列 ② 遍历数字范围 ③ 判断并添加操作 ④ 提前结束循环 ⑤ 返回操作序列 基于队列 Ⅰ、1700. 无法吃午餐的学生数量 思路与算法 ① 统计学生对三明治的需求&#xff1a; ② 遍历三明治供应顺序&#xff1a;…

管家婆实用贴-如何在Excel中清除空格

我们在使用管家婆软件时&#xff0c;经常会用到Excel表格导入导出数据&#xff0c;在使用Excel整理数据时&#xff0c;数据中的空格可能会导致计算和分析出现问题。无论是多余的前导空格、尾部空格还是单元格中的不必要空格&#xff0c;清除它们都是确保数据准确性的关键。今天…

uniapp-商城-53-后台 商家信息(更新修改和深浅copy)

1、概述 文章主要讨论了在数据库管理中如何处理用户上传和修改商家信息的问题&#xff0c;特别是通过深浅拷贝技术来确保数据更新的准确性和安全性。 首先&#xff0c;解释了深拷贝和浅拷贝的区别&#xff1a;浅拷贝使得两个变量共享相同的内存地址&#xff0c;而深拷贝则创建新…

numpy模块综合使用

一、numpy模块的综合使用方法 # 使用矩阵的好处&#xff0c;矩阵对于python中列表&#xff0c;字典等数据类型一个一个拿来计算是会方便计算很多的&#xff0c;底层使用的是c语言 # 在数据分析和数据处理的时候也经常常用 import numpy as np array np.array([[1,2,3],[2,3,4…

【github分享】开发者学习路线图

地址&#xff1a;GitHub - kamranahmedse/developer-roadmap: Interactive roadmaps, guides and other educational content to help developers grow in their careers. 介绍&#xff1a;涵盖了所有领域的开发者路线图&#xff0c;前端、后端、运维、全栈、编程语言、AI等。…

《Linux命令行大全(第2版)》PDF下载

内容简介 本书对Linux命令行进行详细的介绍&#xff0c;全书内容包括4个部分&#xff0c;第一部分由Shell的介绍开启命令行基础知识的学习之旅&#xff1b;第二部分讲述配置文件的编辑&#xff0c;如何通过命令行控制计算机&#xff1b;第三部分探讨常见的任务与必备工具&…

[Java实战]Spring Boot 解决跨域问题(十四)

[Java实战]Spring Boot 解决跨域问题&#xff08;十四&#xff09; 一、CORS 问题背景 什么是跨域问题&#xff1f; 当浏览器通过 JavaScript 发起跨域请求&#xff08;不同协议、域名、端口&#xff09;时&#xff0c;会触发同源策略限制&#xff0c;导致请求被拦截。 示例场…

MyBatis快速入门——实操

默认&#xff1a;电脑搭建好了Maven环境 本次入门实验使用的idea版本&#xff1a;ideaU2022.1 目录 一&#xff1a;前期准备工作 1. 创建一个springboot工程 2. Maven环境配置 3. 在mysql数据库中创建一个user表 4. 编写实体类User 二&#xff1a; 引入MyBatis的相关依赖…