我正在使用一个托管在虚拟机 (vm-A) 中的 owncloud 10.0.10 服务器,但我无权访问该服务器。我可以使用 webdav 从我的家用电脑和我管理的付费提供商的虚拟机 (vm-B) 连接到它。一切运行顺利(读取/写入文件)。我最近从我的工作 (vm-C) 获得了对第三台虚拟机的访问权限。当设置从 vm-C 到 vm-A 中的 webdav 服务器的 webdav 访问权限时,我可以浏览共享,但写入共享时出现问题 - 它仅适用于非常小的文件(<10kB)。这在 davfs2 和 rclone 上都会发生。
我很困惑,因为 vm-B(正常工作)和 vm-C(已损坏)都是我设置的,它们都是 Debian 稳定系统(使用的所有软件完全相同 - 配置文件是逐字复制的)。此外,vm-C 仅在与 vm-A“对话”时出现故障,第二台机器(vm-B - nextcloud - 最新稳定版本)上有一个 webdav 服务器,vm-C 使用 webdav 将大文件写入此服务器没有任何问题。
使用 rclone 时,日志显示:
2022/01/10 21:47:31 DEBUG : PUT /remote.php/dav/files/username/testfile HTTP/1.1
Host: host.url
User-Agent: rclone/v1.53.3-DEV
Content-Length: 40960
Authorization: XXXX
Content-Type: application/octet-stream
Oc-Checksum: SHA1:c90116149196cbf74ffb453ecb3b12945372ebfa
Referer: https://host.url/remote.php/dav/files/username/
X-Oc-Mtime: 1641851243
Accept-Encoding: gzip
2022/01/10 21:47:31 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2022/01/10 21:47:51 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2022/01/10 21:47:51 DEBUG : HTTP RESPONSE (req 0xc000222100)
2022/01/10 21:47:51 DEBUG : Error: read tcp 192.168.193.13:55270->45.61.32.79:443: read: connection reset by peer
2022/01/10 21:53:04 DEBUG : DELETE /remote.php/dav/files/username/testfile HTTP/1.1
2022/01/10 21:53:04 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2022/01/10 21:53:05 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2022/01/10 21:53:05 DEBUG : HTTP RESPONSE (req 0xc00067ba00)
2022/01/10 21:53:05 DEBUG : HTTP/1.1 404 Not Found
有时小文件(<10kB)也会出现相同的错误消息,但第二次或第三次重试时上传就会成功。
答案1
在对可以访问的虚拟机 (vm-c) 进行一些搜索后,我发现有问题的两台机器位于同一个本地网络中。最终发现是路由器出现了发夹问题。我无法控制实际的路由器硬件来真正解决问题。作为一种解决方法,使用代理服务器可以绕过该问题。例如,
$ export https_proxy="http://WORKING_PROXY_SERVER"
$ rclone -vv 复制测试文件 webdav-server:
作品。