分类
Linux 笔记

WebDAV挂载/映射

一直使用NextCloud做私有云,电脑手机同步共享资料,很是方便。服务器放在家里,在家共享文件一直始用Samba。使用Samba写入的文件,不能被记录在NextCloud中,无法在外网同步,所以需要新的解决方案。NextCloud是支持WebDAV协议的,在手机上,我可以用第三方资源管理器做NextCloud客户端,那么在电脑上,该如何映射呢?

Windows解决方案

打开运行,输入cmd,在控制台输入:

net use Y: https://cloud.wangzhengzhen.com/remote.php/webdav  /user:qizheng /persistent:YES password




这里我用的盘符是Y盘
其中 qizheng 是我的用户名
密码把 password 换成对应的密码。
/persistent 表示保存映射,下次开机还在。
执行完,打开资源管理器,可以看到磁盘映射了。
如果下次开机,发现不能打开磁盘,访问失败,可以检查 WebClient 服务是否开启。

补充:
从Windows Vista起,微软就禁用了http形式的基本WebDAV验证形式(KB841215),必须使用https连接,但是架设在AppFog上的免费账户对SSL证书无权限。所以在Windows Vista/7/8中,要方便地映射ownCloud文件为系统上的“网络位置”,就必须改注册表……
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
找到BasicAuthLevel把这个值从1改为2,然后进控制面板,服务,把WebClient服务重启(没有启动的就启动它)。
在某些版本的 Windows 操作系统中,WebDAV 驱动器的最大文件大小被限制为 50MB。如果你试图复制超过 50MB 大小的文件,Windows 就会弹出错误提示框。当然,这个限制是可以通过修改注册表来消除的。将注册表中位于
HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\FileSizeLimitInBytes
处的键值由 50000000 (50MB) 修改为更大的数值。最大修改为:4294967295(0xffffffff)字节,即4G。

附(虽说Windows图形化很成熟,但有些常用命令应该撑握,才会更高效。):
在运行中输入 regedit 打开注册表
在运行中输入 services.msc 打开系统服务

Linux解决方案

我使用的是Ubuntu操作系统,也是我的服务器系统。在Linux下可以使用 davfs2 挂载目录。
安装:apt install davfs2
执行命令后系统会自动安装,出现以下提示,选是。

安装完成,我在当前主目录新建一个webdav的文件夹,然后使用命令:

sudo mount -t davfs http://192.168.2.230:81/remote.php/webdav ./webdav/


我的本地是有做DNS服务器,在局域网内能自动解析我的外网域名 cloud.wangzhengzhen.com 到内网IP地址,并且nginx上有配置https,但是发现 davfs2 不能挂载https协议的。不知道是不是因为在那台机器上域名指向本身的问题。所以直接使用本机局域网地址和docker映射的端口访问。执行命令后,可以看到文件挂载成功。

总结:
使用WebDAV访问NextCloud和网页版或客户端一样,对所有的文件操作都会有记录,删除也是会进NextCloud维护的回收站,这样就能保证同步。
PS:前些时间台风山竹影响,这几天家里老停电。只要停电,手机上会发现云服务断开。到时候想办法看能不能用其他方案,提高服务质量,而成本不变。毕竟自己个人使用,如果托管到那些云上,每年费用开销很大。

“WebDAV挂载/映射”上的9条回复

博主你好 挂载上了 但是却看不到文件 状态栏里面显示为脱机不可用,但是可以正常上传文件是怎么回事

请教博主个问题, 我搭建了docker官方nextcloud, 自己用nginx做了https链接. 但是现在遇到的问题是: app登陆和webDAV无法识别域名, 都是指向localhost内网. 知道这个问题怎么解决不?

先访问docker映射的端口,用ip访问。正常的话问题应该是nginx原因。配置先用http试一下,再用https,逐个排除。nginx代理时,记得header也要设置过去。这是我的配置可以参考下。
server {
listen 443;
listen [::]:443;
server_name cloud.wangzhengzhen.com;

ssl on;
ssl_certificate /cert.pem;
ssl_certificate_key /cert.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

client_max_body_size 1024M;

location / {
proxy_pass http://127.0.0.1:10081/;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}

发表评论

电子邮件地址不会被公开。