PuTTY网络错误:软件导致连接中止


81

我有一个奇怪的问题:当我将SSH与PuTTY一起使用时,使用SSH连接到本地Windows 7上的VMware中托管的Linux服务器时,我经常会收到错误消息,然后说PuTTY SSH窗口处于非活动状态。通常,我可以使用PuTTY登录服务器并执行某些操作,但是经过一段随机时间(大约一两分钟)后,我得到了该错误。有时我什至无法登录,并提示超时。"Network error: Software caused connection abort"

我猜我的VMware Player出问题了,因为我在VMware中托管了另一个Ubuntu桌面作为代码存储服务器,并且在执行SVN更新/提交时,它经常会出现超时错误。但是,我也猜想Windows 7会有一些奇怪之处,因为在Windows Vista上,与VMware托管的相同的Ubuntu服务器作为代码存储库可以很好地工作!从Windows XP迁移到Windows Vista再迁移到Windows 7之后,似乎所有坏事都会发生!

这个问题可能是什么原因,如何解决?

补品

我进行了Google搜索,并应用了所有方法来提供帮助,包括:

  1. 启用sshd TCPKeepAlive
  2. sshd的设置ClientAliveInterval900ClientAliveCountMax3
  3. 将PuTTY连接设置“保持连接的秒数”设置为5

但是这些都不起作用!而且一段时间后,PuTTY中的SSH会话仍然中断!

我同时关闭了Linux服务器防火墙和Windows 7客户端防火墙,但是登录仍然超时!真烦人!

似乎有时我可以登录,但有时登录超时!我真的不知道为什么 它让我疯狂!

我必须提到的一件事是,当我使用PuTTY SSH连接到远程服务器时,一切都OK!

当我无法登录时,ping也失败!但是,那怎么可能呢?我使用VMware Player在本地计算机上托管Linux服务器!


主动使用ssh连接时会收到此错误吗?还是让它闲置一会儿之后?
MaQleod 2011年

1
它对闲人是不活跃的。但是有时我什至无法登录超时。
罗伯特

1
我将检查SSH服务器的会话超时设置。
MaQleod 2011年

但是通常,我什至无法通过腻子登录服务器以超时!
罗伯特

3
这个问题解决了吗?我尝试了下面列出的大多数解决方案,但似乎没有任何效果。还有其他建议吗?我所面对的问题与罗伯特(Robert)的原始问题完全相同
user682765 2013年

Answers:


58

腻子具有尝试解决此问题的功能:

Network Error: Software caused connection abort
  1. 开始腻子
  2. 如果保存了连接设置,请加载它们
  3. 点击“连接”
  4. 在“发送空数据包以保持会话活动状态”部分,将其更改为5秒。如果您遇到网络中断的问题,则300秒可能会更好,请阅读以下详细信息。

在此处输入图片说明

如何保持活动以防止与腻子断开连接:

一些网络路由器和防火墙需要跟踪通过它们的所有连接。通常,如果在一定时间间隔后没有在任何方向上传输任何数据,这些防火墙将假定连接已死。如果一段时间内未在会话中看到任何流量,这可能会导致防火墙意外关闭PuTTY会话。

使用keepalive选项(“ keepalive之间的秒数”),您可以配置PuTTY以定期通过会话发送数据,而不会破坏实际的终端会话。如果发现防火墙正在切断空闲连接,则可以尝试在此字段中输入非零值。该值以秒为单位;因此,例如,如果防火墙在十分钟后切断了连接,则可能需要在框中输入300秒(5分钟)。

使用腻子自动登录和“屏幕”工具减少问题

油灰不能处理糟糕的wifi,一次只能在几分钟内失去连接。解决方法是使用自动登录和屏幕。

在互联网连接中断一分钟后,腻子重新同步终端是一个不平凡的问题。在中断期间,您会冒着中间攻击的风险。无论如何,您都必须重新进行身份验证以确保身份。腻子并不强加于您,它只会使您摔倒。

