首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCP突然中止:管道破裂,消息认证代码不正确

SCP突然中止:管道破裂,消息认证代码不正确
EN

Unix & Linux用户
提问于 2017-11-24 13:05:50
回答 2查看 10.8K关注 0票数 3

相关主题

我的问题与断管,消息认证代码不正确类似,但并不完全相同,但没有答案。

任务

将大型文件从一个Linux复制到另一个Linux。两者都站在同一个ISP位置。

设置

源和目标都是:Ubuntu16.04.3 LTS

OpenSSH_7.2p2 Ubuntu-4 ubuntu2.2,OpenSSL 1.0.2g,2016年3月1日

源码机已经使用了一年,没有问题。目标机器是一个新设置的专用服务器(1天)。

scp命令:

代码语言:javascript
复制
scp -P [customport] /some/large/file user@targetmachine:/target/folder/

该文件的大小约为20 GB。

问题描述

它通常在大约3-4%后流产.全速约为112 2MB/S。当我使用例如scp -l 16384节流时,它的速度约为2MB/s,在很晚的时间内中止,但以类似的百分比。

流产总是以完全相同的方式进行。客户得到:

代码语言:javascript
复制
Write failed: Broken pipe 
lost connection

而服务器在/var/log/auth.log中具有此功能。

代码语言:javascript
复制
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

Investigation

我已经尝试了iptables的启用和禁用,没有任何改变。

在大约10次尝试中,1次成功结束,然后下一次文件再次中止。

似乎在重新启动目标机器之后,可以向其写入更多的字节。

SSH没问题。我可以将空闲的ssh连接打开几个小时,或者在运行top命令而不会中断的情况下。

问题

这是个阻滞剂。首先,似乎不可能复制一个200 to的文件。第二,我不想要一台生产中有网络问题的机器。

我怎样才能进一步调查这件事呢?

我在其他地方读到过,这可能是网卡/硬件的问题,我如何向我的提供商证明这一点以获得替换?

更新1

10分钟mtr的结果看起来很好:

代码语言:javascript
复制
└─(~)─(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%的速度失败,速率为111 44/秒。失败立刻又来了,在此之前没有停顿。

关于可能的重复:我总是得到“断管”,而不是“套接字的协议错误类型”。不使用Mac,这两个Linux (以上版本)。不使用rsync。据我所知,答案是用户在服务器上放了另一张网卡,而不知道实际原因是什么。我没有这个选项(远程主机中心的专用服务器)。

这是关于网卡的lshw输出:

代码语言:javascript
复制
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

代码语言:javascript
复制
apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

但VM还没有启动。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-12-01 07:36:24

这是一个“最低限度的-不-不”的装置。“最小”版本的Ubuntu很可能从一开始就起作用了。

这些命令用于将hwe安装到这个故障的no-hwe版本中(因此没有完全重新安装):

代码语言:javascript
复制
apt-get install --install-recommends linux-generic-hwe-16.04
shutdown -r now

在此之后,所有scp副本都工作,没有中止。

另外,终端中的问候语仍然显示

代码语言:javascript
复制
"myuser@Ubuntu-1604-xenial-64-minimal-no-hwe"

尽管现在开始了。

我再次澄清了修复之前的行为:这台机器的所有大型scp,从不同的位置,中止,而所有scp从这台机器,到不同的位置,成功。

这是服务器规范https://www.hetzner.de/epyc-server,尽管hoster没有为主板/网络指定模型。

票数 0
EN

Unix & Linux用户

发布于 2019-06-10 08:59:35

在使用scprsync + samba/cifs时,我也遇到过类似的问题。

rsync + samba/cifs端,通过在客户端挂载服务器时使用--cache=none绕过写缓存解决了这个问题(也请参阅rsync一直断开连接:断管)。在使Linux与本地磁盘读取并发写入网络文件系统上对这个问题的根本原因作了深入的解释。

使用scp,您可以考虑控制传输速率,以避免在磁盘能够赶上之前填充页面缓存,例如,请参阅https://stackoverflow.com/questions/30020519/broken-pipe-error-on-scp

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/406804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档