Сеанс SSH приостанавливается во время передачи данных; возобновляется нажатием клавиши

Сеанс SSH приостанавливается во время передачи данных; возобновляется нажатием клавиши

У меня эта проблема возникала случайно, периодически, на нескольких компьютерах разных компаний, с разными дистрибутивами и разными версиями ядра. Думаю, я просто проклят.

Происходит следующее: у меня загружается новый ящик, и я что-то делаю в ssh, например, yum update или apt-get. Все идет нормально, а потом сеанс просто останавливается. Ssh не отключается, это почти как если бы кто-то послал нажатие клавиши scroll lock в сеанс.

Если я нажму Enter, или пробел, или любую другую клавишу в сеансе SSH, сеанс снова просыпается, и все происходит так, как будто ничего не произошло.

Я когда-то давно отслеживал такую ​​проблему и обнаружил, что интерактивные процессы переходят в состояние SLEEP. Я не могу подтвердить, что в этом случае это то же самое поведение, но я изменю вопрос, если смогу определить эту конкретную причину.

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

У кого-нибудь была такая или похожая проблема и есть ли у вас какие-либо соображения о ее возможной причине?

решение1

У меня когда-то было что-то похожее. Оказалось, что TCP отключался, а затем снова подключался, потому что MTU в сеансе был плохим. Когда длинный вывод отправлялся на терминал, вот что происходило (длинный вывод означает большие пакеты, означает понастоящийОграничение MTU (например, если вы подключаетесь через туннель).

В моем случае это решилось сбросом модема (я пользовался VPN из дома). В другом похожем случае — настройка на брандмауэре/VPN-шлюзе помогла.

Это происходит, когда на консоль поступает много данных? Если да, можете ли вы попробовать запустить tcpdump на удаленном компьютере, скажем, в файл, и посмотреть, так ли это?

Связанный контент