因此,请使用自动登录,以便腻子可以代表您自动登录。

  1. 腻子计算机上的腻子工具生成私钥。
  2. 将公用密钥粘贴到您/home/youruser/.ssh/authorized_keys在服务器端,正在使用腻子登录的服务器上。
  3. 在腻子设置Connection-> SSH-> Auth中使私有密钥可被腻子访问
  4. 通过在“用于身份验证的私钥文件”下指定私钥文件来添加私钥。
  5. 保存腻子连接设置。

然后,您将可以通过腻子双击您的连接,这应该使您直接进入终端,而无需输入用户名/密码。

因此,现在您可以使用键盘组合(如)在该连接上登录腻子F6。因此,当wifi变坏而您掉线时。您捣毁F6,然后重新登录。

但是您仍然会丢失终端的状态!如何解决?使用“屏幕”程序。键入“屏幕”以创建新屏幕。创建一个新屏幕。

被踢出并自动登录后,您可以重新连接到屏幕。这是有关如何执行此操作的教程:http : //www.tecmint.com/screen-command-examples-to-manage-linux-terminals/

screen每次下车时输入并重新连接都很麻烦。因此,您可以编写一个脚本,该脚本将“自动将您带回到上一个可用的屏幕”以使其透明。

因此,当油灰终端冻结时。看起来像这样:轻视一下,混搭Alt + F4以关闭油灰,混搭F6。在6秒内,您又回到了您停下的位置。

理论上更好的解决方案

从理论上讲,您可以编写出上述整个过程的脚本,因此终端可以检测到它何时被丢弃,并为您执行上述所有步骤以恢复Internet连接。如果有人知道自动执行此操作的程序,请通知我。会很整洁。

资料来源:

http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter4.html#config-keepalive

http://rafaelwolf.com/?p=516


您好,我这样做,但是我仍然收到软件连接关闭错误
tuskiomi

此外,两次连接之间保持连接的秒数无法保存。
赵刚

10

解决PuTTY网络错误

Software caused connection abort

阅读有关该错误的PuTTY怎么说

这是Windows网络代码由于某种原因而终止已建立的连接时所产生的一般错误。例如,如果将网络电缆从连接以太网的计算机背面拔出,或者Windows出于其他类似原因认为整个网络都无法访问,则可能会发生这种情况。

如果Windows在响应该错误的连接另一端的计算机上放弃了此错误,则也会生成此错误。如果客户端和服务器之间的网络断开,然后客户端尝试发送一些数据,则Windows将进行几次尝试发送数据,然后放弃并终止连接。特别是,即使您未键入任何内容,也可能发生这种情况,如果您使用的是SSH-2,而PuTTY尝试重新进行密钥交换。

