чому мої сеанси ssh заморожуються через деякий час? [зачинено]


10

Вибачте, якщо це не правильне місце для запитання цього питання.

Мені регулярно доводиться переходити на різні сервери. Тепер, з моєї домашньої машини (linux mint), коли я підключаюся через ssh, через деякий час бездіяльності моя ssh оболонка замерзає, і немає можливості її повернути. Єдине, що я можу зробити - це «~.», Що принаймні повертає мені свою ініціюючу оболонку назад.

Коли я входжу з інших локацій на ті самі сервери, проблем не виникає. Чи може це бути проблемою з моїм Інтернет-провайдером? Як я можу далі розслідувати цю проблему?

Це насправді дратує, оскільки мені доведеться відновити ssh-з'єднання після заморожування, повернутися туди, де я був, і відновити роботу. Дякую


У вас статична IP-адреса? Якщо ні, то може бути, що ваш Інтернет-провайдер дав вам іншу IP-адресу в середині сеансу - перевірте свої журнали та подивіться.
користувач9517

У мене немає статичної IP-адреси. Перевіримо
кокколітофор

Відповіді:


20

Ваш NAT скидає ваш TCP-розетку після періоду бездіяльності.

Ваш ssh-клієнт може додатково надсилати періодичні шуми на сервер, тим самим усуваючи цю проблему. Для цього додайте це до свого ~/.ssh/config:

Host *
  ServerAliveInterval 60

Крім того, переконфігуруйте NAT, щоб не закінчувати елементи зі своєї таблиці стану так швидко, як зараз.


На додаток до сказаного, вам слід використовувати термінальний мультиплексор для своїх сеансів - щось на кшталт GNU Screen або tmux. За допомогою будь-якого з них ви можете відновити сеанс у випадку відключення.


Або NAT, або будь-який болісно неправильний брандмауер на шляху, який любить скидати непрацюючі сеанси TCP. Немає жодних причин відмовлятися від простою TCP-сеансів, окрім браку пам’яті для збереження станів, але це має відбуватися дуже рідко, якщо ви правильно розміряєте та налаштовуєте обладнання. Це гарна особливість знати, компетентний (чи ні) ваш провайдер / адміністратор.
zerodeux

0

У моєму випадку проблема була у великому розмірі MTU. Ви можете змінити MTU на маршрутизаторі, якщо ви використовуєте NAT, але я змінюю MTU на сервері:

sudo /sbin/ifconfig eth0 mtu 1036
sudo /etc/init.d/networking restart

У Windows також можна збільшити цю клавішу:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpMaxDataRetransmissions"=dword:00000010
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.