Jump to content

Мош (программное обеспечение)

Mosh
Оригинальный автор(ы) Кейт Уинштейн
Первоначальный выпуск 12 марта 2012 г .; 12 лет назад ( 12.03.2012 )
Стабильная версия
1.4.0 / 26 октября 2022 г .; 21 месяц назад ( 26.10.2022 ) [1]
Репозиторий
Операционная система Unix-подобные системы
Тип Утилита
Лицензия GNU GPLv3 с OpenSSL и iOS исключениями
Веб-сайт мош .org Отредактируйте это в Викиданных

В вычислительной технике Mosh ( мобильная оболочка) — это инструмент, используемый для подключения клиентского компьютера к серверу через Интернет для запуска удаленного терминала . [2] Мош похож [3] на SSH с дополнительными функциями, призванными повысить удобство использования для мобильных пользователей. Основные особенности:

  • Mosh поддерживает свой сеанс, даже когда он « роуминг » (когда конечная точка клиента меняет разные IP- адреса), например, при переходе в другую сеть Wi-Fi или при переходе с Wi-Fi на 3G . [4]
  • Mosh поддерживает сеанс терминала (а не «соединение» в смысле TCP, поскольку Mosh использует UDP ), даже когда пользователь теряет подключение к Интернету или переводит своего клиента в « спящий режим ». Для сравнения, в таких случаях SSH может потерять соединение из-за тайм-аута TCP . [5]
  • Клиент Mosh пытается реагировать на события клавиатуры (ввод, стирание символов с помощью delete ключ и так далее), не дожидаясь задержки сети . Он использует адаптивную систему, которая прогнозирует, решит ли приложение, работающее на сервере, повторять нажатия клавиш или удаления пользователя. [6] [7]

Основными недостатками Mosh являются дополнительные требования к серверу, отсутствие некоторых специальных функций SSH (например, переадресация соединений) и отсутствие собственного клиента Windows . [2] Альтернативой для серверов Linux (которые все еще требуют установки на сервере) является использование GNU Screen поверх обычного SSH-соединения.

Mosh работает на другом уровне , чем SSH. В то время как SSH передает поток байтов в каждом направлении (от сервера к клиенту или от клиента к серверу) с помощью TCP , Mosh запускает на сервере эмулятор терминала , чтобы выяснить, что должно быть на экране. [2] Затем сервер передает этот экран клиенту с различной частотой кадров, в зависимости от скорости сети. [8] Это позволяет Mosh экономить сетевой трафик при медленных или прерывистых соединениях.

Поддерживаемые платформы

[ редактировать ]

Mosh доступен для большинства дистрибутивов Linux , macOS , FreeBSD , NetBSD и OpenBSD , Android , Solaris , Cygwin , а также в виде приложения Chrome . [2] Программа Termius для iOS включает независимую реализацию протокола Mosh. [9]

Производительность

[ редактировать ]

Mosh построен на протоколе государственной синхронизации (SSP). [10] который поддерживает однопакетный роуминг. [11] После того, как клиент переключился на новый IP-адрес, одного пакета, успешно дошедшего до сервера, достаточно для «роуминга» соединения. Клиенту не обязательно знать, что он находится в роуминге. (Клиент может находиться в сети с преобразованием сетевых адресов (NAT), когда маршрутизатор NAT перемещается.) [8]

Потеря пакетов

[ редактировать ]

В исследовательской работе Моша [8] создатели протестировали SSP на канале с потерей пакетов 29% и обнаружили, что SSP сократил среднее время ответа в 50 раз (с 16,8 секунды до 0,33 секунды) по сравнению с SSH, который использует TCP . Другое исследование, проведенное студентами Стэнфордского университета , показало, что SSP сократил среднее время ответа в 30 раз (с 5,9 секунды до 0,19 секунды). [12]

Локальное эхо

[ редактировать ]

По словам разработчиков Mosh, программа способна предсказывать и немедленно отображать 70% нажатий клавиш пользователем. [2] [8] сокращение среднего времени ответа на нажатие клавиши до менее 5 миллисекунд (маскировка задержки в сети). Другое исследование, проведенное студентами Стэнфордского университета, показало, что Мош способен быстро повторять 55% нажатий клавиш пользователя. [13]

Недостатки

[ редактировать ]

По сравнению с более популярным SSH , Mosh имеет следующие недостатки:

Предварительные требования на сервере

[ редактировать ]

Основным недостатком Mosh является то, что он требует от сервера выполнения дополнительных требований, которые не нужны самому ssh. Из-за своей конструкции Mosh нуждается в сервере, позволяющем осуществлять прямые соединения через UDP. [14] Серверы, не соответствующие этим предварительным требованиям, не могут использоваться Mosh. Примеры таких систем включают серверы за брандмауэрами, которые ограничивают подключения к ssh-порту через TCP. Также проблематичны серверы, до которых можно добраться только косвенно. Последнее обычно поддерживается ssh через опцию «ProxyCommand», но Mosh не поддерживает это. [15]

Один порт на соединение

[ редактировать ]

