跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

跨平台文件传输:WebDAV + Rclone

介绍在禁止 OpenSSH 传输文件的场景下,使用 WebDAV 配合 rclone 实现跨平台文件传输的方案。通过配置 Apache 开启 WebDAV 服务并设置权限,利用 rclone 客户端进行稳定读写。涵盖 Windows 下 Apache 安装、模块启用、目录共享及防火墙配置步骤,以及 rclone 的安装与连接配置。适用于内部工具场景,支持大文件传输。

DebugKing发布于 2026/4/6更新于 2026/7/742 浏览

在集成流水线时,我曾遇到需要跨平台传输文件的场景(服务器需要与其他平台进行文件交互)。虽然 OpenSSH(scp/sftp)是最简便的方案,但公司出于安全策略,禁止机器间通过 OpenSSH 进行文件传输。因此我尝试了 NFS/SMB、临时 HTTP 共享等多种方式,但均因安全策略限制或配置复杂未能落地。

最终我采用了 WebDAV + rclone 的组合方案实现跨平台文件传输:

  • 使用 WebDAV 共享目标机器的目录;
  • 通过 rclone 对共享目录进行稳定的读写操作。

该方案适用于内部工具场景,非部署生产环境。实际使用中,我以测试机/工作机(macOS/Windows)作为 WebDAV 服务端,在另一台 macOS 服务器上通过 rclone 对测试机进行文件的上传、下载与管理,实现了稳定、轻量、符合公司安全规范的跨平台文件互通。

实现步骤

Apache

用 Apache 开启 webdav 服务非常方便,macOS 平台自带 Apache,Windows 需要自己下载安装(下载 - 安装 - 配置环境变量)。

Windows
  • 打开:https://www.apachelounge.com/download/,下载对应系统的版本
  • 解压到一个无空格、无中文的目录(比如 D:\Apache)
  • 打开配置文件(D:\Apache\Apache24\conf\httpd.conf)
# 找到并修改 ServerRoot(必须与解压路径一致)
Define SRVROOT "D:/Apache/Apache24"
ServerRoot "${SRVROOT}"
# 找到 Listen 80,可改为其他端口(如 8080)避免冲突
Listen 8080
# 在配置文件末尾添加一行,端口必须对应
ServerName 127.0.0.1:8080
  • 管理员打开 cmd,测试配置是否正确
cd /d D:\Apache\Apache24\bin
httpd -t
# -> Syntax OK
  • 启动 Apache

管理员 cmd:

httpd -k start      # 初次启动
httpd -k restart    # 重启
# 或注册为 Windows 服务,作为后台服务
httpd -k install
net start Apache2.4

浏览器访问:http://localhost:8080**,看到'**It works!'即成功。

  • 若修改配置,需要重启 httpd 才能生效
httpd -t            # 检查语法
httpd -k restart    # 重启
# 或注册为 Windows 服务
net stop Apache2.4  # 停止服务
httpd -t            # 检查语法
net start Apache2.4 # 重启服务

WebDAV

下面主要记录 Windows 下开启 webdav 的步骤,macOS 上步骤相同,操作不同,macOS 的共享文件最好创建在 Shared 目录下。此外不设置账号和密码,允许匿名登录,若要设置账号密码,修改相关配置即可。

开启 WebDAV 模块

