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

Ошибка сети PuTTY: Программное обеспечение прерывает соединение

Advertisement

У меня странная проблема: когда я использую PuTTY с SSH подключением к серверу Linux, расположенному в VMware на моем локальном Windows 7, я часто получаю ошибку, говорящую "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!

Какова может быть причина этой проблемы и как ее можно исправить?

Supplement :

Я выполнил поиск в Google и применил все методы, чтобы помочь, в том числе:

  1. Включите sshd TCPKeepAlive
  2. Установите sshd ClientAliveInterval в 900 и ClientAliveCountMax в 3
  3. Установите параметр подключения PuTTY “секунды между keepalives” на 5.

Но все это не работает! И сессия SSH в PuTTY все еще прерывается через некоторое время!

Я отключил и брандмауэр сервера Linux, и брандмауэр Windows 7 клиента, но вход все еще не завершен! Это действительно раздражает!

Иногда кажется, что я могу войти, но иногда тайм-аут входа! Я действительно не знаю почему. Это сводит меня с ума!

Одна вещь, которую я должен упомянуть, это то, что когда я использую PuTTY SSH соединение с удаленным сервером, и все в порядке!

Когда я не смог войти в систему, пинг тоже не удался! Но как такое может случиться? Я использую VMware проигрыватель для размещения Linux сервера на моей локальной машине!

Advertisement

Ответы (12)

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

Только для Windows XP или предыдущей операционной системы:

Я написал этот ответ 9 лет назад для Windows XP, программному обеспечению Putty 21 год, и поэтому этот ответ полезен для исторических целей. Нынешний смартфон Window'а Zune-OS для Desktop сломал Putty на сетевом уровне, в погоне за раздражением всех точек входа или выхода, которые не являются частью стека платных инструментов Azure Vendor.

Putty имеет функцию, которая пытается исправить эту проблему:

Network Error: Software caused connection abort
  1. Запустить шпаклевку
  2. Загрузите настройки подключения, если вы сохранили их
  3. Нажмите на “Подключение”
  4. В разделе “Отправка нулевых пакетов для поддержания сессии активной”, измените его на 5 секунд. 300 секунд может быть лучше, если перебои в работе сети являются вашей проблемой, читайте ниже для подробностей.

Как предотвратить отключение с помощью Putty:

Некоторые сетевые маршрутизаторы и брандмауэры должны отслеживать все соединения, проходящие через них. Обычно эти брандмауэры предполагают, что соединение не работает, если данные не передаются в любом направлении по истечении определенного промежутка времени. Это может привести к тому, что PuTTY сессии будут неожиданно закрыты брандмауэром, если трафик в течение некоторого времени не будет виден.

Опция keepalive (‘Секунды между keepalive’) позволяет вам настраивать PuTTY на отправку данных через сессию с регулярными интервалами, таким образом, чтобы не нарушать реальную терминальную сессию. Если вы обнаружите, что ваш брандмауэр отрезает простаивающих соединений, вы можете попробовать ввести ненулевое значение в этом поле. Значение измеряется в секундах, так что, например, если ваш брандмауэр отрезает соединения через десять минут, то вы, возможно, захотите ввести 300 секунд (5 минут) в поле.

Устранить проблему с помощью шпаклевки автологин и “экран” инструмент

шпаклевка не может справиться с дрянной беспроводной интернет, который теряет связь в течение нескольких минут за один раз. Работа вокруг является использование автологина и экрана.

Это не тривиальная проблема для шпаклевки, чтобы повторно синхронизировать ваш терминал после минуты потери связи с интернетом. Вы рискуете подвергнуться атаке человека во время перебоя в работе. Вам все равно придется пройти повторную аутентификацию, чтобы убедиться в этом. Шпатлевка не навязывает вам это, а просто выпадает.

