Это продолжает происходить на каком-либо сервере, к которому я подключен. Я печатаю:
ssh user@server
Вхожу в систему, пару минут все работает. Но через некоторое время, возможно, когда я переключаюсь на другие программы (браузер, ftp-клиент и т. Д.), Когда я пытаюсь ввести что-либо обратно в терминал, курсор перестает мигать, пока я печатаю, но на самом деле ничего не набирается. Я не могу выполнить ни одну команду, и все, что я могу сделать, это закрыть окно терминала, снова открыть его и снова подключиться.
Если это важно, я запускаю Ubuntu 12.04 на своем локальном компьютере.
Между вашим клиентом и сервером установлен NAT-маршрутизатор или аналогичный межсетевой экран с отслеживанием состояния. Когда вы открыли сеанс TCP, брандмауэр запомнил, что TCP-соединение было создано между вашим клиентским портом и портом сервера. Пока брандмауэр помнит соединение, он будет продолжать передавать пакеты между клиентом и сервером.
Сеанс «прерывается», потому что межсетевой экран забывает о соединении и перестает передавать пакеты. Брандмауэр может забыть о соединении, потому что у него есть тайм-аут для незанятых соединений. Или он мог забыть, потому что у него ограниченный объем памяти и было создано слишком много новых соединений, чтобы он мог их все запомнить.
ssh
имеет некоторые варианты чтобы обойти это, отправляя периодические пакеты "keep-alive", когда соединение простаивает. Посмотрите на TCPKeepAlive
, ServerAliveInterval
, и ServerAliveCountMax
параметры.
Как бы то ни было, вместо закрытия окна терминала вы можете прервать сеанс ssh набрав Войти ~ . последовательно.