У меня есть сервер, подключенный к Интернету через две сети - микроволновая связь и ADSL. Серверу был назначен статический IP-адрес в обеих сетях.

Обе сети ненадежны и часто отключаются. Поэтому любая задача, которую я запускаю с моего клиента через ssh, прерывается, и мне приходится закрывать все и переключаться на другое соединение.

Это расстраивает делать это каждый раз, и поэтому мне было интересно, есть ли способ, которым я могу открыть ssh-соединение, которое использует обе сети параллельно, разделить передачу данных между ними и если есть какой-либо сбой в одной из сети перенаправить весь трафик данных на другой таким образом, чтобы мой ssh не пострадал, и я могу беспрепятственно работать, не зная, какую сеть на самом деле использует ssh?

Это может быть смехотворно бессмысленный вопрос, но я не специалист по сетевым технологиям.Пожалуйста, скажите мне, если это возможно, или, пожалуйста, предложите мне другие способы сделать это, если таковые имеются.

Мой сервер использует CentOS, а мой клиент - Ubuntu и Mac.

1 ответ1

1

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

Во-первых, я запускаю свои команды в screen или tmux - таким образом, ваши команды продолжают работать, даже если вы отключены. Затем вы можете снова войти в систему и повторно присоединить сеанс. Вы хотите сделать это в любом сценарии. Вы хотите экран установлен на ваших серверах. Вы запускаете сеанс ssh (или сеанс mosh), запускаете экран в нем, и любые задачи, запущенные в этом сеансе (или другие сеансы экрана), просто продолжают работать. Вы можете даже отменить сеанс экрана, чтобы заняться другими делами, или полностью выйти из сеанса ssh и вернуться к сеансу экрана позже.

Я бы также посоветовал смотреть на mosh, а не на простой ванильный ssh. Mosh разработан, чтобы позволить вам перемещаться между соединениями, и разработан для соединений с высокой задержкой, как у вас. Я бы использовал это с экраном, чтобы быть в безопасности, но это должно позволить вам делать то, что вы хотите сделать.

Я хотел бы поэкспериментировать с балансировкой нагрузки - я использую диспетчерский диспетчер, который переключался бы, если соединение было плохим, но я не уверен, работает ли это с клиентом ssh или mosh. Любое или оба из вышеупомянутых предложений, вероятно, справятся с этим чисто, даже с одним плохим соединением.

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