LINUX.ORG.RU
ФорумAdmin

[ssh] Broken pipe после суспенда

 


0

2

Привет ночнолор. Когда я ухожу в суспенд и у меня есть подключения по ssh к серверу в домашней локалочке, то по возвращении из оного подключение к нему отваливается всегда с сабжевой ошибкой. Переподключаться лениво и времязатратно, как с этим бороться? P.S.: Suspend из KDE4 - Sleep (suspend to ram)

Никак.

anonymous
()

Можно попробовать в /etc/ssh/ssh_config на клиенте прописать

ServerAliveInterval 86400

На ssh-сервере в /etc/ssh/sshd_config поставить

ClientAliveInterval 86400

В результате может и сработать.

BigAlex ★★★
()
Ответ на: комментарий от flareguner

Когда компьютер с твоим ssh сервером посылает данные твоему выключенному ноутбуку, как думаешь, что будет происходить? Они уйдут в астрал, а потом от туда попадут к тебе на ноутбук после включения?

anonymous
()
Ответ на: комментарий от anonymous

Нет, он просто будет ждать, пока я не включу «ноутбук» и клиент не ответит. Я так себе представляю. Это конечно не UDP, но вроде тоже может ждать, нэ?

flareguner
() автор топика
Ответ на: комментарий от flareguner

> Т.е. будет слать клиенту запросы с определенным интервалом, пока тот не ответит.

Правильно. Количество запросов и интервал - это параметры TCP/IP стека и настраиваются соответственно.

anonymous
()
Ответ на: комментарий от anonymous

Вопрос на засыпку. Как называется тот таймер и чему он равен по дефолту? Этот же вопрос можно перефразировать - сколько провесит открытое TCP-соединение, если по нему не идет никакого трафика. Будут конкретные ответы - приходи.

И кстати я не обещал, что это будет работать. Просто ты сказал «никак», а я тебе примерно показал «как».

BigAlex ★★★
()
Ответ на: комментарий от anonymous

компьютер с твоим ssh сервером посылает данные

логичный вопрос - почему ssh-сервер должен что-то слать на клиента, если с того не поступает никаких команд. keepalive'ы в ssh инициирует клиент. если на терминале приглашение bash и ничего не происходит, то что ssh-сервер будет слать клиенту?

BigAlex ★★★
()
Ответ на: комментарий от BigAlex

> Вопрос на засыпку. Как называется тот таймер и чему он равен по дефолту?

[quote]

/proc/sys/net/ipv4/tcp_retries1

How many times to retry before deciding that something is wrong and it is necessary to report this suspicion to network layer. Minimal RFC value is 3, it is default, which corresponds to 3sec-8min depending on RTO. /proc/sys/net/ipv4/tcp_retries2

How may times to retry before killing alive TCP connection. RFC 1122 says that the limit should be longer than 100 sec. It is too small number. Default value 15 corresponds to 13-30min depending on RTO. [/quote]

Новые значения для 2.6.хх смотреть здесь: /usr/src/linux/Documentation/networking/ip-sysctl.txt

anonymous
()
Ответ на: комментарий от BigAlex

> логичный вопрос - почему ssh-сервер должен что-то слать на клиента, если с того не поступает никаких команд. keepalive'ы в ssh инициирует клиент. если на терминале приглашение bash и ничего не происходит, то что ssh-сервер будет слать клиенту?

Ты сам предложил включить эту опцию:

ClientAliveInterval - Specifies the time interval in second for which if no data is received from the client, ssh daemon will send a message requesting user response. Default is 0 which means that such packages will not be send. I recommend to set the interval to 60 seconds.

Если поставить 0 - то ничего сервер «сам по себе» слать не будет.

anonymous
()

Ты пользуешься ключами? А чем-нибудь вроде tmux на стороне сервера? Если нет, то стоит начать. Тогда вся проблема сведётся к нажатии стрелочки вверх и потом клавиши «ввод».

ky-san
()
Ответ на: комментарий от anonymous

Рекомендую в словаре посмотреть перевод слова «retry». Потом покурить еще несколько раз ту цитату, что ты кинул и попробовать ответить еще раз на вопрос сколько провесит открытое TCP-соединение, если по нему не идет никакого трафика.

Ты если кидаешь умные ссылки на RFC, то изволь тогда этот RFC осилить. Когда ты там не найдешь упоминания о механизме схожем с keepalive, который доступен «из коробки» и попутно задумаешься нафейхуя в том OpenSSH накрутили свои кипалайвы, то приходи - еще поболтаем.

BigAlex ★★★
()
Ответ на: комментарий от anonymous

Действительно, в sshd_config даже лезть и не придется. Ничего ставить не нужно - там и так по дефолту 0.

BigAlex ★★★
()
Ответ на: комментарий от BigAlex

>почему ssh-сервер должен что-то слать на клиента, если с того не поступает никаких команд

Потому, что ключи нельзя использовать слишком долго - их нужно менять. Т.ч. трафик там «всегда» есть.

DonkeyHot ★★★★★
()

>Когда я ухожу в суспенд и у меня есть подключения по ssh к серверу в домашней локалочке, то по возвращении из оного подключение к нему отваливается всегда с сабжевой ошибкой. Переподключаться лениво и времязатратно, как с этим бороться?

переподключаться. что-бы не тратить время, откройте для себя screen.

drBatty ★★
()
Ответ на: комментарий от BigAlex

> Рекомендую в словаре посмотреть перевод слова «retry». Потом покурить еще несколько раз ту цитату, что ты кинул и попробовать ответить еще раз на вопрос сколько провесит открытое TCP-соединение, если по нему не идет никакого трафика.

если по нему не идет никакого трафика.

Ты если кидаешь умные ссылки на RFC, то изволь тогда этот RFC осилить. Когда ты там не найдешь упоминания о механизме схожем с keepalive, который доступен «из коробки» и попутно задумаешься нафейхуя в том OpenSSH накрутили свои кипалайвы, то приходи - еще поболтаем.

Твоя аватарка как нильзя хорошо описывает моё состояние.

Скажи мне, как гарантировать, что в SSH соединении не будет никакого траффика?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.