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

跨平台文件传输:WebDAV + Rclone

在禁止 OpenSSH 传输文件的场景下,采用 WebDAV 结合 Rclone 实现跨平台文件传输的方案。主要步骤包括在 Windows 或 macOS 上配置 Apache 开启 WebDAV 服务,设置共享目录权限及防火墙规则,解除文件大小与超时限制;随后安装并配置 Rclone 连接 WebDAV 远程存储,实现文件的稳定读写与管理。该方案适用于内部工具场景,具有轻量、安全且跨平台兼容的特点。

HadoopMan发布于 2026/4/5更新于 2026/7/2856 浏览

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

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

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

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

实现步骤

Apache

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

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

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

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

更多推荐文章

查看全部
  • Git 多人协作实战:分支协同、冲突解决与跨分支协助
  • DeepSeek 各版本详解:从 V1 到 R1 的演进与对比
  • Python 集成树算法与在线学习实战
  • Meta SAM 3D 发布:单张图像生成 3D 模型技术解析
  • GitNexus 核心引擎深度解析
  • OpenClaw 接入 QQ 机器人完整部署指南
  • AIED 2025 论文解读:AIBAT 教师驱动的语言模型情境评估工具
  • Scratch 与 Python 编程语言核心差异对比
  • C++ 多线程:深入理解 Atomic 与 Volatile 的语义区别
  • 基于 LangChain 和 Streamlit 搭建 PDF 问答知识库
  • 基于 LeRobot 的手机 AR 机器人远程控制实践
  • 从零开始学 Llama-Factory:适合初学者的五个实战项目
  • C++ STL 基础:迭代器、auto 与范围 for 循环
  • GitHub Copilot 学生认证与使用全攻略
  • 影刀 RPA 完全指南:从零入门到自动化实践
  • 大模型面试题库:100 道经典问题解析
  • Godot 通过 GDExtension 配置 C++ 开发环境
  • 30 个 Python 常用操作技巧与示例
  • 基于无人机 RGB+红外双模态的小目标行人检测系统与数据集
  • Ubuntu 系统安装 Docker 及配置国内镜像源

相关免费在线工具

  • 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