Так что используйте автологин, чтобы шпатлевка могла автоматически входить в систему от вашего имени.

  1. Сгенерируйте приватный ключ с помощью шпаклевки на компьютере, с которым вы шпаклеваете.

  2. Вставьте открытый ключ в вашу /home/youruser/.ssh/authorized_keys на стороне сервера, на сервере, на котором вы используете putty go login на.

  3. Сделать закрытый ключ доступным для шпаклевки в настройках шпаклевки Подключение->SSH->Auth

    1. Добавить закрытый ключ, указав под ним файл закрытого ключа: “Файл закрытого ключа для аутентификации”.
  4. Сохраните настройки подключения с помощью шпаклевки.

Тогда вы сможете дважды щелкнуть мышью по соединению с помощью шпаклевки, и оно должно привести вас прямо к терминалу без ввода имени пользователя/пароля.

Таким образом, теперь вы можете подключить логин к шпаклевке в этом соединении с помощью комбинации клавиатуры, например F6. Так что, когда wifi выйдет из строя и вас уронят. Вы раздавите F6 и снова войдете в систему.

НО вы все еще теряете состояние вашего терминала! Как это исправить? Используйте программу “экран”. Сделайте новый экран, набрав “экран”. Создается новый экран.

Когда вас вышвырнут и вы автоматически войдете в систему, вы можете прикрепить его к своему экрану. Вот учебное пособие о том, как это сделать: http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/

Это хлопотно набирать screen и переподключаться каждый раз, когда вас уронят. Так что вы можете написать скрипт, который “автоматически вернет вас к последнему доступному экрану”, чтобы сделать его прозрачным.

Так что, когда шпаклевочный терминал замерзнет. Похоже на то: Вы делаете фырканье презрения, затираете Alt+F4, чтобы закрыть шпаклевку, затираете Mash down 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, когда он по какой-то причине убивает установленное соединение. Например, это может произойти, если вы вытащить сетевой кабель из задней части компьютера, подключенного к Ethernet, или если у Windows есть другие аналогичные причины полагать, что вся сеть стала недоступна.

Windows также генерирует эту ошибку, если она отказалась от машины на другом конце соединения, ответившего на нее. Если сеть между вашим клиентом и сервером выйдет из строя, а затем клиент попытается отправить некоторые данные, Windows сделает несколько попыток отправки данных, а затем выйдет из строя и убьет соединение. В частности, это может произойти, даже если вы ничего не напечатали, если вы используете SSH-2 и PuTTY пытается изменить ключ.

