93 votes

Erreur réseau PuTTY : Le logiciel a provoqué l'abandon de la connexion

J'ai un problème étrange : lorsque j'utilise PuTTY avec SSH en me connectant à un serveur Linux hébergé dans le système d'exploitation de l'entreprise. VMware sur mon site local Windows 7 Je reçois souvent l'erreur suivante "Network error: Software caused connection abort" et ensuite la fenêtre PuTTY SSH est inactive. Habituellement, je peux me connecter au serveur avec PuTTY et faire quelque chose, mais après un temps aléatoire (environ une ou deux minutes), je reçois cette erreur. Parfois, je ne peux même pas me connecter, car je reçois une erreur indiquant un dépassement de délai.

Je suppose qu'il y a un problème avec mon VMware Player, parce que j'ai un autre bureau Ubuntu hébergé dans VMware comme serveur de dépôt de code, et il a le plus souvent une erreur de timeout lorsque je fais une mise à jour SVN/commit. Cependant, je suppose également que Windows 7 a une certaine bizarrerie car le même serveur Ubuntu hébergé dans VMware en tant que dépôt de code fonctionne très bien sous Windows Vista ! Il semble que toutes les mauvaises choses arrivent après que je sois passé de Windows XP à Windows Vista, puis à Windows 7 !

Quelle pourrait être la raison de ce problème et comment y remédier ?

Supplément :

J'ai fait une recherche sur Google et appliqué toutes les méthodes pour aider, y compris :

  1. Activer sshd TCPKeepAlive
  2. Configurer sshd ClientAliveInterval a 900 y ClientAliveCountMax a 3
  3. Définissez le paramètre de connexion PuTTY "secondes entre keepalives" sur 5 .

Mais tout cela ne fonctionne pas ! Et la session SSH dans PuTTY est toujours interrompue après un certain temps !

J'ai désactivé le pare-feu du serveur Linux et le pare-feu du client Windows 7, mais la connexion est toujours interrompue ! C'est vraiment ennuyeux !

Il semble que parfois je puisse me connecter, mais parfois la connexion est interrompue ! Je ne sais vraiment pas pourquoi. Cela me rend fou !

Une chose que je dois mentionner est que lorsque j'utilise PuTTY SSH pour me connecter à un serveur distant, et que tout est OK !

Lorsque je n'ai pas réussi à me connecter, le ping a également échoué ! Mais, comment cela peut-il arriver ? J'utilise VMware player pour héberger le serveur Linux sur ma machine locale !

68voto

Eric Leschinski Points 6388

Système d'exploitation Windows XP ou antérieur uniquement :

J'ai écrit cette réponse il y a 9 ans pour Windows XP, le logiciel Putty a 21 ans et cette réponse est donc utile à des fins historiques. L'actuel Zune-OS for Desktop de Windows, basé sur les smartphones, a cassé Putty au niveau du réseau, dans le but d'irriter tous les points d'entrée ou de sortie qui ne font pas partie de la pile d'outils payante du fournisseur Azure.

Putty possède une fonction qui tente de résoudre ce problème :

Network Error: Software caused connection abort
  1. Mastic de départ
  2. Chargez vos paramètres de connexion si vous les avez enregistrés
  3. Cliquez sur "Connexion".
  4. Dans la section qui dit "Envoi de paquets nuls pour maintenir la session active", changez-le à 5 secondes. 300 secondes peut être mieux si les pannes de réseau sont votre problème, lisez ci-dessous pour plus de détails.

enter image description here

Comment keepalives pour empêcher la déconnexion avec Putty :

Certains routeurs de réseau et pare-feu doivent garder la trace de toutes les connexions qui les traversent. Habituellement, ces pare-feu considèrent qu'une connexion est morte si aucune donnée n'est transférée dans un sens ou dans l'autre après un certain intervalle de temps. Cela peut entraîner la fermeture inattendue de sessions PuTTY par le pare-feu si aucun trafic n'est observé dans la session pendant un certain temps.

