我正在使用托管在我无权访问的虚拟机 (vm-A) 中的 owncloud 10.0.10 服务器。我可以从我的家用 PC 和我管理的付费提供商 (vm-B) 的虚拟机中使用 webdav 连接到它。一切顺利(读/写文件)。我最近获得了从我的工作 (vm-C) 访问第三个虚拟机的权限。当设置从 vm-C 到 vm-A 中的 webdav 服务器的 webdav 访问时,我可以浏览共享,但写入共享被破坏 - 它仅适用于非常小的文件 (<10kB)。davfs2 和 rclone 都会发生这种情况。
我很困惑,因为 vm-B(工作)和 vm-C(损坏)都是由我设置的,并且它们都是 Debian 稳定系统(使用的所有软件都完全相同 - 配置文件是逐字复制的)。另外 vm-C 仅在与 vm-A “对话”时才会损坏,第二台机器上有一个 webdav 服务器(vm-B - nextcloud - 最新稳定版本),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) 上,但在第二次或第三次重试时上传成功。
在对我可以访问的虚拟机(vm-c)进行一些搜索后,我发现有问题的两台机器位于同一个本地网络中。它最终成为发夹的路由器问题。我无法控制实际的路由器硬件来实际解决问题。作为一种解决方法,使用代理服务器可以绕过该问题。在示例中
作品。