(Это также может произойти, если вы используете keepalives в вашем соединении. Другие люди сообщали, что keepalives исправляет эту ошибку. (Есть плюсы и минусы использования keepalives.)

Мы не знаем, по какой причине может возникнуть эта ошибка, которая представляла бы собой ошибку в PuTTY. Проблема находится между вами, вашей системой Windows, вашей сетью и удаленной системой.

Попробуйте другой SSH-клиент

Скорее всего, проблема существует где-то между PuTTY и целевым SSH-сервером. Для подтверждения этого воспользуйтесь другим SSH клиентом, например http://kitty.9bis.net ) и посмотрите, не возникает ли проблема и на этом клиенте. Вероятно, это поможет изолировать проблему от PuTTY.

Подозрение на пятнистое подключение к Интернету

Проблема может заключаться в пятнистом подключении к Интернету. Мониторинг подключения к Интернету - хороший способ определить, теряет ли ваш провайдер пакеты, и виноват ли он в том, что PuTTY падает. Приобретите программное обеспечение, которое проверяет время безотказной работы Интернет-соединения. Например, http://code.google.com/p/internetconnectivitymonitor/ . Частое и длительное отключение от интернета является нарушением требований к услугам провайдера. В этом случае будет сложно доказать, что это вина провайдера, так как техподдержка автоматически винит в таких проблемах ваш компьютер, операционную систему, маршрутизатор и проводку к вашему дому. Если вы пользуетесь кабельным Интернетом и живете в болотах, возможно, что дефектное оборудование в соседних домах может посылать статическое электричество на линию в течение нескольких секунд/минут при первом включении. Наконец, возможно, что в сети провайдера к вашему дому есть дефектное оборудование. Стоимость замены оборудования у провайдеров настолько высока, что часто они не будут этого делать, если нет достаточного количества абонентов в районе, чтобы предупредить о стоимости.

Подозревайте, что проводной/беспроводной маршрутизатор

Вы подключаетесь через проводной/беспроводной маршрутизатор? Сколько лет? Ваш маршрутизатор может быть проблемой. Старые беспроводные и проводные технологии могут устареть и падение соединений спорадически и перезагрузить их, в результате чего PuTTY умирают. Удалите эти компоненты из уравнения и посмотреть, если это решает проблему. Попробуйте проводное соединение и/или другой маршрутизатор, чтобы увидеть, если это решает проблему. У меня был Linksys беспроводной маршрутизатор страдают этой медленной смерти и падения соединений и перезагрузить их.

Подозревайте, что операционная система, обеспечивающая SSH соединения

Компьютер, к которому вы подключаетесь с SSH имеет политику на количество секунд, чтобы сохранить SSH соединения живы. Это число устанавливается низким по соображениям безопасности, и вы можете увеличить его. Где этот параметр зависит от того, какая операционная система обеспечивает SSH.

Если вы используете PuTTY через виртуальную машину

Если вы используете PuTTY, проходящую через виртуальную машину, на виртуальной машине может существовать политика, которая разрывает SSH-соединение с сервером, когда он думает, что он неактивен. Увеличение этих значений зависит от того, какое программное обеспечение виртуальной машины и операционную систему вы используете.

Если Интернет-соединение плохое, соединение SSH-клиента обходится без проблем:

Если ваш провайдер обеспечивает нестабильное соединение, то вы можете сделать разъединение менее болезненным с помощью “ssh autologin”. Что вы делаете, так это генерируете открытый и закрытый ключ. И вы говорите вашему зарубежному серверу автоматически впускать любого, кто предоставит точный приватный ключ. Это не решает Вашу проблему полностью, но когда происходит перебой в Интернете, все, что Вы делаете, это закрываете окно, дважды щелкаете по иконке, и Вы немедленно возвращаетесь в командную строку Вашей домашней папки без ввода имени пользователя/пароля.

Это поможет Вам с этим Есть ли способ “автоматического входа” в PuTTY с паролем? .

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

Я работал с серверами CentOS с ПК под управлением Windows, и у меня была такая же проблема с PuTTY. Сессия длилась не более 1-5 минут. Я пытался поиграть с настройками PuTTY (keepalives и т.д.), но это совсем не помогло.

Финально я нашел решение для своего случая. Я записал TCP дампы как на клиенте, так и на сервере. Я обнаружил, что за 25-30 секунд до отключения в клиентском дампе происходит несколько ретрансляций TCP сегментов (как со стороны клиента, так и со стороны сервера) и, наконец, PuTTY посылает RST и закрывает сеанс с этой ошибкой. В дампе сервера я не видел никаких сегментов с клиента в этот период, даже RST. Это означает, что время от времени никакие TCP сегменты с клиента не доставляются на сервер, и этот период составляет около 30-60 секунд. Я записывал этот случай несколько раз и всегда были ретрансляции и окончательная RST от PuTTY. Вероятно, где-то на маршруте пакеты были сброшены сетевым оборудованием.

Для обходного пути я увеличил максимальное количество ретрансляций данных со стандартного значения 5 до 16. Это может предотвратить слишком быстрое отключение PuTTY. Переменная ‘HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxDataRetransmissions’. Я добавил эту переменную вручную, она не была изначально определена в регистрационных записях моей Windows. Это помогло! Теперь я вижу, что PuTTY время от времени зависает, но она всегда возвращается к работе.

Исправить проблему: 1. Записывайте TCP дамп и ищите ретрансляцию и RST перед отключением. 2. Если вы найдете одинаковые сегменты ретрансляции/RST, настройте количество повторных попыток на стороне сервера или клиента (это зависит от стороны RST).

Будьте осторожны: изменение настроек TCP применяется ко всему программному обеспечению и самой операционной системе.

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

Ошибка Network error: Программное обеспечение, вызвавшее прерывание соединения с PuTTY, является результатом, если в сети существует конфликт **IP-адресов_** (два или более компьютера имеют один и тот же IP-адрес). (У меня возникла эта проблема с Raspberry Pi , который получил тот же самый IP-адрес, назначенный сервером DHCP , как какое-то неавторизованное устройство/компьютер, который был настроен вручную на использование того же самого IP-адреса)

В этом конкретном случае это может быть конфликт IP-адресов локально на компьютере под управлением Windows 7 или с другим устройством в сети. Wireshark может быть использован для успешного отслеживания такого рода ошибок.

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

Вкладка “Подключение”: сохранить жизнь устанавливается в “5” секунд и включается

Но что более важно:

Connection -> SSH -> Kex, Max минут до rekey: “2” (по умолчанию 60).

Мой PuTTY через некоторое время терял ключ, что приводило к таймауту. Снижение этого значения до “2” минуты решило проблему. Теперь я остаюсь на связи бесконечно долго.

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

Ошибка 10053 WSAECONNABORTED (Программное обеспечение, вызвавшее прерывание соединения.) является общей ошибкой Winsock , которая может быть выдана по любому количеству причин.

В официальное объяснение говорится:

Эта ошибка может возникать, когда локальная сетевая система прерывает соединение, например, когда Winsock закрывает установленное соединение после сбоя при повторной передаче данных (приемник никогда не подтверждает данные, отправленные на сокет передачи данных).

Причины этой проблемы могут варьироваться от дефектных сетевых кабелей до простой потери связи. Невозможно предложить единственное решение.

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

У меня была такая же проблема с PuTTY после установки нового WLAN роутера / 3G модема для подключения к Интернету. Я перепробовал все вышеперечисленные решения - и все те, что были в меню конфигурации моего роутера - безрезультатно.

Тогда я вспомнил кое-что из далеких 90-х годов, когда у меня был модем для стационарного телефона: MTU (максимальный передающий блок), в основном, максимальный размер передаваемых кусочков данных - это заметно повлияло на стабильность соединения.

Так что я проверил конфигурацию своего WLAN роутера, нашел настройку MTU и изменил ее с фиксированного значения 1424 на “Auto” (я хотел попробовать меньшее значение, но “Auto” звучало еще лучше). После этого у меня больше не было проблем с PuTTY - соединение стало крепким. Надеюсь, это поможет хотя бы кому-нибудь с проблемой “Network error: software caused connection abort”.

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

Вообще-то, я сталкивался с этими проблемами много раз. Я искал решение, проводя часы, но ни одна из них не была эффективной. Я делюсь решением, которое работало на меня, и надеюсь, что оно будет полезно и для других.

У меня есть Windows 10 в качестве хоста O/S и Redhat-7 в качестве гостевого O/S, и моя VMware имела мостовое соединение. В качестве DBA мне приходится посещать клиентов и настраивать свою сетевую конфигурацию в соответствии с помещениями клиентов. Поэтому всякий раз, когда я выходил из помещения клиента и подключался к другой сети через беспроводную и открытую ВМ, я сталкивался с той же проблемой, что и в вопросе. Поэтому я немного подумал и проверил свою конфигурацию для LAN Ethernet и Wireless Ethernet, и обнаружил несоответствие. Так как моя ВМ автоматически использовала бы физическую сеть ethernet между двумя для создания моста. Поэтому, когда я сбросил конфигурацию сети для LAN/Wireless Ethernet на DHCP, она работала как шарм и больше не прерывала соединения. [Вы также можете перезагрузить хост-машину после установки DHCP].

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

Я столкнулся с той же проблемой либо со скриптом WinSCP , либо с консолью GUI. Наконец, я обнаружил, что это связано со скоростью (скорость Интернет - наш сервер находится в Интернет). Я переместил скрипт в другое место в сети, на другой сайт, и не и GUI, и Script шли хорошо.

Это было отсортировано после долгих анализов и сортировки.

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

Вам нужно включить TCPKeepAlive под Linux.

Это объясняется в FAQ PuTTy на сайте, когда вы ищете эту ошибку.

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

Если Виртуальная машина работает на локальном оборудовании, отключите функцию сохранения живых пакетов.

Похожие вопросы

6
10
19
12
4
Advertisement
Advertisement