По умолчанию сервер пытается выделить первый свободный порт UDP в диапазоне 60001–61000 для каждого соединения. Такое динамическое распределение портов считается дополнительным бременем и риском для обслуживания брандмауэра. [16] Значительная часть фильтрации брандмауэра происходит посредством отслеживания соединений, так называемой фильтрации с отслеживанием состояния . Она основана на флагах SYN/ACK в сегментах TCP , пакеты UDP не имеют таких флагов. [17]

Смягчение:

  1. Порт UDP на сервере можно настроить для каждого соединения Mosh, поэтому необходимо открыть только ограниченное количество портов. [18]
  2. Брандмауэры с глубокой проверкой пакетов и брандмауэры приложений могут лучше справиться с этой задачей, просматривая содержимое пакета и связывая его с начальным соединением.

Падение вывода и отсутствие обратной прокрутки терминала

[ редактировать ]

Обратная прокрутка не поддерживается в текущей версии Mosh, а при использовании ее в эмуляторе терминала с полосами прокрутки они исчезают, но планируется в версии 1.3. [19] Эта функция является компромиссом для очистки мусора, поскольку двоичный вывод стирается. [ нужны разъяснения ] . Один из способов смягчить это — использовать Mosh в сочетании с терминальным мультиплексором, таким как screen или tmux . [20]

Отсутствие пересылки ssh-агента

[ редактировать ]

Пересылка ssh-агента в настоящее время не поддерживается. [21]

Отсутствие переадресации X11.

[ редактировать ]

Переадресация X11 пока не поддерживается. [22]

См. также

[ редактировать ]
  1. ^ «Выпуск mosh-1.4.0 · mobile-shell/Mosh» . Гитхаб .
  2. ^ Jump up to: а б с д и «Мош: мобильная оболочка» . Проверено 28 марта 2013 г.
  3. ^ Брокмайер, Джо. «Into the Mosh Pit: замена мобильной оболочки для SSH». Архивировано 20 марта 2014 г. на Wayback Machine , linux.com , 10 апреля 2012 г. Проверено 28 марта 2013 г.
  4. ^ Делони, Дэвид. «Mosh: Secure Shell Without the Pain» , Technopedia , 19 октября 2012 г. Проверено 28 марта 2013 г.
  5. ^ Кокс, Джон. «Исследователи MIT намечают новый подход к протоколам мобильного Интернета». Архивировано 18 октября 2012 г. в Wayback Machine , Network World , 6 июля 2012 г. Проверено 28 марта 2013 г.
  6. ^ Беккерт, Аксель. «Mosh и AutoSSH: инструменты удаленной оболочки, которые облегчают вашу жизнь в медленной или постоянно меняющейся сети» , Linux Magazine , ноябрь 2012 г.
  7. ^ Лейден, Джон. «Читающий мысли Мош из MIT противостоит демонам SSH» , The Register , 13 апреля 2012 г. Проверено 28 марта 2013 г.
  8. ^ Jump up to: а б с д Уинштейн, Кейт. «Mosh: интерактивная удаленная оболочка для мобильных клиентов» , Ежегодная техническая конференция USENIX 2012, Бостон, Массачусетс, 14 июня 2012 г.
  9. ^ «Функции Termius» , Crystalnix.
  10. ^ «MIT представляет новый интернет-протокол для мобильных клиентов»
  11. ^ Уинштейн, Кейт и Балакришнан, Хари. «Mosh: Интерактивная удаленная оболочка для мобильных клиентов (более подробный проект)» . Проверено 28 марта 2013 г.
  12. ^ Нагарадж, Канти и Макмилин, Эмили. «Мош» , Reproducing Network Research , 14 марта 2013 г. Проверено 28 марта 2013 г.
  13. ^ Альджунид, Ахмед. «Оценка результатов производительности Mosh 'Mobile Shell'» , Reproducing Network Research , 13 марта 2013 г. Проверено 28 марта 2013 г.
  14. ^ «'Mosh авторизует пользователя через SSH, а затем установит соединение через порт UDP между 60000 и 61000» . Проверено 19 июня 2014 г.
  15. ^ «Отчет об ошибке Mosh № 285: невозможно использовать SSH-соединение на основе ProxyCommand» , дата обращения 18 июня 2014 г.
  16. ^ «Опасности открытия широкого спектра портов? (mosh)» , IT Security (Stack Exchange) , 13 апреля 2012 г. Проверено 28 марта 2013 г.
  17. ^ Мультиплексирование большего количества сеансов в один и тот же порт UDP.
  18. ^ «используйте -p для определения удаленного порта UDP»
  19. ^ https://github.com/keithw/mosh/issues/2 «В версии 1.3 запланирована поддержка обратной прокрутки»
  20. ^ «Прокрутка назад и альтернативный экран (было: использовать альтернативный экран в smcup/rmcup)»
  21. ^ "Пересылка агента SSH"
  22. ^ «Поддержка пересылки X»
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d46ed1fd5ddc3462cc46b28c3500095d__1713407400
URL1:https://arc.ask3.ru/arc/aa/d4/5d/d46ed1fd5ddc3462cc46b28c3500095d.html
Заголовок, (Title) документа по адресу, URL1:
Mosh (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)