4

У меня есть старая система P4, которая работает под управлением Ubuntu 11.04. Устройство подключено к Интернету через беспроводной USB-адаптер, и на нем установлен openssh, поэтому я могу подключиться к нему с других компьютеров в моей сети. Моя проблема в том, что через несколько минут после того, как я подключился к машине через ssh, соединение ssh зависает, и я ничего не могу сделать на терминале. Я знаю, что сервер все еще подключен к беспроводной сети, но почему-то он не отвечает ... если я не запрашиваю веб-страницу или что-либо еще из Интернета на сервере. Когда ssh-соединение зависает, я использую серверный компьютер для запроса веб-страницы с помощью wget, некоторое время ждет, затем загружает страницу, и затем ssh-соединение, которое было ранее заморожено, снова начинает работать.

В качестве временного решения на сервере я выполняю скрипт, который периодически запрашивает веб-страницу (через wget). Пока что похоже, что это решение работает нормально, однако я не понимаю, почему машина работает так. Есть идеи?

1 ответ1

3

Возможно, вам нужно настроить SSH Keepalive на что-то менее минуты (на стороне клиента).

Посмотрите файл /etc/ssh/ssh_config

ServerAliveInterval
Устанавливает интервал ожидания в секундах, после которого, если от сервера не было получено никаких данных, ssh(1) отправит сообщение через зашифрованный канал для запроса ответа от сервера.
По умолчанию 0, что означает, что эти сообщения не будут отправлены на сервер, или 300, если установлена опция BatchMode.
Эта опция применяется только к версии протокола 2.
ProtocolKeepAlives - это псевдоним совместимости Debian для этой опции.

Ваша потребность в активном соединении означает, что вам это нужно.

Для лучшего понимания смотрите FAQ по OpenSSH,
В частности, мое ssh-соединение зависает или выпадает через N минут бездействия.

Обычно это происходит из-за того, что фильтр пакетов или устройство NAT отключили ваше TCP-соединение из-за неактивности. Вы можете включить ClientAliveInterval в серверах sshd_config, или включить ServerAliveInterval в клиенте ssh_config (последний доступен в OpenSSH 3.8 и новее).

Включение любой из этих опций и установка интервала меньше времени, необходимого для тайм-аута сеанса, гарантирует, что соединение будет оставаться "свежим" в таблице соединений устройства.

Вы также можете быть заинтересованы в настройке TCPKeepAlive .
(Я не предлагаю вам изменить это; просто вы читаете об этом тоже)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .