Извиняюсь, если это не то место, где можно задать этот вопрос.
Мне регулярно нужно ssh на разных серверах. Теперь, с моей домашней машины (linux mint), когда я подключаюсь через ssh, после некоторого времени бездействия моя оболочка ssh зависает, и вернуть ее невозможно. Единственное, что я могу сделать, это «~.», Что, по крайней мере, возвращает мне мою первоначальную оболочку.
Когда я вхожу из других мест на те же серверы, это не проблема. Может ли это быть проблемой с моим провайдером? Как я могу продолжить расследование по этому вопросу?
Это действительно раздражает, так как я должен восстановить ssh-соединения после зависания, вернуться туда, где я был, и возобновить работу. Спасибо
Ответы:
Ваш NAT сбрасывает ваш сокет TCP после периода бездействия.
Ваш ssh-клиент может дополнительно отправлять периодические noops на сервер, тем самым устраняя эту проблему. Для этого добавьте это в свой
~/.ssh/config
:В качестве альтернативы, переконфигурируйте ваш NAT, чтобы не истекать элементы из его таблицы состояний так же быстро, как сейчас.
В дополнение к вышесказанному, вы должны использовать терминальный мультиплексор для ваших сессий - что-то вроде GNU Screen или tmux. С помощью любого из них вы можете восстановить сеанс в случае отключения.
источник
В моем случае проблема была в большом размере MTU. Вы можете изменить MTU на маршрутизаторе, если вы используете NAT, но я изменяю MTU на сервере:
В Windows вы также можете увеличить этот ключ:
источник