Вопрос: SSH-соединение - через какое-то время я ничего не могу напечатать


Это держит hapenning, на котором когда-либо связан сервер. Я печатаю:

ssh user@server

Я вхожу в систему, все работает на пару минут. Но через некоторое время, возможно, когда я переключусь на другие программы (браузер, ftp-клиент и т. Д.), Когда я пытаюсь ввести что-либо обратно в терминал, курсор перестает мигать во время ввода, но ничего не набирается. Я не могу выполнить какую-либо команду, и все, что я могу сделать, это закрыть окно терминала, снова открыть и снова подключиться.

Если это имеет значение, я запускаю Ubuntu 12.04 на своей локальной машине.


5
2017-07-09 14:43


Источник


Многие (дешевые) NAT-маршрутизаторы будут отключать простоя. Как быстро зависит немного от того, насколько они заняты, и размера их буферов. Вы можете немного смягчить проблему, включив TCP в своем SSH-клиенте, а также конфигурацию демона SSH. - HBruijn♦


Ответы:


У вас есть NAT-маршрутизатор или аналогичный брандмауэр с состоянием между вашим клиентом и сервером. Когда вы открыли сеанс TCP, брандмауэр помнил, что TCP-соединение было создано между вашим клиентским портом и портом сервера. Пока брандмауэр запоминает соединение, он будет продолжать передавать пакеты между клиентом и сервером.

Сеанс «ломается», потому что брандмауэр забывает о соединении и останавливает передачу пакетов. Брандмауэр может забыть о соединении, поскольку он имеет тайм-аут на простоях соединений. Или он мог забыть, потому что у него ограниченный объем памяти, и слишком много новых соединений создавалось для того, чтобы запомнить все.

ssh имеет некоторые варианты чтобы обойти это, отправив периодические пакеты «keep-alive», когда соединение простаивает. Посмотрите на TCPKeepAlive, ServerAliveInterval, а также ServerAliveCountMax опции.


6
2017-07-09 15:09



Спасибо, что Кенстер потратил время, чтобы объяснить это мне. Я посмотрю, помогут ли варианты, о которых вы упомянули. - Томица Кораћ