L'option keepalive ('Seconds between keepalives') vous permet de configurer PuTTY pour qu'il envoie des données à travers la session à intervalles réguliers, d'une manière qui ne perturbe pas la session de terminal actuelle. Si vous trouvez que votre pare-feu coupe les connexions inactives, vous pouvez essayer de saisir une valeur non nulle dans ce champ. La valeur est mesurée en secondes ; ainsi, par exemple, si votre pare-feu coupe les connexions après dix minutes, vous pouvez saisir 300 secondes (5 minutes) dans le champ.

Réduire le problème en utilisant putty autologin et l'outil "screen".

Putty ne peut pas gérer un wifi de mauvaise qualité qui perd la connectivité pendant plusieurs minutes. Une solution consiste à utiliser la connexion automatique et l'écran.

C'est un problème non trivial pour Putty de re-synchroniser votre terminal après une perte de connexion internet d'une minute. Vous courez le risque d'attaques de type "man in the middle" pendant une panne. Vous devriez de toute façon vous ré-authentifier pour être sûr. Putty ne vous impose pas cela, il vous laisse simplement tomber.

Utilisez donc autologin pour que Putty puisse se connecter automatiquement en votre nom.

  1. Générer une clé privée avec l'outil puttygen sur l'ordinateur avec lequel vous êtes putty.
  2. Collez la clé publique dans votre /home/youruser/.ssh/authorized_keys du côté du serveur, sur le serveur sur lequel vous utilisez Putty, connectez-vous.
  3. Rendez la clé privée accessible à putty dans les paramètres de putty Connexion->SSH->Auth.
  4. Ajoutez la clé privée en spécifiant le fichier de clé privée sous : "Fichier de clé privée pour l'authentification".
  5. Sauvegardez les paramètres de connexion de Putty.

Vous pourrez alors double-cliquer sur votre connexion via Putty, et vous serez directement dirigé vers le terminal sans avoir à saisir de nom d'utilisateur/mot de passe.

Maintenant vous pouvez vous connecter à Putty sur cette connexion avec une combinaison de touches comme F6 . Donc quand le wifi se dégrade et que vous êtes largué. Tu appuies sur F6 et tu es à nouveau connecté.

MAIS vous perdez toujours l'état de votre terminal ! Comment réparer cela ? Utilisez le programme "screen". Créez un nouvel écran en tapant 'screen'. Un nouvel écran est créé.

Lorsque vous êtes expulsé et que vous vous connectez automatiquement, vous pouvez vous rattacher à votre écran. Voici un tutoriel sur la façon de le faire : http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/

C'est un problème de taper dans screen et se reconnecter à chaque fois qu'on vous lâche. Vous pouvez donc écrire un script qui vous "ramènera automatiquement au dernier écran disponible" pour le rendre transparent.

Alors, quand le terminal Putty se fige. ça ressemble à ça : Vous faites un grognement de mépris, tapez Alt+F4 pour fermer Putty, tapez F6. Et en 6 secondes, vous êtes de retour là où vous vous étiez arrêté.

Une solution encore meilleure, en théorie

En théorie, vous pourriez script l'ensemble du processus ci-dessus, de sorte que le terminal détecte quand il a été abandonné, et fait toutes les étapes ci-dessus pour vous sur la restauration de la connexion Internet. Si quelqu'un connaît un programme qui fait cela automatiquement, faites-le moi savoir. Ce serait chouette.

Sources :

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

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

12voto

Eric Leschinski Points 6388

Dépannage de l'erreur réseau de PuTTY

Software caused connection abort

Lisez ce que PuTTY a à dire sur l'erreur

Il s'agit d'une erreur générique produite par le code réseau de Windows lorsqu'il interrompt une connexion établie pour une raison quelconque. Par exemple, cela peut se produire si vous retirez le câble réseau de l'arrière d'un ordinateur connecté à Ethernet, ou si Windows a une autre raison similaire de croire que le réseau entier est devenu inaccessible.

