題 PuTTY網絡錯誤:軟件導致連接中止


我有一個奇怪的問題:當我使用PuTTY連接到託管的Linux服務器時,SSH VMware的 在我當地 Windows 7的,我經常得到錯誤說 "Network error: Software caused connection abort" 然後PuTTY SSH窗口處於非活動狀態。通常我可以使用PuTTY登錄服務器並執行某些操作,但是在一段隨機時間(大約一兩分鐘)之後我就會收到該錯誤。有時我甚至無法登錄,收到錯誤說超時。

我想我的VMware播放器有問題,因為我在VMware中託管了另一個Ubuntu桌面作為代碼存儲庫服務器,當我進行SVN更新/提交時,它經常會出現超時錯誤。但是,我也猜測Windows 7有一些怪癖,因為在VMware上作為代碼存儲庫託管的Ubuntu服務器在Windows Vista上工作得非常好!從Windows XP遷移到Windows Vista再到Windows 7之後,似乎發生了所有不好的事情!

這個問題可能是什麼原因以及如何解決?

補充

我進行了Google搜索並應用了所有方法來提供幫助,包括:

  1. 啟用sshd TCPKeepAlive
  2. 設置sshd ClientAliveInterval 至 900 和 ClientAliveCountMax 至 3
  3. 將PuTTY連接設置“keepalives之間的秒數”設置為 5

但這些都行不通!並且PuTTY中的SSH會話在一段時間後仍然會中斷!

我關閉了Linux服務器防火牆和Windows 7客戶端防火牆,但登錄時間仍然超時!這真煩人!

有時似乎我可以登錄,但有時登錄超時!我真的不知道為什麼。它讓我瘋狂!

我必須提到的一件事是,當我使用PuTTY SSH連接到遠程服務器時,一切正常!

當我無法登錄時,ping也失敗了!但是,這怎麼可能發生呢?我使用VMware播放器在本地計算機上託管Linux服務器!


74
2018-06-09 02:12


起源


在主動使用ssh連接時是否會出現此錯誤?或讓它暫停一段時間? - MaQleod
它對於一個詭計是不活躍的。但有時我甚至無法登錄超時。 - Robert
我會檢查SSH服務器的會話超時設置。 - MaQleod
但通常情況下,我甚至無法從putty登錄服務器超時! - Robert
這個問題解決了嗎?我嘗試了下面列出的大多數解決方案,似乎沒有什麼對我有用。還有其他建議嗎?我面對的問題與羅伯特的原始問題完全相同 - user682765


答案:


Putty有一個功能,試圖解決這個問題:

Network Error: Software caused connection abort
  1. 開始Putty
  2. 如果已保存連接設置,請加載它們
  3. 點擊“連接”
  4. 在“發送空包以保持會話活動”部分中,將其更改為5秒。如果網絡中斷是您的問題,300秒可能會更好,詳情請參閱下文。

enter image description here

Keepalive如何防止與Putty斷開連接:

一些網絡路由器和防火牆需要跟踪通過它們的所有連接。通常,如果在某個時間間隔之後沒有數據在任一方向上傳輸,這些防火牆將假定連接已經死亡。如果在一段時間內沒有在會話中看到任何流量,這可能會導致防火牆意外關閉PuTTY會話。

keepalive選項('keepalives之間的秒')允許您配置PuTTY以定期的方式通過會話發送數據,其方式不會中斷實際的終端會話。如果您發現防火牆正在關閉空閒連接,則可以嘗試在此字段中輸入非零值。該值以秒為單位;因此,例如,如果您的防火牆在十分鐘後關閉連接,那麼您可能需要在框中輸入300秒(5分鐘)。

使用putty自動登錄和“屏幕”工具減少問題

Putty無法處理蹩腳的wifi,一次失去幾分鐘的連接。解決方法是使用自動登錄和屏幕。

在互聯網連接中損失一分鐘後,膩子重新同步您的終端是一個非常重要的問題。在中斷期間,您在中間攻擊中冒著人的風險。無論如何,您必須重新驗證自己以確保自己。 Putty並沒有強加給你,它只會讓你失望。