在httpd.conf中启用以下模块(去掉行首#):

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
# 用于密码认证
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authz_core_module modules/mod_authz_core.so
创建共享目录

管理员 cmd:

mkdir D:\webdav_share          # 共享目录
mkdir D:\Apache\Apache24\var   # 对应配置中的 DavLockDB 路径
共享目录权限配置

D 盘一般可以跳过这一节:

  • 右键 D:\webdav_share → 属性 → 安全 → 编辑 → 添加;
  • 输入 Everyone → 确定 → 勾选'完全控制、修改、读取和执行、列出文件夹目录、读取、写入';
  • (optional)若 Apache 以服务运行,需给 SYSTEM 或 Apache2.4 服务账户赋相同权限。
创建独立的 WebDAV 配置文件
cd /d D:\Apache\Apache24\conf
if not exist "extra" mkdir extra
cd extra
type nul > httpd-webdav.conf
notepad httpd-webdav.conf

打开 WebDAV 配置文件,拷贝如下内容:

Define SRVROOT "D:/Apache/Apache24"
DavLockDB "${SRVROOT}/var/DavLock"
Alias /webdav "D:/webdav_share"
<Directory "D:/webdav_share">
    Dav On
    DavDepthInfinity On
    DavMinTimeout 600
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
</Directory>

若要让 WebDAV 支持Rclone 大文件传输(几百 Mb 的文件已经算是大文件了),则必须解除 Apache 对请求体大小、上传分块(chunk)的限制,关键配置是 LimitRequestBody(控制请求体大小)和 DavMaxRequestSize(WebDAV 专属的请求大小限制)。配置文件中添加如下内容:

# 1. 解除请求体大小限制(0 = 无限制,单位:字节)
LimitRequestBody 0
# 2. WebDAV 专属:解除请求大小限制(无上限)
DavMaxRequestSize 0
# 3. 延长超时时间(避免大文件传输超时,单位:秒)
TimeOut 3600
# 4. 关闭分块传输限制(兼容旧客户端)
EnableSendfile Off
EnableMMAP Off
引入主配置文件

打开~\Apache24\conf\httpd.conf,在文件末尾添加一行:

Include conf/extra/httpd-webdav.conf
httpd 检查语法并重启

管理员 cmd:

httpd -t            # 检查语法
httpd -k restart    # 重启
# 或注册为 Windows 服务
net stop Apache2.4  # 停止服务
httpd -t            # 检查语法
net start Apache2.4 # 重启服务
本地测试

打开浏览器,访问 http://localhost:8080/webdav 成功!

跨机器访问

跨机器访问需要解除防火墙限制,管理员 cmd:

# 放行 TCP 8080 端口(永久生效)
netsh advfirewall firewall add rule name="WebDAV-8080" dir=in action=allow protocol=TCP localport=8080 remoteip=any profile=any enable=yes
# 删除规则
netsh advfirewall firewall delete rule name="WebDAV-8080" protocol=TCP localport=8080

测试:从另一台机器上尝试访问 http://:8080/webdav 成功。

Rclone

下载安装

下载 rclone(https://rclone.org/,全平台),或命令行。

macOS:

# 安装 Homebrew(如未装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 rclone
brew install rclone
# 验证
rclone version

Windows(管理员 Powershell):

winget install Rclone.Rclone
WebDAV 配置
# 进入配置向导
rclone config
# 按提示:
# n → 新建远程
# name(如 webdav)
# storage:WebDAV
# url(如 http://192.168.1.100/webdav)
# vendor: 7
# 用户名、密码(没有则跳过)
# 完成后 q 退出
常用命令
# 列出文件
rclone ls webdav:/
# 上传文件 copy A to B
rclone copy local_file.txt webdav:/path/

目录

  1. 实现步骤
  2. Apache
  3. Windows
  4. 找到并修改 ServerRoot(必须与解压路径一致)
  5. 找到 Listen 80,可改为其他端口(如 8080)避免冲突
  6. 在配置文件末尾添加一行,端口必须对应
  7. -> Syntax OK
  8. 或注册为 Windows 服务,作为后台服务
  9. 或注册为 Windows 服务
  10. WebDAV
  11. 开启 WebDAV 模块
  12. 用于密码认证
  13. 创建共享目录
  14. 共享目录权限配置
  15. 创建独立的 WebDAV 配置文件
  16. 1. 解除请求体大小限制(0 = 无限制,单位:字节)
  17. 2. WebDAV 专属:解除请求大小限制(无上限)
  18. 3. 延长超时时间(避免大文件传输超时,单位:秒)
  19. 4. 关闭分块传输限制(兼容旧客户端)
  20. 引入主配置文件
  21. httpd 检查语法并重启
  22. 或注册为 Windows 服务
  23. 本地测试
  24. 跨机器访问
  25. 放行 TCP 8080 端口(永久生效)
  26. 删除规则
  27. Rclone
  28. 下载安装
  29. 安装 Homebrew(如未装)
  30. 安装 rclone
  31. 验证
  32. WebDAV 配置
  33. 进入配置向导
  34. 按提示:
  35. n → 新建远程
  36. name(如 webdav)
  37. storage:WebDAV
  38. url(如 http://192.168.1.100/webdav)
  39. vendor: 7
  40. 用户名、密码(没有则跳过)
  41. 完成后 q 退出
  42. 常用命令
  43. 列出文件
  44. 上传文件 copy A to B
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 基础入门:数据存储与运算符详解
  • C++ 类和对象:拷贝构造与赋值运算符重载详解
  • 基于 WebTop 与 Tailscale 的云端 OpenClaw 真实浏览器部署方案
  • C++ const 完整语法整理
  • 基于算法的 LLM 代码翻译新范式:解决意图丢失问题
  • ROG-Map:一种高效的大场景 LiDAR 运动规划网格地图方案
  • youhujun 开源生态全家桶:PHP 全栈开发解决方案
  • Spring AOP 核心概念与实战:面向切面编程详解
  • Flutter for OpenHarmony 实战:Material Color Utilities 算法驱动动态换肤
  • 基于Coze平台搭建AI客服机器人的全流程指南
  • Claude Skills 实战指南:从安装到自动化开发
  • C++ 面向对象:多态的概念与实现原理
  • 智能体工作流导出导入实战:以 12345 政务热线分拨为例
  • 递归与搜索算法实战:汉诺塔、链表与快速幂
  • Spring Cloud Gateway 实战:路由、断言与过滤器
  • 主流大模型架构全景 | GPT/LLaMA/DeepSeek/Qwen 深度对比
  • 基于 Java 的消息队列选型:RabbitMQ、RocketMQ、Kafka 实战对比
  • Node.js 22+ 环境搭建与 OpenAI/Vercel AI SDK 快速入门
  • Phi-3-mini-4k-instruct 多场景应用:邮件/逻辑/代码生成详解
  • 基于 SpringBoot 的图书租借系统设计与实现

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online