2011-06-09 02:12:42 +0000 2011-06-09 02:12:42 +0000
84
84

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

我有一个奇怪的问题:当我在本地Windows 7上使用PuTTY与SSH连接到一个Linux服务器上的VMware时,我经常会得到一个错误提示"Network error: Software caused connection abort",然后PuTTY SSH窗口处于非活动状态。通常情况下,我可以用PuTTY登录到服务器上做一些事情,但过了一段时间(大约一两分钟),我就会得到这个错误。而且有时我甚至无法登录,得到一个错误提示超时。

我猜测是我的VMware播放器出了问题,因为我有另一个Ubuntu桌面托管在VMware中作为代码仓库服务器,当我做SVN更新/提交时,它更多的时候会出现超时错误。但是,我也猜测Windows 7有一些怪癖,因为同样的Ubuntu服务器托管在VMware中作为代码库服务器,在Windows Vista上运行时,效果非常好 我从Windows XP搬到Windows Vista,然后又搬到Windows 7之后,似乎所有的坏事都发生了!

这个问题可能是什么原因,怎么解决?启用 sshd TCPKeepAlive 2. 将 sshd ClientAliveInterval 设置为 900ClientAliveCountMax 设置为 3 3. 将PuTTY连接设置 “keepalives之间的秒数 "设置为5

但这些都不行! 而且在PuTTY中的SSH会话在一段时间后仍然中断!

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

我真的不知道为什么。有一件事不得不提,当我用PuTTY SSH连接到远程服务器的时候,一切正常!

当我登录失败时,ping也失败了!

我在登录失败的时候,ping也失败了!但是,怎么会这样呢?但是,怎么会出现这种情况呢?我用VMware player在我的本地机器上托管Linux服务器!

答案 (12)

60
60
60
2012-06-25 18:52:15 +0000

仅适用于Windows XP或以前的操作系统:

我在9年前写的这个答案是针对Windows XP的,Putty软件已经有21年的历史了,所以这个答案对历史有用。Window目前基于智能手机的Zune-OS for Desktop在网络层面上破解了Putty,为了追求刺激性,把所有不属于Azure Vendor工具栈的付费进入或退出点都给赶走了。

Putty有一个功能,试图解决这个问题:

Network Error: Software caused connection abort
  1. 启动Putty
  2. 如果你已经保存了连接设置
  3. 点击 “连接”
  4. 4. 在 “发送空包以保持会话活动 "一栏,将其改为5秒。如果网络中断是你的问题,300秒可能会更好,请阅读下面的详细内容。

如何用Putty防止断线:

有些网络路由器和防火墙需要记录所有通过它们的连接。通常情况下,如果在一定的时间间隔后没有任何数据传输,这些防火墙会认为连接已死。如果一段时间内没有看到会话中的流量,这可能会导致PuTTY 会话被防火墙意外关闭。如果您发现防火墙切断了空闲连接,可以尝试在此字段中输入一个非零值。这个值是以秒为单位的;因此,例如,如果你的防火墙在十分钟后切断连接,那么你可能需要在框中输入300秒(5分钟)。 在网络中断时,你会有被中间人攻击的风险。你必须重新认证自己,以确保安全。Putty不会强加给你,它只是把你丢掉。

所以使用autologin,让putty代表你自动登录。用puttygen工具生成一个私钥用puttygen工具。 2. 将公钥粘贴到服务器端的/home/youruser/.ssh/authorized_keys中,在你使用putty登录的服务器上。在putty设置中的Connection->SSH->Auth 4. 4. 通过指定私钥文件在 "Putty "下添加私钥。” 5.保存putty的连接设置,然后你可以通过putty双击你的连接,它应该会带你直接进入终端,而不需要输入用户名/密码。所以,当wifi坏了,你被丢掉的时候,你按下F6键,就可以在这个连接上钩住登录。你按下F6键就可以重新登录。如何解决这个问题?使用 “屏幕 "程序。通过输入 "屏幕 "创建一个新的屏幕。

当你被踢出并自动登录时,你可以重新连接到你的屏幕上。这里有一个关于如何做到这一点的教程。http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/

每次被踢出后都要输入screen重新连接,很麻烦。所以你可以写一个脚本,"自动把你带回最后一个可用的屏幕",让它透明化。

所以当putty终端冻结时。它看起来是这样的。你轻蔑的哼了一声,按下Alt+F4键关闭腻子,再按下F6键。在6秒内,你就会回到你离开的地方。

更好的解决方案,理论上来说*