Windows génère également cette erreur s'il a renoncé à ce que la machine à l'autre bout de la connexion lui réponde. Si le réseau entre votre client et le serveur tombe en panne et que votre client tente ensuite d'envoyer des données, Windows fera plusieurs tentatives d'envoi, puis abandonnera et coupera la connexion. En particulier, cela peut se produire même si vous n'avez rien tapé, si vous utilisez SSH-2 et que PuTTY tente un ré-échange de clé.

(Cela peut également se produire si vous utilisez des keepalives dans votre connexion. D'autres personnes ont signalé que les keepalives corrigent cette erreur pour elles. (Il y a des avantages et des inconvénients aux keepalives).

Nous n'avons pas connaissance d'une raison pour laquelle cette erreur pourrait se produire et qui représenterait un bogue dans PuTTY. Le problème se situe entre vous, votre système Windows, votre réseau et le système distant.

Essayez un autre client SSH

Il est fort probable que le problème se situe quelque part entre PuTTY et le serveur SSH cible. Pour en avoir la preuve, utilisez un autre client SSH comme ( http://kitty.9bis.net ) et voyez si le problème se produit là aussi. Ce sera probablement le cas, ce qui permettra d'isoler le problème de PuTTY.

Soupçonner une connexion Internet défectueuse

Le problème est peut-être dû à une connexion Internet défaillante. Connectivité Internet La surveillance du temps de fonctionnement d'une connexion Internet est un bon moyen de déterminer si votre fournisseur d'accès perd des paquets et est responsable de la panne de PuTTY. Procurez-vous un logiciel qui teste le temps de fonctionnement d'une connexion Internet. Par exemple, http://code.google.com/p/internetconnectivitymonitor/ . Des déconnexions fréquentes et prolongées de l'Internet constituent une violation des exigences de service du FAI. Si c'est le cas, il sera difficile de prouver que c'est la faute du FSI, car l'assistance technique attribue automatiquement ce genre de problèmes à votre ordinateur, au système d'exploitation, au routeur et au câblage de votre domicile. Si vous utilisez l'Internet par câble et que vous vivez dans un endroit isolé, il est possible que du matériel défectueux chez vos voisins envoie des parasites sur la ligne pendant quelques secondes/minutes lorsqu'ils l'allument pour la première fois. Enfin, il est possible qu'un matériel défectueux se trouve sur le réseau du fournisseur d'accès à votre domicile. Le coût de remplacement du matériel est si élevé que les FAI ne le font souvent que s'il y a suffisamment d'abonnés dans une zone pour justifier ce coût.

Suspecter le routeur filaire/sans fil

Vous connectez-vous via un routeur avec ou sans fil ? Quel est son âge ? Votre routeur peut être à l'origine du problème. Les anciennes technologies sans fil et filaires peuvent vieillir et interrompre les connexions de façon sporadique et les relancer, ce qui entraîne la mort de PuTTY. Retirez ces composants de l'équation et voyez si cela résout le problème. Essayez une connexion filaire et/ou un routeur différent pour voir si cela résout le problème. J'ai eu un routeur sans fil Linksys qui a souffert de cette mort lente et a laissé tomber les connexions et les a redémarrées.

Suspecter le système d'exploitation qui fournit la connexion SSH

L'ordinateur auquel vous vous connectez par SSH a une politique concernant le nombre de secondes pendant lesquelles les connexions SSH doivent rester en vie. Ce nombre est fixé à un niveau bas pour des raisons de sécurité, mais vous pouvez l'augmenter. L'emplacement de ce paramètre dépend du système d'exploitation que vous utilisez et qui fournit SSH.

Si vous utilisez PuTTY via une machine virtuelle

Si vous utilisez PuTTY en passant par une machine virtuelle, il se peut qu'une politique de la machine virtuelle interrompe votre connexion SSH au serveur lorsqu'elle pense qu'elle est inactive. L'augmentation de ces valeurs dépend du logiciel de la machine virtuelle et du système d'exploitation que vous utilisez.

Si la connexion Internet est mauvaise, les solutions de contournement de la connexion du client SSH :

Si votre FAI fournit une connexion instable, vous pouvez rendre les déconnexions moins pénibles avec "ssh autologin". Il s'agit de générer une clé publique et une clé privée. Et vous dites à votre serveur étranger de laisser entrer automatiquement toute personne qui fournit une clé privée précise. Cela ne résout pas complètement votre problème, mais lorsque la coupure Internet se produit, il vous suffit de fermer la fenêtre, de double-cliquer sur une icône et vous êtes immédiatement ramené à la ligne de commande de votre dossier d'origine sans avoir à saisir de nom d'utilisateur/mot de passe.

Ceci vous aidera à le faire : Existe-t-il un moyen de "se connecter automatiquement" dans PuTTY avec un mot de passe ?

6voto

Richard Points 111

Dans une invite de commande élevée, exécutez ce qui suit :

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

Si Receive Window Auto-Tuning Level est normal, vous aurez des problèmes. Désactivez-la et tout devrait fonctionner comme avant :

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

5voto

James Moberg Points 851

J'ai travaillé avec CentOS depuis des PC Windows, et j'ai eu le même problème avec PuTTY. Une session ne durait pas plus de 1 à 5 minutes. J'ai essayé de jouer avec les paramètres de PuTTY (keepalives, etc.) mais cela n'a pas aidé du tout.

J'ai enfin trouvé la solution pour mon cas. J'ai enregistré des vidages TCP à la fois sur le client et le serveur. J'ai découvert que pendant 25-30 secondes avant la déconnexion, il y a plusieurs retransmissions de segments TCP dans le dump du client (à la fois du côté du client et du serveur) et finalement PuTTY envoie RST et ferme la session avec cette erreur. Dans le dump du serveur, je n'ai vu aucun segment du client pendant cette période, même RST. Cela signifie que de temps en temps aucun segment TCP du client n'est délivré au serveur et cette période est d'environ 30-60 secondes. J'ai enregistré le cas plusieurs fois et il y avait toujours des retransmissions et un RST final de PuTTY. Probablement que quelque part sur la route, des paquets ont été abandonnés par des équipements de réseau.

Pour trouver une solution de contournement, j'ai augmenté le nombre maximal de retransmissions de données de la valeur par défaut de 5 à 16. Cela pourrait empêcher PuTTY de se déconnecter trop rapidement. La variable est 'HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxDataRetransmissions '. J'ai ajouté cette variable manuellement, elle n'était pas initialement définie dans le registre de mon Windows. Cela m'a aidé ! Maintenant, je vois que PuTTY se bloque de temps en temps, mais il se remet toujours à fonctionner.

Pour régler le problème : 1. Enregistrez un dump TCP et recherchez les retransmissions et les RST avant de vous déconnecter. 2. Si vous trouvez les mêmes retransmissions/segments RST, ajustez le nombre de tentatives du côté du serveur ou du client (cela dépend du côté du RST).

Attention : la modification des paramètres TCP s'applique à tous les logiciels et au système d'exploitation lui-même.

4voto

Adam V Points 2774

L'erreur Erreur de réseau : Le logiciel a provoqué l'interruption de la connexion de PuTTY est le résultat s'il y a une Conflit d'adresses IP (deux ou plusieurs ordinateurs ont la même adresse IP) sur le réseau. (J'ai eu ce problème avec un Raspberry Pi qui a obtenu la même adresse IP attribuée par le DHCP comme un périphérique/ordinateur malveillant qui a été configuré manuellement pour utiliser la même adresse IP).

Dans ce cas particulier, il peut s'agir d'un conflit d'adresse IP local sur l'ordinateur Windows 7 ou avec un autre périphérique sur le réseau. Wireshark peut être utilisé pour retrouver avec succès ce type d'erreur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X