相关话题
我的问题类似于但不完全相同SSH破管,消息认证码不正确对此没有答案。
任务
将大文件从一个 Linux 复制到另一个 Linux。两者均位于同一 ISP 位置。
设置
源和目标都是:Ubuntu 16.04.3 LTS
两者的 SSH 版本:OpenSSH_7.2p2 Ubuntu-4ubuntu2.2、OpenSSL 1.0.2g 2016 年 3 月 1 日
源机已使用一年,没有任何问题。目标计算机是新设置的专用服务器(1 天)。
scp命令:
scp -P [customport] /some/large/file user@targetmachine:/target/folder/
该文件大小约为 20 GB。
问题描述
它通常会在大约 3-4% 后中止。全速约为112MB/s。当我使用例如 scp -l 16384 进行节流时,它的速度约为 2MB/s,中止时间要晚得多,但百分比相似。
中止总是以完全相同的方式进行。客户得到:
Write failed: Broken pipe
lost connection
虽然服务器在 /var/log/auth.log 中有此内容
Nov 24 13:04:54 Ubuntu-1604-xenial-64-minimal-no-hwe sshd[1900]: Corrupted MAC on input.
Nov 24 13:04:54 Ubuntu-1604-xenial-64-minimal-no-hwe sshd[1900]: fatal: ssh_dispatch_run_fatal: Connection from [client-ip] port 54050: message authentication code incorrect
调查
我已经尝试过启用和禁用 iptables,没有任何变化。
在大约 10 次尝试中,有 1 次成功完成,然后下一个文件再次中止。
看来重启目标机器后,可以写入更多字节。
SSH没问题。我可以将空闲的 ssh 连接保持打开状态数小时,或者在命令top
运行且不会中断的情况下保持连接。
问题
这是一个拦截器。首先,复制 200GB 的文件似乎是不可能的。其次,我不希望生产中的机器出现网络问题。
我可以做什么来进一步调查此事?
我在其他地方读到这可能是网卡/硬件问题,我如何向我的提供商证明这一点以获得更换?
更新1
10 分钟的结果mtr
看起来不错:
└─(~)─(49 files, 12Gb)─> mtr -r -c 600 -rw [targetserver]
Start: Fri Nov 24 18:36:21 2017
HOST: Ubuntu-1404-trusty-64-minimal Loss% Snt Last Avg Best Wrst StDev
1.|-- static.XX.XX.XX.XX.clients.your-server.de 0.0% 600 0.5 0.3 0.2 24.5 1.3
2.|-- core24.fsn1.hetzner.com 0.0% 600 0.3 0.3 0.2 6.8 0.4
3.|-- core22.fsn1.hetzner.com 0.0% 600 0.4 0.4 0.3 9.7 0.8
4.|-- ex9k2.dc1.fsn1.hetzner.com 0.0% 600 0.4 0.5 0.3 6.8 0.8
5.|-- my.target.hostname 0.0% 600 0.4 0.3 0.3 0.4 0.0
┌(myuser@Ubuntu-1404-trusty-64-minimal)─(✓)─(06:46 PM Fri Nov 24)
之后我又尝试了另一个 scp,7.5GB 后失败率为 44%,速率为 111MB/秒。失败再次立即来临,在此之前没有任何停滞。
关于可能的重复:我总是得到“破损的管道”,而不是“套接字的协议类型错误”。不使用 Mac,都是 Linux(以上版本)。不使用rsync。据我了解,答案是用户将另一张网卡插入服务器,但没有弄清楚实际原因是什么。我没有这个选项(远程主机中心的专用服务器)。
以下是有关网卡的 lshw 输出:
myuser@Ubuntu-1604-xenial-64-minimal-no-hwe /home/myuser # lshw -class network
*-network:0 DISABLED
description: Ethernet interface
product: NetXtreme II BCM57810 10 Gigabit Ethernet
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:61:00.0
logical name: eth0
version: 10
serial: e0:d5:5e:1e:73:18
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm vpd msix pciexpress bus_master cap_list rom ethernet physical fibre 1000bt-fd
configuration: autonegotiation=off broadcast=yes driver=bnx2x driverversion=1.712.30-0 firmware=bc 7.14.2 latency=0 link=no multicast=yes port=fibre
resources: iomemory:14c0-14bf iomemory:14c0-14bf iomemory:14c0-14bf irq:81 memory:14c0b000000-14c0b7fffff memory:14c0a800000-14c0affffff memory:14c0b810000-14c0b81ffff memory:e5f80000-e5ffffff memory:14c0ba20000-14c0bc1ffff memory:14c0bca0000-14c0bd1ffff
*-network:1 DISABLED
description: Ethernet interface
product: NetXtreme II BCM57810 10 Gigabit Ethernet
vendor: Broadcom Corporation
physical id: 0.1
bus info: pci@0000:61:00.1
logical name: eth1
version: 10
serial: e0:d5:5e:1e:73:1a
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm vpd msix pciexpress bus_master cap_list rom ethernet physical fibre 1000bt-fd
configuration: autonegotiation=off broadcast=yes driver=bnx2x driverversion=1.712.30-0 firmware=bc 7.14.2 latency=0 link=no multicast=yes port=fibre
resources: iomemory:14c0-14bf iomemory:14c0-14bf iomemory:14c0-14bf irq:102 memory:14c0a000000-14c0a7fffff memory:14c09800000-14c09ffffff memory:14c0b800000-14c0b80ffff memory:e5f00000-e5f7ffff memory:14c0b820000-14c0ba1ffff memory:14c0bc20000-14c0bc9ffff
*-network:0
description: Ethernet interface
product: I350 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:62:00.0
logical name: eth2
version: 01
serial: 6c:b3:11:23:32:18
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.3.0-k duplex=full firmware=1.63, 0x80000cbb ip=94.130.51.145 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:71 memory:e5900000-e59fffff memory:e5a84000-e5a87fff memory:e5a00000-e5a7ffff memory:14c0bf60000-14c0bf7ffff memory:14c0bf40000-14c0bf5ffff
*-network:1 DISABLED
description: Ethernet interface
product: I350 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0.1
bus info: pci@0000:62:00.1
logical name: eth3
version: 01
serial: 6c:b3:11:23:32:19
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.3.0-k firmware=1.63, 0x80000cbb latency=0 link=no multicast=yes port=twisted pair
resources: irq:82 memory:e5800000-e58fffff memory:e5a80000-e5a83fff memory:14c0bf20000-14c0bf3ffff memory:14c0bf00000-14c0bf1ffff
*-network DISABLED
description: Ethernet interface
physical id: 1
logical name: virbr0-nic
serial: 52:54:00:80:b4:28
size: 10Mbit/s
capabilities: ethernet physical
configuration: autonegotiation=off broadcast=yes driver=tun driverversion=1.6 duplex=full link=no multicast=yes port=twisted pair speed=10Mbit/s
这提醒我,我确实安装了KVM
apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
但还没有虚拟机启动。
答案1
scp
我在使用或rsync
+ samba
/时遇到了类似的问题cifs
。
通过在客户端上安装服务器时绕过写入缓存,该问题在rsync
+ samba
/方面得到了解决(另请参阅cifs
--cache=none
rsync 不断断开连接:管道损坏)。关于此问题的根本原因的深入解释位于使 Linux 在本地磁盘读取的同时写入网络文件系统。
您scp
可以考虑限制传输速率,以避免在磁盘能够跟上之前填充页面缓存,请参见示例https://stackoverflow.com/questions/30020519/broken-pipe-error-on-scp。
答案2
这是一个“minimal-no-hwe”安装。 Ubuntu 的“最小”版本很可能从一开始就可以工作。
这些命令用于将 hwe 安装到此故障的 no-hwe 版本中(因此无需完全重新安装):
apt-get install --install-recommends linux-generic-hwe-16.04
shutdown -r now
此后,所有 scp 副本都可以工作,不会中止。
附注,终端中的问候语仍然显示
"myuser@Ubuntu-1604-xenial-64-minimal-no-hwe"
即使现在 hwe 已开启。
我再次澄清了此修复之前的行为:从不同位置到这台计算机的所有大型 scp 都中止,而从这台计算机到不同位置的所有大型 scp 都成功。
这是服务器规格https://www.hetzner.de/epyc-server尽管主机没有指定主板/网络的型号。