Przepraszamy, jeśli nie jest to właściwe miejsce do zadawania tego pytania.
Regularnie muszę ssh do różnych serwerów. Teraz, z mojej domowej maszyny (linux mint), kiedy łączę się przez ssh, po pewnym czasie bezczynności, moja ssh shells zawiesza się i nie ma sposobu na odzyskanie go. Jedyne, co mogę zrobić, to „~.”, Co najmniej daje mi z powrotem moją inicjującą powłokę.
Kiedy loguję się z innych lokalizacji na te same serwery, nie ma problemu. Czy to może być problem z moim usługodawcą internetowym? Jak mogę dalej badać ten temat?
To naprawdę denerwujące, ponieważ muszę ponownie ustanowić połączenia ssh po zamrożeniu, wrócić do miejsca, w którym byłem i wznowić pracę. Dzięki
Odpowiedzi:
Twój NAT upuszcza gniazdo TCP po pewnym okresie bezczynności.
Twój klient ssh może opcjonalnie wysyłać okresowe noopy na serwer, eliminując w ten sposób ten problem. Aby to zrobić, dodaj to do
~/.ssh/config
:Możesz też ponownie skonfigurować NAT, aby nie wygasał elementów ze swojej tabeli stanów tak szybko, jak jest teraz.
Oprócz powyższego powinieneś używać terminala do sesji - coś takiego jak GNU Screen lub tmux. W obu przypadkach możesz odzyskać sesję w przypadku rozłączenia.
źródło
W moim przypadku problemem był duży rozmiar MTU. Możesz zmienić MTU na routerze, jeśli używasz NAT, ale zmieniam MTU na serwerze:
W systemie Windows możesz również zwiększyć ten klucz:
źródło