可搜索,可注册,可登录,致敬逗比大佬!尽在救援版逗比根据地 dbgjd.com
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

逗比 Toyo 205℃ 0评论

前段时间有个人说让我写写 Caddy WebDAV插件的教程,然而我都没听过这玩意,研究了一下还有点意思。

简单介绍

WebDAV 是 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写、重命名等操作,相当于一个简单的网盘功能。


一些软件支持 WebDAV ,可以直接把某些文件放在 WebDAV 服务器内或者从 WebDAV 服务器内读取文件,而今天我就来介绍一下将 WebDAV 服务器映射成 Windows 的网络驱动器(网络硬盘/网盘),其他系统也支持这种操作,但是我没有相应系统所以只介绍 Windows 系统。

玩法的话,比如你的服务器上面安装的有 Aria2 之类的BT下载软件,那么可以直接把 BT下载文件夹映射到 Windows本地,这样的话 BT文件 下载后,直接就能读取或者播放了,当然传输速度取决于你与服务器之间的连接速度。


很多HTTP服务程序都支持 WebDAV,比如Nginx ,而我们用更简单的方式去创建 WebDAV 服务。

安装 Caddy(创建 WebDAV 服务)

如果你要同时安装多个 Caddy 插件,那么请修改下面的命令格式为:bash caddy_install.sh install http.webdav,xxx,xxx(逗号分隔多个插件名称)。

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.webdav 

安装Caddy成功后,继续新建一个用于使用的虚拟主机文件夹,例如 file(可以自己改):

mkdir /usr/local/caddy/www mkdir /usr/local/caddy/www/file # 这个文件夹就是你要映射到本地电脑的文件夹,你可以创建一个新的,或者跳过该步骤直接使用其他文件夹。

配置 Caddy(配置 WebDAV 服务)

首先,我们先讲一下,WebDAV扩展各个参数(WebDAV插件官方说明)。