理论上,你可以将上述整个过程编写成脚本,让终端检测到它被删除,并在恢复网络连接时为你做上述所有步骤。如果有人知道有一个程序可以自动完成这个过程,请告诉我。

来源: http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter4.html#config-keepalive http://rafaelwolf.com/?p=516

10
10
10
2012-08-20 13:35:11 +0000

PuTTY 网络故障排除

Software caused connection abort

阅读 PuTTY 对该错误的解释

这是 Windows 网络代码因某种原因杀死已建立的连接时产生的一般错误。例如,如果您将网线从连接了以太网的计算机后面拔出,或者 Windows 有其他类似的理由认为整个网络已经无法连接,就会出现这种情况。如果你的客户端和服务器之间的网络瘫痪,然后你的客户端试图发送一些数据,Windows会尝试几次发送数据,然后放弃并杀死连接。特别是,如果你使用SSH-2和PuTTY尝试密钥重换,即使你没有输入任何东西,也会出现这种情况。

(如果你在连接中使用 keepalives,也会出现这种情况。其他人报告说keepalives为他们修复了这个错误。(keepalives 有其优点和缺点。))

我们不知道为什么会出现这个错误,而这个错误是PuTTY中的一个错误。问题出在您、您的 Windows 系统、网络和远程系统之间。

**尝试不同的 SSH 客户端*

最有可能的问题存在于 PuTTY 和目标 SSH 服务器之间。要提供证据,请使用不同的 SSH 客户端,如 http://kitty.9bis.net ) ,看看问题是否也发生在该客户端上。很可能会发生,这将使问题与 PuTTY 隔离开来。

怀疑 Internet 连接有问题*

可能是 Internet 连接有问题。互联网连接 监测互联网连接的正常运行时间是一个很好的方法,可以确定您的ISP是否丢失了数据包,是造成PuTTY下降的原因。获取一些可以测试互联网连接正常运行时间的软件。例如, http://code.google.com/p/internetconnectivitymonitor/ 。频繁、长时间断网是违反了ISP的服务要求。如果是这种情况,就很难证明是ISP的错,因为技术支持会自动将这些问题归咎于你的电脑、操作系统、路由器和家里的线路。如果你使用的是有线网络,而且住在郊区,那么可能是邻居家的硬件有问题,当他们第一次开机时,有可能会在线路上发送几秒钟/分钟的静电。最后,也有可能是ISP的网络中的硬件有问题,到你家的网络有可能是ISP的硬件有问题。ISP更换硬件的成本很高,很多时候,除非有足够的用户在一个区域内有足够的用户,否则他们是不会更换的。它有多大的年纪了?你的路由器可能是问题所在。老式的无线和有线技术会老化,会零星掉落连接,重启后会导致PuTTY死机。从方程中移除这些组件,看看是否能解决问题。试试有线连接和/或不同的路由器,看看是否能解决这个问题。我有一个Linksys无线路由器遭受这种缓慢的死亡和掉落连接,并重新启动它们。

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

你用SSH连接的计算机有一个策略,让SSH连接保持活的秒数。出于安全考虑,这个数字设置得很低,你可以增加它。此设置的位置取决于您使用的是提供 SSH 的操作系统。

如果您通过虚拟机使用 PuTTY 通过虚拟机*

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

如果网络连接不好,SSH客户端连接的变通方法:

如果你的ISP提供了一个不稳定的连接,那么你可以用 “ssh autologin "让断开连接不那么痛苦。你要做的是生成一个公钥和私钥。然后告诉你的外国服务器自动让任何提供准确私钥的人进入。这并不能完全解决你的问题,但是当网络中断时,你所做的就是关闭窗口,双击一个图标,你就会立即被带回到你的主文件夹命令行,而不需要输入用户名/密码。

这个可以帮你解决这个问题 有没有一种方法可以在PuTTY中用密码 "自动登录"?

4
4
4
2013-10-29 16:48:06 +0000

我在Windows PC上使用CentOS服务器,在PuTTY上也遇到了同样的问题。一个会话持续时间不超过1-5分钟。我试着用PuTTY设置(keepalives等),但一点用处都没有。我发现在断开连接前的25-30秒内,在客户端的转储中会有几次TCP段的重传(包括客户端和服务器端),最后PuTTY发送RST,并以该错误关闭会话。在服务器端的转储中,我在这段时间内没有看到客户端的任何段,甚至连RST都没有。也就是说,从时间上看,客户端没有任何TCP段传递到服务器,这段时间大概是30-60秒。这种情况我记录了几次,总是有重传,最后PuTTY的RST也有。可能是路由上的某个地方的数据包被网络设备丢掉了。