(如果在连接中使用keepalive,也会发生这种情况。其他人报告说keepalive为他们解决了这个错误。(keepalive的优缺点。)

我们不知道可能发生此错误的任何原因,这表示PuTTY中存在错误。问题出在您,您的Windows系统,您的网络和远程系统之间。

尝试其他SSH客户端

问题很可能存在于PuTTY和目标SSH服务器之间。为了提供证据,请使用不同的SSH客户端,例如(http://kitty.9bis.net),并查看问题是否也发生了。它可能会将问题与PuTTY隔离开。

怀疑互联网连接不正确

问题可能出在Internet连接不正确。Internet连接监视Internet连接的正常运行时间是确定ISP是否丢失数据包的好方法,并且应归咎于PuTTY下降。获取一些测试Internet连接正常运行时间的软件。例如,http://code.google.com/p/internetconnectivitymonitor/。与Internet频繁且长时间断开连接违反了ISP服务要求。如果是这种情况,将很难证明这是ISP的故障,因为技术支持会自动将这些问题归咎于您的计算机,操作系统,路由器以及与家庭的连线。如果您使用的是有线互联网并过着忙碌的生活,邻居家中有缺陷的硬件在首次打开时可能会在几秒钟/分钟的时间内在网上发送静电。最后,您的家庭的ISP网络中可能存在故障的硬件。ISP更换硬件的成本如此之高,以至于很多时候他们不会这样做,除非某个地区有足够的订户来保证成本。

怀疑有线/无线路由器

您是否通过有线/无线路由器进行连接?几岁了?您的路由器可能是问题所在。旧的无线和有线技术可能会变旧并偶尔断开连接并重新启动它们,从而导致PuTTY死亡。从方程式中删除这些组件,看看是否可以解决问题。尝试有线连接和/或其他路由器,看看是否可以解决问题。我的Linksys无线路由器遭受这种缓慢的死亡,并断开连接并重新启动它们。

怀疑提供SSH连接的操作系统

您正在使用SSH连接的计算机有一个策略,用于指定秒数以保持SSH连接的活动状态。出于安全原因,此数字设置得较低,您可以增加它。此设置的位置取决于所使用的提供SSH的操作系统。

如果您通过虚拟机使用PuTTY

如果您使用的是通过虚拟机传递的PuTTY,则虚拟机上可能存在一个策略,当该策略认为服务器处于非活动状态时,它将断开与服务器的SSH连接。增加这些值取决于您所使用的虚拟机软件和操作系统。

如果Internet连接不良,则SSH客户端连接解决方​​法:

如果您的ISP提供了不稳定的连接,则可以使用“ ssh autologin”使断开连接的痛苦减轻。您要做的是生成一个公钥和私钥。然后,您告诉外部服务器自动让任何提供准确私钥的人进入。它不能完全解决您的问题,但是当发生Internet中断时,您要做的就是关闭窗口,双击图标,然后您会立即返回到主文件夹命令行,而无需输入用户名/密码。

这将为您提供帮助: 是否可以在PuTTY中使用密码“自动登录”?


4

在提升的命令提示符下,运行以下命令:

C:\Windows\system32>netsh int tcp show global

Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State          : enabled

Chimney Offload State               : automatic

NetDMA State                        : enabled

Direct Cache Acess (DCA)            : disabled

Receive Window Auto-Tuning Level    : normal

Add-On Congestion Control Provider  : none

ECN Capability                      : disabled

RFC 1323 Timestamps                 : disabled

如果Receive Window Auto-Tuning Level正常,那么您会遇到问题。禁用它,然后一切都可以像以前那样工作:

C:\Windows\system32>netsh int tcp set global autotuninglevel=disabled

5
您能解释一下为什么这样/为什么吗?
Eiyrioü冯Kauyf


对我的情况没有帮助。
reinierpost

4

我使用Windows PC 上的CentOS服务器工作,而PuTTY也遇到相同的问题。一个会话的持续时间不超过1-5分钟。我尝试使用PuTTY设置(keepalives等)玩,但它根本没有帮助。

最终,我找到了适合我的情况的解决方案。 我已经在客户端和服务器上记录了TCP转储。我发现在断开连接之前的25-30秒内,客户端转储中有几次TCP分段的重传(都是从客户端的和从服务器端的),最后PuTTY发送RST并关闭该错误的会话。在服务器转储中,在此期间,我什至没有看到来自客户端的任何段,甚至没有RST。这意味着有时客户端的任何TCP段都不会传递到服务器,并且此时间段大约为30-60秒。我已经记录了好几次,并且总是有来自PuTTY的重发和最终的RST。路由包上的某处可能是网络设备丢弃的。

为了解决此问题,我将最大数据重传次数从默认值5增加到了16。这可以防止PuTTY断开得太快。变量为“ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ TcpMaxDataRetransmissions”。我已手动添加了此变量,但最初不是在Windows操作系统中定义的。确实有帮助!现在我看到PuTTY不时挂起,但是它总是可以恢复工作。

解决此问题的方法: 1.在断开连接之前,记录一个TCP转储并查找重传和RST。2.如果找到相同的重传/ RST段,请调整服务器或客户端(取决于RST端)的重试次数。

注意:更改TCP设置适用于所有软件和操作系统本身。


3

错误网络错误:如果网络上存在IP地址冲突(两台或多台计算机具有相同的IP地址),则会导致软件从PuTTY中导致连接中断。(我遇到了一个Raspberry Pi问题,该树莓派DHCP服务器分配的IP地址与某些流氓设备/计算机手动设置为使用相同的IP地址)。

在这种特定情况下,可能是Windows 7计算机上本地或与网络上的其他设备发生IP地址冲突。Wireshark可用于成功跟踪此类错误。


2

该错误10053 WSAECONNABORTED(由软件引起的连接中止。)是一个常见的Winsock错误,由于多种原因,该错误可能会发出。

负责人解释说:

当本地网络系统中止连接时,例如在数据重传失败后Winsock关闭已建立的连接(接收方从不确认在数据流套接字上发送的数据)时,会发生此错误。

出现此问题的原因可能从网络电缆损坏到简单的连接丢失。提供单一解决方案是不可能的。


2

安装新的WLAN路由器/ 3G调制解调器连接到Internet之后,我在PuTTY上也遇到了同样的问题。我尝试了以上所有的“保持连接状态”解决方案-以及路由器配置菜单中的所有解决方案-均无效。

然后,我想起了90年代的陆地电话调制解调器:MTU(最大传输单元),基本上是传输的数据块的最大大小-它对连接的稳定性产生了显着影响。

因此,我检查了WLAN路由器的配置,找到了MTU设置,并将其从固定值1424更改为“自动”(我想尝试使用较小的值,但“自动”听起来更好)。在那之后,我再也没有使用PuTTY的问题-现在连接非常牢固。我希望这至少对解决“网络错误:软件导致连接中断”问题的人有所帮助。


2

连接标签:保持活动状态为“ 5”秒并启用

但更重要的是:

连接 -> SSH- > Kex,重新输入密钥之前的最长时间:“ 2”(默认为60)。

一段时间后,我的腻子丢失了密钥,导致超时。将该值降至“ 2”分钟即可解决问题。我现在可以无限期保持联系。


1

我在WinSCP脚本或GUI控制台中遇到了相同的问题。最终,我发现这与速度有关(Internet速度-我们的服务器位于Internet上)。我将脚本移动到了网络中的不同位置,不同的站点,并且GUI和Script都无法正常运行。

经过大量的分析和整理后,它才被整理出来。


0

您需要TCPKeepAlive在Linux 上启用。

当您搜索此错误时,在网站上的PuTTy常见问题解答中对此进行了解释。


但是TCPKeepAlive的默认值为yes。但是,我已经启用了它。但是现在登录超时是第一个问题。有任何想法吗?
罗伯特

我同时关闭了Linux服务器防火墙和Windows-7客户端防火墙,但是登录仍然超时!真烦人!
罗伯特

似乎有时我可以登录,但有时登录超时!我真的不知道为什么 它让我疯狂!
罗伯特

0

如果虚拟机在本地硬件上运行,请禁用保持活动数据包。


6
您能否扩大答案?也许给未来的访客指示?
2013年

我和OP的情况相反-我的VM是连接到主机的ssh客户端,该客户端经常断开连接。禁用保持活动似乎已经解决了该问题。我想知道为什么。
拉曼

0

实际上,我多次面对这个问题。我搜索了花费数小时的解决方案,但没有一个是有效的。我正在分享对我有用的解决方案,希望对其他人也有所帮助。

我将Windows 10作为主机O / S,将Redhat-7作为来宾O / S,而我的VMware已桥接连接。作为DBA,我必须拜访客户,并且必须根据客户场所设置网络配置。因此,每当我离开客户端并通过无线和开放式VM连接到另一个网络时,都会遇到问题中所述的相同问题。所以我想了一会儿,检查了LAN以太网和无线以太网的配置,发现不匹配。因为我的VM会自动使用两者之间的物理以太网进行桥接。因此,当我将LAN /无线以太网的网络配置重置为DHCP时,它就像魅力一样工作,不再有连接中断。[您也可以在将主机设置为DHCP后重新启动主机。]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.