webdav [url] {     scope       path     modify      [true|false]     allow       path     allow_r     regex     block       path     block_r     regex } 
  1. url 是要设置的网站URL。默认是 / (比如 /doubi 那么访问地址就是 http://xxxx.xxx/doubi )。
  2. scope 是要浏览的服务器文件目录路径,可以使相对或绝对路径。默认是 ./ 。
  3. modify 表示是否允许编辑/修改文件. 默认为允许 true
  4. allow 和 block 用于允许或拒绝访问指定文件或目录,可以是相对路径。可以使用 dotfiles 来允许或拒绝以 . (点)开头的每个文件的访问权限(以 . 开头的文件往往都是隐藏文件)。
  5. allow_r 和 block_r 是上面选项的变体,区别是可以使用正则表达式。

配置示例

以下示例中,虚拟主机文件夹为:/usr/local/caddy/www/file,配置时请自行根据需求修改。

示例域名为:toyoo.pw (注意修改)。

示例用户名为:admin (注意修改)。

示例密码为:password (注意修改)。

注意:以下示例中都是用的标准端口 HTTP(80) HTTPS(443) ,端口是可以修改的,只需要在域名后面加上 :8888 这样的端口号即可(例如 http://toyoo.pw:8888)。

IP HTTP

本示例是,绑定虚拟主机为IP(即通过IP访问),HTTP协议(80端口,端口可以改)。

点击展开 查看内容

# 以下全部内容是一个整体,是一个命令,全部复制并修改后粘贴到SSH软件中并一起执行! echo ":80 {  root /usr/local/caddy/www/file  timeouts none  gzip  basicauth / admin password  webdav {   scope /usr/local/caddy/www/file  } }" > /usr/local/caddy/Caddyfile 

域名 HTTP

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTP协议(80端口,端口可以改)。

点击展开 查看内容

# 以下全部内容是一个整体,是一个命令,全部复制并修改后粘贴到SSH软件中并一起执行(注意替换示例域名)! echo "http://toyoo.pw {  root /usr/local/caddy/www/file  timeouts none  gzip  basicauth / admin password  webdav {   scope /usr/local/caddy/www/file  } }" > /usr/local/caddy/Caddyfile 

域名 HTTPS

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTPS协议(443端口,端口可以改)。

点击展开 查看内容

如果你有 SSL证书和密匙的话,把 SSL证书(xxx.crt)和密匙(xxx.key)文件放到 /root 文件夹下(可以是其他文件夹,自己改代码),然后这样做:

# 以下全部内容是一个整体,是一个命令,全部复制并修改后粘贴到SSH软件中并一起执行(注意替换示例域名)! echo "toyoo.pw {  root /usr/local/caddy/www/file  timeouts none  tls /root/xxx.crt /root/xxx.key  gzip  basicauth / admin password  webdav {   scope /usr/local/caddy/www/file  } }" > /usr/local/caddy/Caddyfile 

如果你没有 SSL证书和密匙,那么你可以这样做:

下面的 [email protected] 改成你的邮箱,同时需要注意的是,申请 SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则 Caddy会申请并配置失败!

# 以下全部内容是一个整体,是一个命令,全部复制并修改后粘贴到SSH软件中并一起执行(注意替换示例域名)! echo "toyoo.pw {  root /usr/local/caddy/www/file  timeouts none  tls [email protected]  gzip  basicauth / admin password  webdav {   scope /usr/local/caddy/www/file  } }" > /usr/local/caddy/Caddyfile 

域名 HTTP重定向 HTTPS(仅手动指定SSL证书和密匙)

本示例是,域名HTTP重定向为HTTPS。

当你是手动指定 SSL证书和密匙 来配置的话,Caddy只会监听 443端口(https),并不会自动设置 80端口(http)的重定向,如果要做重定向的话,可以这样做:

点击展开 查看内容

下面的示例代码中,是把 http://toyoo.pw 重定向到了 https://toyoo.pw

# 以下全部内容是一个整体,是一个命令,全部复制并修改后粘贴到SSH软件中并一起执行(注意替换示例域名)! echo "http://toyoo.pw {  timeouts none  redir https://toyoo.pw{url} } toyoo.pw {  root /usr/local/caddy/www/file  timeouts none  tls /root/xxx.crt /root/xxx.key  gzip  basicauth / admin password  webdav {   scope /usr/local/caddy/www/file  } }" > /usr/local/caddy/Caddyfile 


当你已经配置完上面步骤后,那就要启动 Caddy 了。

/etc/init.d/caddy start # 如果启动失败可以看Caddy日志: tail -f /tmp/caddy.log

启动成功后,我们访问 WebDAV 地址看看,这里我是按照示例中的 IP HTTP 做的,访问后会提示输入用户名和密码,最后看到的就是如下图所示。

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

Caddy 使用说明

启动:/etc/init.d/caddy start

停止:/etc/init.d/caddy stop

重启:/etc/init.d/caddy restart

查看状态:/etc/init.d/caddy status

查看Caddy启动日志: cat /tmp/caddy.log

Caddy配置文件位置:/usr/local/caddy/Caddyfile

Caddy自动申请SSL证书位置:/.caddy/acme/acme-v02.api.letsencrypt.org/sites/xxx.xxx(域名)/

Windows 映射网络驱动器

右键桌面上的电脑图标,点击右键菜单 – 映射网络驱动器…

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

选择一个驱动器号(就是 C盘、D盘 这种)。

然后文件夹输入你的 WebDAV 地址,我的是以上面配置示例中的 IP HTTP 为例。

注意:如果你的 WebDAV 地址为 HTTP协议,那么还需要修改下注册表:#修改注册表以支持连接 HTTP协议

然后勾选 登陆时重新连接使用其他凭据连接

最后点击 完成 按钮即可。

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

然后就会提示你输入访问用户名和密码,输入后勾选 记住我的凭据,并点击 确定 按钮。

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

几秒后,就会连接成功并弹出新建的 Z盘(网络驱动器),然后我们就可以像平时操作本地硬盘一样的添加、删除、重命名这些文件了。

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

其他说明

修改注册表以支持连接 HTTP协议 的 WebDAV

因为考虑到安全性的问题,所以 Windows 默认是不能通过 HTTP协议 连接 WebDAV 服务器的,但是注册表中可以修改这个。

Win键+R键 (Win键可能是个微软图标的按键),弹出运行窗口,输入 regedit 后回车,就会看到注册表编辑器了。

如下图所示,我们访问路径:计算机/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/WebClient/Parameters (直接复制并粘贴到注册表编辑器的地址栏中回车即可)。

BasicAuthLevel 的值改为 2 ( 1 代表只支持 HTTPS,2 代表支持 HTTP 和 HTTPS)

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

重新连接时的用户名密码说明

重新连接时,可以看到 Windows 记住的密码长度不对,这实际上是正常的,不需要修改也不需要勾选 记住我的凭据,直接点击 确定 按钮即可。

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

手动启动 WebClient 服务方法

一般情况下,WebClient(WebDAV) 服务都是关闭的,当你使用 网络驱动器 功能时,系统会自动启动该服务,但是如果因为未知原因为启动失败,那么可以这样手动启动服务。

Win键+R键 (Win键可能是个微软图标的按键),弹出运行窗口,输入 services.msc 后回车,就会看到服务管理窗口了。

我们找到 WebClient 服务,右键弹出菜单 – 点击属性选项,然后如下图所示把启动类型改为 自动,并点击 启动 按钮(下图是点击后的状态)。

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

删除网络驱动器

删除网络驱动器也很简单,不要在 资源管理器 中直接右键断开连接,这样可能会导致网络驱动器残留,请按这个方法删除(断开)。

右键桌面上的电脑图标,点击右键菜单 – 断开映射网络驱动器的连接…

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

然后选择你打算 删除(断开) 的网络驱动器,并点击 确定 按钮。

通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

转载请注明:逗比根据地 » 通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当 网络硬盘

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址