全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 795|回复: 16

挂载webdav就是这么简单

[复制链接]
发表于 2024-11-6 11:21:10 | 显示全部楼层 |阅读模式
本帖最后由 小猪佩奇 于 2024-11-6 11:30 编辑

webdav协议有很好的通用性,兼容多平台多设备,并且使用简单易上手,想用的舒坦还是要费点心思
服务端不多说,alist对webdav有较好的支持,没有难度

客户端:
  1. Windows
  2. Potplayer,kmplayer,RaiDrive,kodi,OneCommander,Mountain Duck,netdrive ❌,rclone,AIMP
  3. Android
  4. Nplayer,kmplayer,ES文件管理器,kodi,nova魔改,reex,cx 文件管理器,Solid Explorer,X-plore File Manager,MiXplorer
  5. IOS
  6. VidHub,Nplayer,kmplayer,infuse,zFuse, Fileball文件管理器
  7. 电视TV
  8. VidHub,Nplayer,kodi,nova魔改
  9. 若只看阿里可以使用阿里官方合作的
  10. 欢视商店-阿里云盘TV版,网盘播放器-阿里云盘TV版
  11. Mac
  12. VidHub,IINA,Mountain Duck,infuse,netdrive,rclone
  13. Linux
  14. davfs2,rclone
  15. 笔记软件
  16. Joplin ,思源
复制代码


着重谈在Windows平台的挂载使用
挂载为网络驱动器只是看起来美好
准备(注意备份注册表):
解除50m限制
新建注册表FileSizeLimitInBytes.reg,并将以下内容粘贴保存,覆盖到当前注册表。
win平台最大支持4g
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
  3. "AcceptOfficeAndTahoeServers"=dword:00000001
  4. "BasicAuthLevel"=dword:00000002
  5. "ClientDebug"=dword:00000000
  6. "FileAttributesLimitInBytes"=dword:000f4240
  7. "FileSizeLimitInBytes"=dword:ffffffff
  8. "InternetServerTimeoutInSec"=dword:0000001e
  9. "LocalServerTimeoutInSec"=dword:0000000f
  10. "SendReceiveTimeoutInSec"=dword:0000003c
  11. "ServerNotFoundCacheLifeTimeInSec"=dword:0000003c
  12. "ServiceDebug"=dword:00000000
  13. "ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
  14.   00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
  15.   77,00,65,00,62,00,63,00,6c,00,6e,00,74,00,2e,00,64,00,6c,00,6c,00,00,00
  16. "ServiceDllUnloadOnStop"=dword:00000001
  17. "SupportLocking"=dword:00000001

复制代码


修改基础验证等级(可选)
如果你的服务端未使用https,需要修改系统默认的验证等级以满足条件。
新建注册表BasicAuthLevel.reg,并将以下内容粘贴保存,覆盖到当前注册表。
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
  3. "AcceptOfficeAndTahoeServers"=dword:00000001
  4. "BasicAuthLevel"=dword:00000002
  5. "ClientDebug"=dword:00000000
  6. "FileAttributesLimitInBytes"=dword:000f4240
  7. "FileSizeLimitInBytes"=dword:02faf080
  8. "InternetServerTimeoutInSec"=dword:0000001e
  9. "LocalServerTimeoutInSec"=dword:0000000f
  10. "SendReceiveTimeoutInSec"=dword:0000003c
  11. "ServerNotFoundCacheLifeTimeInSec"=dword:0000003c
  12. "ServiceDebug"=dword:00000000
  13. "ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
  14.   00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
  15.   77,00,65,00,62,00,63,00,6c,00,6e,00,74,00,2e,00,64,00,6c,00,6c,00,00,00
  16. "ServiceDllUnloadOnStop"=dword:00000001
  17. "SupportLocking"=dword:00000001

复制代码


编写挂载脚本
虽然Windows支持直接挂载webdav,但由于系统原因,每次登录后都会失效,需要重新挂载,故编写脚本
新建webdav.bat,复制以下内容并保存
  1. [url=home.php?mod=space&uid=20206]@echo[/url] off
  2. :: webdav链接以实际为主
  3. set WEBDAV_URL=https://webdav.com/dav
  4. :: 用户名
  5. set USERNAME=用户名
  6. :: 密码
  7. set PASSWORD=密码
  8. :: 挂载盘符到Z
  9. set DRIVE_LETTER=Z:
  10. :: 先卸载之前挂载的盘符(如果有)
  11. net use %DRIVE_LETTER% /delete >nul 2>&1
  12. :: 映射网络驱动器
  13. net use %DRIVE_LETTER% %WEBDAV_URL% /user:%USERNAME% %PASSWORD%

  14. if %errorlevel% neq 0 (
  15.     echo Failed to connect to WebDAV.
  16. ) else (
  17.     echo Successfully connected to WebDAV.
  18. )