因此,使用自動登錄,以便putty可以代表您自動登錄。

  1. 生成私鑰 使用puttygen工具 在你膩子的電腦上。
  2. 將公鑰粘貼到您的 /home/youruser/.ssh/authorized_keys 在服務器端,在您使用putty的服務器上登錄。
  3. 在putty設置Connection-> SSH-> Auth中使putty可以訪問私鑰
  4. 通過在“用於身份驗證的私鑰文件”下指定私鑰文件來添加私鑰。
  5. 保存putty連接設置。

然後你就可以通過putty雙擊你的連接了,它應該直接進入終端而不輸入用戶名/密碼。

所以現在你可以用鍵盤組合掛鉤登錄到那個連接上的putty F6。所以,當wifi變壞,你就會掉線。你混搭F6,你又回來了。

但你還是失去了終端的狀態!如何解決?使用“屏幕”程序。鍵入“screen”創建一個新屏幕。將創建一個新屏幕。

當你被踢出並自動登錄時,你可以重新連接到你的屏幕。這是一個如何做到這一點的教程: http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/

輸入是一件麻煩事 screen 每次掉線都重新連接。因此,您可以編寫一個“自動將您帶回到最後一個可用屏幕”的腳本,以使其透明。

那麼當膩子終端凍結時。它看起來像這樣:你嗤之以鼻,搗亂Alt + F4關閉膩子,Mash倒F6。在6秒內,您回到了離開的地方。

理論上更好的解決方案

從理論上講,您可以編寫完整的上述過程腳本,以便終端檢測到它何時被丟棄,並在恢復互聯網連接時執行上述所有步驟。如果有人知道自動執行此操作的程序,請告訴我。它會很整潔。

資料來源:

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

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


55
2018-06-25 18:52



你好,我這樣做,但我仍然得到軟件連接關閉錯誤 - tuskiomi


PuTTY網絡錯誤故障排除

Software caused connection abort

閱讀PuTTY對錯誤的評論

這是Windows網絡代碼由於某種原因導致已建立連接時產生的一般錯誤。例如,如果您將網絡電纜從以太網連接的計算機背面拉出,或者Windows有任何其他類似的理由相信整個網絡無法訪問,則可能會發生這種情況。

如果Windows在連接另一端的機器上放棄響應它,Windows也會生成此錯誤。如果客戶端和服務器之間的網絡出現故障,然後客戶端嘗試發送一些數據,Windows將嘗試多次發送數據,然後放棄並終止連接。特別是,即使您沒有鍵入任何內容,如果您使用SSH-2並且PuTTY嘗試進行密鑰重新交換,也會發生這種情況。

(如果您在連接中使用Keepalive,也會發生這種情況。其他人報告說,Keepalives會為他們修復此錯誤。(Keepalive的優點和缺點。))

我們不知道為什麼會出現可能代表PuTTY中的錯誤的錯誤。問題出在您,Windows系統,網絡和遠程系統之間。

嘗試使用其他SSH客戶端

