Улучшите удаленные сеансы в Linux с помощью Mosh и Tmux

Одна из сильных сторон Linux – его ориентация на работу в сети, во многом благодаря наследию Unix. Есть причина, по которой Linux является предпочтительной операционной системой для серверов.

Основной способ удаленного доступа к серверам Linux – через SSH или Secure Shell. Хотя он полезен и безопасен, он был разработан в эпоху до того, как Wi-Fi и сотовая связь стали обычным явлением.

Если вы переместите свой компьютер в другую сеть Wi-Fi или переведете его в спящий режим, вы можете оказаться отключенным из-за зависшего экрана терминала.

Почему Mosh + Tmux?

К счастью, есть несколько инструментов, которые сделают удаленные вычисления с помощью SSH проще и надежнее. Вы можете использовать их везде, от физического терминала в центре обработки данных до домашнего сервера, на облачном сервере, даже на другом настольном компьютере с операционной системой Unix или BSD.

Mosh – это инструмент поверх SSH, который информирует об изменении сетевых подключений, а tmux – это «терминальный мультиплексор», который позволяет сохранять сеанс оболочки для разных учетных записей и даже совместно использовать их.

Подробнее: что такое SSH и для чего он нужен?

Начало работы с Mosh

Mosh – это проект с открытым исходным кодом, который заставляет SSH работать через роуминг и прерывистые соединения, как и многие беспроводные соединения.

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

Связанный: Управление удаленными SSH-соединениями с помощью этих команд Linux

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

В документе, написанном авторами, есть больше технических деталей, но установить его в качестве пользователя довольно просто. Mosh широко доступен в менеджерах пакетов большинства дистрибутивов Linux. Он также доступен в виде приложения Google Chrome.

Установите Mosh в Linux

Например, для установки в Ubuntu:

 sudo apt install mosh

Конечно, на сервере также должен быть установлен сервер Mosh. Преимущество Mosh в том, что серверный компонент может работать в пользовательском режиме, поэтому для его установки не требуется быть root.

Использование Моша

Если вы хотите подключиться к удаленному компьютеру, просто введите:

 mosh username@server

Очевидно, вы захотите заменить «имя пользователя» и «сервер» своим именем пользователя и именем машины, к которой вы пытаетесь подключиться.

См. Документацию, если у вас есть более специализированные потребности, например, подключение к другому порту.

Если все работает правильно, у вас будет сеанс удаленного терминала, только с SSH. Вы сможете вводить команды таким же образом, но ваше соединение будет более надежным.

Начало работы с Tmux

У вас есть подключение к удаленному терминалу, которое может выдержать изменения беспроводной сети, но как насчет того, когда вы наконец подключитесь?

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

Кроме того, вы можете делать в терминале только одно задание за раз, даже с контролем заданий. Если вы хотите запустить полноэкранный редактор, он займет весь терминал.

Tmux – один из ответов на эти проблемы. Это «терминальный мультиплексор», который позволяет запускать несколько терминалов в одном окне. Это похоже на терминал с вкладками на рабочем столе Linux, но гораздо более гибкий.

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

Установить tmux также очень просто. Как и Mosh, он включен во многие менеджеры пакетов дистрибутива Linux. В Ubuntu вы просто набираете:

 sudo apt install tmux

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

Когда он установлен, вы запускаете tmux с помощью команды:

 tmux

Затем вы запустите окно терминала, подобное тому, которое вы запустили локально. Вы увидите строку состояния, показывающую, в каком окне вы находитесь.

Tmux делит экран на «окна» с несколькими «панелями», показывая свои собственные терминалы. Вы можете переупорядочивать и изменять размер этих панелей, создавая неограниченное количество окон с собственными панелями.

Поскольку tmux – это программа на основе терминала, она полностью управляется с клавиатуры. Команда префикса по умолчанию для выполнения команд в tmux – Ctrl + B. Это можно изменить в файле конфигурации.

Файл конфигурации пользователя – это .tmux.conf в вашем домашнем каталоге. В документации есть более подробная информация, но количество настроек, которые вы можете выполнить, обширно.

У Tmux может быть кривая обучения, но с другими «сложными» программами в мире Linux / Unix многие пользователи обнаруживают, что время, потраченное на изучение этих программ, тратится на то, что он позволяет им делать.

Один из самых мощных вариантов – возможность отсоединить сеанс и подключиться к нему позже. Для этого наберите Ctrl + D. Для повторного подключения введите «tmux attach» в оболочке, и вы вернетесь к сеансу.

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

Комбинирование Mosh и Tmux

Настоящая сила удаленного сеанса заключается в сочетании Mosh и tmux.

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

Комбинация Mosh и tmux обеспечит максимальную надежность и гибкость удаленного входа в систему. Только в tmux есть еще много чего, что раскроет всю мощь ваших терминальных сессий.