Почему Мош может оставаться в системе, даже если вы изменили сетевую ситуацию?

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

Однако, если вы создаете программное обеспечение самостоятельно, обычно используется -lavcodec или аналогичный, который обнаружит, что libavcodec.so не версионирован. Точно так же сценарии сборки могут ожидать, что эти имена существуют.

Неверсированные имена не требуются для пакетов распространения, поэтому они не включены по умолчанию, но, поскольку они полезны при сборке другого программного обеспечения, они включены в пакет -devel . Другие дистрибутивы имеют другие описания и включают ссылку .so в основной пакет; оба варианта - разумный выбор.

2
10.07.2018, 19:02
2 ответа

В основном потому, что mosh использует протокол без установления соединения и правильно обрабатывает повторное связывание клиента и сервера. Я сам не уверен на 100% в деталях, но насколько я понимаю,в целом это работает так:

  1. Когда вы впервые используете mosh для подключения к удаленному хосту, он использует обычный SSH для входа в систему от вашего имени и запускает собственный серверный компонент, который прослушивает другой порт для подключения.
  2. Затем Mosh закрывает исходное соединение SSH и создает новый терминальный сеанс, работающий по собственному протоколу. Эта ссылка использует UDP вместо TCP, поэтому она функционально эмулирует соединение поверх протокола без установления соединения.
  3. Если IP-адрес вашего клиента изменится, или ваша сеть на некоторое время прервется, или произойдет что-то подобное, mosh попытается повторно -установить это эмулированное соединение, продолжая отправлять пакеты на исходный адрес сервера. Когда серверный компонент видит пакеты, приходящие с вашего нового адреса, он начинает отправлять ответные пакеты туда, а не на ваш старый адрес.

Конечно, здесь также задействована аутентификация (, в противном случае кто угодно может тривиально захватить ваши сеансы mosh ), но на самом деле это не особенно важно для того, как происходит переключение.

Вероятно, стоит отметить, что во многих программах P2P используются очень похожие методы (, то есть, по сути, эквивалентные шагам 2 и 3, только с туннелированием чего-то еще )для обеспечения устойчивости к сетевым изменениям. Примеры программного обеспечения, которое делает такие вещи, включают Syncthing и tinc .

7
27.01.2020, 21:51

Ваша цитата взята с сайта,https://mosh.org. Если вы начнете читать «Техническую информацию», на ваш вопрос будет дан ответ :-).

Is that a simple reconnect technology?

Это не традиционная технология переподключения, то есть тайм-аут + переподключение. Примером этого может быть тайм-аут SSH/TCP + ручное повторное подключение к , экрану или серверам tmux.

moshспециально разработан как технология мобильности. Он может адаптироваться намного быстрее.

Roaming with SSP becomes easy: the client sends datagrams to the server with increasing sequence numbers, including a "heartbeat" at least once every three seconds. Every time the server receives an authentic packet from the client with a sequence number higher than any it has previously received, the IP source address of that packet becomes the server's new target for its outgoing packets. By doing roaming “statelessly” in this manner, roaming works in and out of NATs, even ones that may themselves be roaming. Roaming works even when the client is not aware that its Internet-visible IP address has changed. The heartbeats allow Mosh to inform the user when it hasn't heard from the server in a while (unlike SSH, where users may be unaware of a dropped connection until they try to type).

Другие технологии мобильности могут закорачивать -цепь с такой задержкой пульса в тех случаях, когда клиент знает о том, что его видимый -IP-адрес в Интернете изменился. В этом разделе не говорится, заботится ли moshоб этом. Обновление через 3 секунды уже делает интерактивный сеанс moshполезным и гораздо более надежным, чем традиционные значения по умолчанию. Также есть более новые аспекты mosh, которые объясняются в «Технической информации», не слишком увязая в мелких деталях :).

По крайней мере, как описано выше, moshмобильность реализуется только для одного конца :клиента. Это помогает moshизбежать необходимости в третьей стороне -, в отличие от мобильного IP, для которого требуется «домашний агент», работающий на маршрутизаторе со стабильным IP-адресом.

При реализации мобильности очень важно, чтобы она надежно контролировалась. moshуже включает безопасность, инициализированную через SSH. Мобильный IP не имеет этого преимущества; он надеется использовать IPsec. IPsec — это дополнительное расширение IP, которое необходимо настроить между вашим компьютером и маршрутизатором. Он, как правило, используется только в определенных узких сценариях.

Существует третье сходство между использованием moshи screenили tmux:. Оно работает только потому, что серверы SSH настроены на то, чтобы вы могли оставить программу запущенной на неопределенный срок после отключения. Если вы не используете systemdс «официальной» конфигурацией по умолчанию :).systemd считает, что отсутствие возможности контролировать это было вопиющим упущением в истории Unix. Обратите внимание, что во многих других случаях использование ресурсов в течение неопределенного времени, когда вы даже не подключены к сети, будет считаться опасно расточительством. Многие веб-серверы настроены на отключение клиентов через несколько секунд, если они не отправляют или не получают значительный объем данных. См.https://en.wikipedia.org/wiki/Slowloris_(компьютер _безопасность)

Мобильный IP — старый проект. Гораздо более свежий проект — MP -TCP (multi -TCP ). Он реализует простую безопасность для управления мобильностью. MP -TCP больше похож на moshв том смысле, что начальное подключение осуществляется к одному IP-адресу сервера, который не является мобильным. Когда соединение установлено, клиент или сервер теоретически могут изменить свой IP-адрес и оставаться на связи. Однако он не может восстановиться, если все IP-адреса изменятся одновременно.

1
27.01.2020, 21:51

Теги

Похожие вопросы