将个人文件夹挂载到服务器上,通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当网络硬盘 | 很文博客...
前段时间有个人说让大旭写写 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 服务)
wget -N --no-check-certificate https://softs.fun/Bash/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.webdav
# 如果上面这个脚本无法下载,尝试使用备用下载:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/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
}
url 是要设置的网站URL。默认是 / (比如 /hiwnen 那么访问地址就是 http://xxxx.xxx/hinwen1 )。
scope是要浏览的服务器文件目录路径,可以使相对或绝对路径。默认是 ./ 。
modify 表示是否允许编辑/修改文件. 默认为允许 true。
allow 和 block 用于允许或拒绝访问指定文件或目录,可以是相对路径。可以使用 dotfiles 来允许或拒绝以 . (点)开头的每个文件的访问权限(以 . 开头的文件往往都是隐藏文件)。
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 "https://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证书和密匙,那么你可以这样做:
下面的 xxxx@xxx.xx 改成你的邮箱,同时需要注意的是,申请 SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则 Caddy会申请并配置失败!
# 以下全部内容是一个整体,是一个命令,全部复制并修改后粘贴到SSH软件中并一起执行(注意替换示例域名)!
echo "https://toyoo.pw {
root /usr/local/caddy/www/file
timeouts none
tls xxxx@xxx.xx
gzip
basicauth / admin password
webdav {
scope /usr/local/caddy/www/file
}
}" > /usr/local/caddy/Caddyfile
域名 HTTP重定向 HTTPS
本示例是,域名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}
}
https://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 做的,访问后会提示输入用户名和密码,最后看到的就是如下图所示。
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-v01.api.letsencrypt.org/sites/xxx.xxx(域名)/
Windows 映射网络驱动器
展开
右键桌面上的电脑图标,点击右键菜单 - 映射网络驱动器...
选择一个驱动器号(就是 C盘、D盘 这种)。
然后文件夹输入你的 WebDAV 地址,我的是以上面配置示例中的 IP HTTP 为例。
注意:如果你的 WebDAV 地址为 HTTP协议,那么还需要修改下注册表:#修改注册表以支持连接 HTTP协议
然后勾选 登陆时重新连接 和 使用其他凭据连接 。
最后点击 完成 按钮即可。
然后就会提示你输入访问用户名和密码,输入后勾选 记住我的凭据,并点击 确定 按钮。
几秒后,就会连接成功并弹出新建的 Z盘(网络驱动器),然后我们就可以像平时操作本地硬盘一样的添加、删除、重命名这些文件了。
其他说明
修改注册表以支持连接 HTTP协议 的 WebDAV
因为考虑到安全性的问题,所以 Windows 默认是不能通过 HTTP协议 连接 WebDAV 服务器的,但是注册表中可以修改这个。
展开
按 Win键+R键 (Win键可能是个微软图标的按键),弹出运行窗口,输入 regedit 后回车,就会看到注册表编辑器了。
如下图所示,我们访问路径:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters (直接复制并粘贴到注册表编辑器的地址栏中回车即可)。
把 BasicAuthLevel 的值改为 2 ( 1 代表只支持 HTTPS,2 代表支持 HTTP 和 HTTPS)
重新连接时的用户名密码说明
重新连接时,可以看到 Windows 记住的密码长度不对,这实际上是正常的,不需要修改也不需要勾选 记住我的凭据,直接点击 确定 按钮即可。
手动启动 WebClient 服务方法
一般情况下,WebClient(WebDAV) 服务都是关闭的,当你使用 网络驱动器 功能时,系统会自动启动该服务,但是如果因为未知原因为启动失败,那么可以这样手动启动服务。
展开
按 Win键+R键 (Win键可能是个微软图标的按键),弹出运行窗口,输入 services.msc 后回车,就会看到服务管理窗口了。
我们找到 WebClient 服务,右键弹出菜单 - 点击属性选项,然后如下图所示把启动类型改为 自动,并点击 启动 按钮(下图是点击后的状态)。
删除网络驱动器
删除网络驱动器也很简单,不要在 资源管理器 中直接右键断开连接,这样可能会导致网络驱动器残留,请按这个方法删除(断开)。
展开
右键桌面上的电脑图标,点击右键菜单 - 断开映射网络驱动器的连接...
然后选择你打算 删除(断开) 的网络驱动器,并点击 确定 按钮。
将个人文件夹挂载到服务器上,通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当网络硬盘 | 很文博客...相关推荐
- 通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本.图片.视频等文件 文章目录: 1 在服务器端开启一个服务 2 在本地浏览器中输入服务器的ip地址 1 在服务器端开启一个服务 python -m ...
- java用itextPDF生成PDF文件保存至本地并上传至ftp服务器
标题java用itextPDF生成PDF文件保存至本地并上传至ftp服务器 所需jar :itext-asian-5.2.0.jar,itextpdf-5.5.5.jar,commons-net-3. ...
- 在Windows服务器上搭建Nuget私人服务器(超~详细)
在Windows服务器上搭建Nuget私人服务器 一.使用VS2017/VS2019新建空白解决方案,操作如图: 步骤一:这里以VS2019为例,打开VS2019,选择[创建新项目]选项: 步骤二:选 ...
- 金蝶系统服务器上怎样备份文件,金蝶服务器数据库备份
金蝶服务器数据库备份 内容精选 换一换 云服务器备份:云服务器备份可以对普通服务器进行整机备份或部分磁盘备份,不适用于部署了数据库等应用的服务器.支持备份弹性云服务器ECS和裸金属服务器BMS,成本相 ...
- 软件文档 服务器上,软件挂到服务器上面
软件挂到服务器上面 内容精选 换一换 HSS提供漏洞管理功能,检测Linux软件漏洞.Windows系统漏洞和Web-CMS漏洞.在漏洞管理界面,您可以查看漏洞的信息和状态,根据修复紧急度排查主机中的 ...
- php 同步文件到服务器上,PHPstorm配置同步服务器文件
一.配置服务器 1.连接配置 打开菜单栏 Tools -> Deployment -> Configuration 点击 + 选择 SFTP,并填写相关服务器信息: Type:连接类型,这 ...
- Linux服务器上传 .class用base64加密,转换文件到服务器的技巧
1.适用场景 有的服务器不允许直接上传文件,可以使用base64命令来绕过 2.在本地先转换.class文件为base64,再保存为MathGame.txt [doda@host166 demo]$ ...
- 如何把文件cdn服务器上,如何在cdn服务器上上传视频文件?
我试图通过api在cdn服务器(hwcdn.net服务器)上传视频,但得到以下错误. "0470无效的文件名(包括AZ,az,0-9, - ,_,',.)"如何在cdn服务器上上传 ...
- linux服务器上svn的log_SVN如何查看修改的文件记录
主要是有四个命令,svn log用来展示svn 的版本作者.日期.路径等等:svn diff,用来显示特定修改的行级详细信息:svn cat,取得在特定版本的某文件显示在当前屏幕:svn list, ...
- [转]文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1
转自:http://blog.csdn.net/soarheaven/archive/2008/12/08/3474152.aspx 最近项目需要对FTP服务器进行操作,现把实现总结如下: 打算分2篇 ...
最新文章
- Sping中利用HandlerExceptionResolver实现全局异常捕获
- 何必分个孰优孰劣呢?!
- 数据表格搜索php代码_手把手教学:提取PDF各种表格文本数据(附代码)
- thinkphp如果表名有下划线需要用Model
- Django中扩展Paginator实现分页
- Triangle Leetcode
- [C++11 std::thread] 使用C++11 编写 Linux 多线程程序
- div图片垂直居中 如何使div中图片垂直居中
- ai面试的优缺点_面试也能开“外挂”?领英AI做了什么
- PHP 根据referer 跳转,PHP利用REFERER根居访问来地址进行页面跳转
- 计算(数字)的观点看世界
- CentOS 7上快速安装saltstack
- 南阳oj-----找球号(一)(set)
- Telerik UI for Xamarin使用教程 - AndroidX使用指南
- 应用密码学:单表代替密码简单介绍
- 个人主页 — github + jekyll 搭建自己的个人主页
- 如何在Android上安装LineageOS
- python打印列表中指定元素的所有下标(5种方法)
- 定积分的基本性质3 保序性
- python import illegal instruction