我正在尝试将一些大约 2GB 的文件发送到运行 Fedora 36 的家庭服务器。我的笔记本电脑上装有 Pop OS! 22.04。两者都通过以太网直接连接到我的路由器。遗憾的是,我遇到了错误,我不知道该如何修复它们。我知道有很多帖子都提到了类似的问题,但我还没有找到适合我的解决方案。
我尝试跑步同步,结果如下:
data.zip
413,040,640 15% 98.50MB/s 0:00:22 client_loop: send disconnect: Broken pipe
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(823) [sender=3.2.3]
然后我尝试SCP这给了我这个:
client_loop: send disconnect: Broken pipe
lost connection
和克隆返回此结果并重试多次:
2022-09-17 15:44:57 ERROR : sftp://[email protected]:22/: Discarding closed SSH connection: read tcp 192.168.1.17:51790->192.168.1.200:22: read: connection reset by peer
2022-09-17 15:44:57 ERROR : data.zip: Failed to copy: Update ReadFrom failed: connection lost
总的来说,我检查了 dmesg 和 journalctl,但没找到对我有帮助的东西。以下是我已经尝试过的方法:
- 限制传输速度
- 检查是否有足够的可用空间(是的,有超过 150GiB 的可用空间)
- 设置“
ServerAliveInterval
”和“ServerAliveCountMax
” - 增加超时时间(传输通常会在几秒钟内失败,所以这重要吗?)
- 压缩/创建 tar 并传输
- 在两台机器上使用 rsync 3.2.3
- 在我的服务器上的另一个驱动器上写入
- 运行“
dmesg | grep rsync
”查看是否有东西出现。它没有返回任何内容) - 强制清除内存
echo 3 > /proc/sys/vm/drop_caches
- 还重新下载、刷新并重新安装了 Fedora 36。
现在你可能会认为我的笔记本电脑可能有问题。但奇怪的是,我可以毫无问题地将数据传输到运行 Raspberry Pi OS 的 Pi4 或从 Pi4 传输数据。
如果有人有进一步的想法那就太好了:)
编辑:这是有关我的系统的一些信息。
主服务器: 我的家庭服务器的 neofetch 输出
笔记本电脑: 我的笔记本电脑的 neofetch 输出
编辑 2:尝试在单独的网络(新路由器)上进行传输,只连接媒体服务器和我的笔记本电脑(无 WAN 访问)。如果没有任何重复的 IP、主机名或 MAC 地址分配,它也不会工作
答案1
在 @Hastur 建议检查从我的笔记本电脑和 Pi4 到我的服务器的传输后,我发现了一些东西。我翻遍了journalctl _COMM=sshd
显示 sshd 日志的命令,ssh_dispatch_run_fatal: Connection from user user 192.168.1.XXX port XXX: message authentication code incorrect
每次传输失败时我都会看到这一行。要么是我错过了,要么它没有出现在我查看的日志文件中。
无论如何……我现在搜索了如何解决这个问题。在尝试和谷歌搜索了一堆之后,我偶然发现了这个页面:https://p5r.uk/blog/2014/ssh-corrupted-mac-on-input.html这恰好解决了我的问题。我ethtool -K eth0 tx off rx off
在服务器上运行并开始了新的传输。突然一切都顺利完成,在传输了大约 50GiB 后,它没有再次抛出该错误。
我猜它现在起作用了。