将文件从 Windows 8 复制到 Ubuntu 导致未知的网络错误

将文件从 Windows 8 复制到 Ubuntu 导致未知的网络错误

我设置了一台新的家庭服务器(Ubuntu 14.04、AMD 64、3GB RAM 等)。我已设置共享目录的权限,但在将某些文件复制到这些目录时遇到了问题。

我可以毫无问题地在这些目录中创建、修改、重命名、删除等文件。我正在将文件从我的新 Windows 8.1 计算机复制到服务器。我可以复制较小的文件(文本文件、小型 PNG 等),但较大的文件不起作用。我确实将 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters 下的 FileSizeLimitInBytes 键从其默认值设置为 0x3b9aca00(1,000,000,000)(为便于查看添加了逗号),这似乎是它可以接受的最大值。

我不确定该问题是否与 Ubuntu 相关或与 Windows 相关。

我尝试了以下方法:

  1. 从命令行复制大约 1-2 分钟后会出现消息“发生意外的网络错误”。

  2. 从资源管理器复制:复制对话框打开,显示“正在计算”,进度条有时会前进,有时不会,在 0-2% 之间,但始终显示计算,最后显示错误(0x8007003B):发生意外的网络错误。

  3. 我研究过这个错误,但找不到任何与 Windows 8 相关的信息或修复。

  4. 我查看了 Ubuntu 服务器上的日志文件,没有任何异常。它没有记录与这些文件相关的任何错误。

奇怪的是,出现此错误后,服务器上的目标目录中已创建一个文件并显示完整大小,但进一步检查属性,磁盘上的大小介于 3-8 MB 之间(每次都会变化)。该文件没有损坏,因为我已从中安装了程序,并尝试复制其他类型的文件。它们也出现了同样的问题。

我还查看了 Webmin 下的活动 Samba 连接,在目录旁边显示“DENY_NONE”状态,在文件尝试复制时显示“DENY_ALL”。但是,Samba 日志中没有日志错误/拒绝/等。这些目录的权限是正确的(用户 rwx、组 rwx、其他 - / 775)。ACL 已安装并处于活动状态。

我不知道下一步该做什么。显然,如果不能将文件复制到服务器,那就没什么意义了。提前感谢任何指导。

答案1

对于那些访问此页面寻求解决方案的人。

这种情况不仅发生在 Windows 8 上,也发生在 Windows Server 2012 R2 上。

增加发送 (SEND) 和接收 (RECEIVE) 缓冲区可能会解决该问题。

在您的 smb.conf 中添加以下行并重新启动服务。

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

另一种方法是编辑/etc/sysctl.conf并添加

net.ipv4.tcp_wmem = 4096 32768 131072
net.ipv4.tcp_rmem = 4096 87380 174760

然后运行sysctl -p以使更改生效。但这只对较小文件(100Mb)有帮助。它在出错之前传输得足够快。大文件传输(1Gb 以上)仍然会失败。不过它可能对其他应用程序有帮助。

相关内容