很可能問題存在於PuTTY和目標SSH服務器之間。要為此提供證據,請使用不同的SSH客戶端(如(http://kitty.9bis.net)並查看問題是否也發生在那。它可能會將問題與PuTTY隔離開來。

懷疑互聯網連接不穩定

問題可能是互聯網連接不穩定。 Internet連接監視Internet連接的正常運行時間是確定您的ISP是否正在丟失數據包的一種好方法,並且應該歸咎於PuTTY發生故障。獲取一些測試Internet連接正常運行時間的軟件。例如, http://code.google.com/p/internetconnectivitymonitor/。頻繁和長時間斷開Internet是違反ISP服務要求的。如果是這種情況,很難證明這是ISP的錯,因為技術支持會自動將這些問題歸咎於您的計算機,操作系統,路由器和家庭佈線。如果您正在使用有線互聯網並且生活在無窮無盡的地方,那麼鄰居家中的有缺陷的硬件可能會在他們第一次打開時在線上發送靜態幾秒/分鐘。最後,ISP的網絡中有可能存在有缺陷的硬件。互聯網服務提供商更換硬件的成本非常高,除非一個地區有足夠的用戶來支付費用,否則往往不會這樣做。

懷疑有線/無線路由器

您是通過有線/無線路由器連接的嗎?多大了?您的路由器可能是問題所在。舊的無線和有線技術可能會老化並偶爾斷開連接並重新啟動它們,導致PuTTY死亡。從等式中刪除這些組件,看看是否能解決問題。嘗試有線連接和/或不同的路由器,看看是否能解決問題。我有一個Linksys無線路由器遭受這種緩慢的死亡和連接丟失並重新啟動它們。

懷疑提供SSH連接的操作系統

您使用SSH連接的計算機具有保持SSH連接活動的秒數策略。出於安全原因,此數字設置為低,您可以增加它。此設置取決於您使用的提供SSH的操作系統。

如果您通過虛擬機使用PuTTY

如果您使用PuTTY通過虛擬機,則虛擬機上可能存在一個策略,該策略在認為它處於非活動狀態時斷開與服務器的SSH連接。增加這些值取決於您使用的虛擬機軟件和操作系統。

如果Internet連接錯誤,SSH客戶端連接會解決:

如果您的ISP提供不穩定的連接,那麼您可以使用“ssh autologin”減少斷開連接。您所做的是生成公鑰和私鑰。並且您告訴您的外國服務器自動讓任何提供準確私鑰的人。它並不能完全解決您的問題,但是當發生Internet中斷時,您只需關閉窗口,雙擊一個圖標,即可立即返回到您的主文件夾命令行而無需輸入用戶名/密碼。

這將有助於你: 有沒有辦法在PuTTY中用密碼“自動登錄”?


9
2017-08-20 13:35





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

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

4
2018-02-08 19:08



你能解釋為什麼這樣做/它做什麼? - Eiyrioü von Kauyf
support.microsoft.com/kb/947239 這是對此的描述 - bksi


錯誤 網絡錯誤:軟件導致連接中止 如果有的話,來自PuTTY的結果 IP地址衝突 (網絡上有兩台或多台計算機具有相同的IP地址)。 (我有一個這個問題 樹莓派 得到了相同的IP地址 DHCP 服務器作為一些手動設置使用相同IP地址的惡意設備/計算機。)

在這種特殊情況下,它可能是Windows 7計算機本地或網絡上其他設備的IP地址衝突。 Wireshark的 可用於成功追踪此類錯誤。


3
2017-11-26 09:57





連接選項卡:保持活動狀態設置為“5”秒並啟用

但更重要的是:

連接  - > SSH  - > KEX重新安排前的最長時間:“2”(默認為60)。

我的PuTTY在一段時間後丟失了它的密鑰,導致超時。將該值降至“2”分鐘即可解決問題。我現在無限期地保持聯繫。


2
2017-08-24 09:09





我曾經合作過 CentOS的 來自Windows PC的服務器,我遇到了與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設置適用於所有軟件和操作系統本身。


2
2017-10-29 16:48





錯誤 10053 WSAECONNABORTED (軟件導致連接中止。)是通用的 Winsock的 由於各種原因可能發出的錯誤。

官方解釋 說:

當本地網絡系統中止連接時會發生此錯誤,例如在數據重新傳輸失敗後Winsock關閉已建立的連接時(接收方從不確認數據流套接字上發送的數據)。

出現此問題的原因可能是有缺陷的網絡電纜到簡單的連接丟失。提供單一解決方案是不可能的。


1
2017-08-20 13:41





安裝新的WLAN路由器/ 3G調製解調器連接到Internet後,我遇到了與PuTTY相同的問題。我嘗試了上面所有保持活動的解決方案 - 以及路由器配置菜單中的所有解決方案 - 都沒有效果。

然後我想起了90年代當我有一個陸線電話調製解調器時的東西:MTU(最大傳輸單元),基本上是傳輸的數據塊的最大大小 - 它對連接的穩定性有顯著影響。

所以我檢查了我的WLAN路由器的配置,找到了MTU設置,並將其從固定值1424更改為“自動”(我的意思是嘗試更小的值,但“自動”聽起來更好)。在那之後,我對PuTTY沒有更多的問題了 - 現在這種連接非常堅固。我希望這至少可以幫助解決“網絡錯誤:軟件導致連接中止”問題。


1
2018-02-28 23:27