为了解决这个问题,我把最大的数据重传次数从默认的5次增加到16次。这可以防止PuTTY过快地断开连接。这个变量是 “HKEY/LOCAL/MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/TcpMaxDataRetranranmissionss"。我手动添加了这个变量,在我的Windows系统中并没有定义这个变量。它确实有帮助! 现在我看到PuTTY时不时地挂起,但它总是能恢复工作。记录一个TCP转储,并在断开连接前查找重传和RST。2. 2. 如果发现有相同的重传/RST段,调整服务器端或客户端的重试次数(这取决于RST端)。

4
4
4
2013-02-08 19:08:00 +0000

在高阶命令提示符中,运行以下内容:

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
3
3
3
2014-11-26 09:57:12 +0000

错误网络错误。如果网络上有一个**IP地址冲突_**(两台或更多的计算机有相同的IP地址),就会导致PuTTY的软件导致连接中止。(我曾经在一台Raspberry Pi上遇到过这个问题,它的IP地址被DHCP服务器分配给了一些流氓设备/计算机,而这些设备/计算机被手动设置为使用相同的IP地址。)

在这种特殊情况下,可能是Windows 7计算机的本地IP地址冲突,也可能是与网络上的其他设备的IP地址冲突。Wireshark](http://en.wikipedia.org/wiki/Wireshark)可以用来成功追踪这种错误。

2
2
2
2012-08-24 09:09:46 +0000

连接选项卡:keep alive设置为 “5 "秒,并启用了

但更重要的是:

Connection -> SSH -> Kex, Max minutes before rekey: ”

我的PuTTY在一段时间后失去了密钥,导致超时。把这个值降到 “2 "分钟就解决了问题。我现在可以无限期地保持连接了。

2
2
2
2012-08-20 13:41:23 +0000

错误10053 WSAECONNABORTED(软件导致的连接中止)是一个通用的Winsock错误,它可以由多种原因造成。官方解释] (http://technet.microsoft.com/en-us/library/cc976365.aspx)说:

当本地网络系统中止连接时,可能会出现这种错误,例如当Winsock在数据重传失败后关闭已建立的连接时(接收器永远不会承认数据流套接字上发送的数据)。我们不可能提供单一的解决方案。

2
2
2
2013-02-28 23:27:57 +0000

我在安装了一个新的WLAN路由器/3G调制解调器连接到互联网后,我也遇到了同样的问题。

然后我想起了90年代的时候,当我有一台座机电话调制解调器的时候,MTU(最大传输单位),基本上就是传输数据的最大容量,它对连接的稳定性有明显的影响。

于是我检查了一下我的WLAN路由器的配置,找到了MTU的设置,并将其从固定值1424改为 “自动"(我本想试试更小的值,但 "自动 "听起来更好)。在这之后,我再也没有PuTTY的问题了–现在的连接很稳固。我希望这至少能帮助到有 "网络错误:软件导致连接中止 "问题的人。

1
1
1
2017-05-31 04:54:07 +0000

其实,我也曾多次面临这个问题。我找了好几个小时的解决方案,但没有一个是有效的。

我把Windows 10作为主机O/S和Redhat-7作为客机O/S,而我的VMware有桥接连接。作为DBA,我必须访问客户,我必须按照客户的要求设置我的网络配置。因此,每当我离开客户处所,通过无线连接到另一个网络,并打开虚拟机时,我就会遇到问题中提到的问题。于是,我想了一会儿,检查了一下我的局域网以太网和无线以太网的配置,发现不匹配。由于我的VM会自动使用两个网络之间的物理以太网进行桥接。所以当我将LAN/无线以太网的网络配置重置为DHCP时,它就像魔术般成功了,不再有连接中止。你也可以在设置为DHCP后重新启动你的主机。

1
1
1
2013-03-12 16:11:43 +0000

我在使用WinSCP脚本或GUI控制台时也遇到了同样的问题。最后我发现这和速度有关(网速–我们的服务器是在互联网上)。我把脚本移到了网络中不同的位置,不同的站点,GUI和脚本都不顺利,

经过大量的分析和整理,终于解决了。

0
0
0
2011-06-09 22:30:02 +0000

你需要在Linux上启用TCPKeepAlive

在网站上的PuTTy的FAQ里有解释,当你在 搜索这个错误的时候。

0
0
0
2013-01-10 17:23:40 +0000

如果虚拟机运行在您的本地硬件上,请禁用keep alive数据包。