Назад | Перейти на главную страницу

SSH умирает, когда через него передается много текста

У меня странная проблема с SSH. Когда я пытаюсь сделать что-то, что отправляет много текста поверх него, часто это разрывает соединение («сброс соединения одноранговым узлом»). Не каждый раз, но достаточно часто, чтобы сильно раздражать. Не знаю, с чего начать искать решение. Я пробовал несколько клиентов на разных машинах, результат тот же. В настоящее время я использую PUTTY. Кроме того, если это актуально, когда он умирает, кажется, что он начинает отправлять обратно строки данных, а затем произвольно умирает.

Мысли? Я могу опубликовать более подробную информацию, если вы дадите мне подсказки о том, что опубликовать, я действительно не знаю, что еще разместить здесь.

OpenSSH_5.5p1 Debian-4ubuntu6, OpenSSL 0.9.8o 01 июня 2010 г.

Спасибо! ~ Чарли

Это действительно похоже на какую-то систему глубокой проверки пакетов, которая жестко борется с трафиком, в котором он не уверен. Идея о том, что дальний конец сбросит соединение, когда все, по общему мнению, идет хорошо, кажется немного странной.

Моим первым шагом в диагностике было бы получить tcpdump захватывает из оба конца соединения одновременно. Это позволит вам сопоставить пакеты на каждом конце и убедиться, что они совпадают. Если мое предположение о DPI верное, у вас будут приходить пакеты RST, которые не имеют соответствующего отправления с другого конца (большинство настроек DPI будут RST на обоих концах, что сделает это еще более очевидным). В противном случае, если один конец действительно сам разрывает соединение, вы сможете увидеть, какой конец принимает решение о прекращении работы, и если это так, то вы можете strace этот конец и добраться до сути.

Другой случай, когда это происходило, - это когда кто-то использовал меньшие MTU, чем MTU по умолчанию для удаленного интерфейса, а затем блокирует обнаружение MTU, блокируя пакеты ICMP. Это может произойти при нестандартных настройках NAT.

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