复制代码

双击即可直接挂载

如不希望出现明文密码,可使用Windows自带的凭据管理,手动添加用户名密码
删除代码中用户名密码,添加以下内容(效果自测)
  1. for /f "tokens=1-3 delims= " %%a in ('cmdkey /webdav:%TARGET_NAME% ^| findstr /C:"用户名"') do set USERNAME=%%b
  2. for /f "tokens=1-8 delims= " %%a in ('cmdkey /webdav:%TARGET_NAME% ^| findstr /C:"密码"') do set PASSWORD=%%b
复制代码


编写自启动脚本
新建一个vbs,如webdav.vbs,复制以下内容粘贴保存,注意改为脚本实际路径。
  1. set ws=WScript.CreateObject("WScript.Shell")
  2. ws.Run "C:\webdav.bat  /start",0
复制代码

将自启动脚本放置于
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

重启计算机试试,应该可以成功挂载。

Linux应该更简单[debian]
先安装fuse3和rclone
  1. apt update
  2. apt install fuse3 -y
  3. 安装rclone
  4. rclone config
  5. 按要求添加webdav信息
复制代码


复制以下内容运行
新建文件夹 /home/webdav /home/temp
  1. mkdir -p /home/webdav /home/temp && chmod 777 /home/webdav /home/temp
复制代码


复制以下内容运行
不着急,检查命令是否有问题
  1. rclone mount webdav:/ /home/webdav --cache-dir=/home/temp/ --vfs-cache-mode full --vfs-cache-max-size 1G --vfs-read-ahead 64M --buffer-size 128M
复制代码


没问题再复制以下内容运行
添加守护进程
  1. cat > /lib/systemd/system/webdav-mount.service <<EOF
  2. [Unit]
  3. Description=webdav

  4. [Service]
  5. Environment='REMOTE_PATH=webdav:/'
  6. Environment='LOCAL_PATH=/home/webdav'

  7. Type=simple
  8. User=root
  9. ExecStart=/usr/bin/rclone mount webdav:/ /home/webdav --cache-dir=/home/temp/ --vfs-cache-mode full --vfs-cache-max-size 1G --vfs-read-ahead 64M --buffer-size 128M
  10. ExecStop=fusermount -qzu /home/webdav
  11. Restart=on-failure

  12. [Install]
  13. WantedBy=multi-user.target
  14. EOF
复制代码


systemctl start webdav-mount
systemctl status webdav-mount
systemctl enable webdav-mount

df -h
应该就能看到挂载在本地的webdav储存了
发表于 2024-11-6 11:28:00 来自手机 | 显示全部楼层
windows自带挂载感觉不太好用
我印象中似乎还有缓存,也不释放,占用空间,看起来不爽。
好点的客户端应该只有raidrive。还要用老版本的
速度上也不满意,似乎只有内网合适用 外网的服务就合适一些文件管理和小文件
 楼主| 发表于 2024-11-6 11:29:31 | 显示全部楼层
万亩斜阳 发表于 2024-11-6 11:28
windows自带挂载感觉不太好用
我印象中似乎还有缓存,也不释放,占用空间,看起来不爽。
好点的客户端应该 ...

确实,用起来很奇怪
发表于 2024-11-6 11:38:43 | 显示全部楼层
RaiDrive V1.80我是不打算升级了
挂载局域网FTP,WEBDAV,有更好的选择吗?
发表于 2024-11-6 11:40:33 | 显示全部楼层
webdav慢的很,不过应该是我网络的原因
我韩国龟壳+alist+阿里盘。挂载到本地当图床卡死了,
 楼主| 发表于 2024-11-6 11:41:49 | 显示全部楼层

Mountain Duck
infuse
如果搭建服务可以用自带的阿帕奇
发表于 2024-11-6 11:45:57 | 显示全部楼层
win7支持直接挂载吗
发表于 2024-11-6 11:46:12 | 显示全部楼层
请问一下,AIMP如何填写AList的WebDAV地址?我试过好几次都搞不定
192.168.32.165:5244/dav不行
192.168.32.165/dav也不行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-1-16 00:45 , Processed in 0.063057 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表