5 утилит Linux для работы с удаленным сервером


Выполнение команд на удалённом компьютере — обычное дело для многих системных администраторов, контролирующих большой парк устройств на Linux. Опытные пользователи знают, что SSH — прекрасная утилита, которая решает 99% задач. Но существуют и другие приложения, заточенные под разные задачи и обладающие разными возможностями. Давайте о них и поговорим.

Tmux — подключение к серверу

Tmux — это терминальный мультиплексор, то есть утилита, позволяющая запустить несколько терминальных сессий в одном терминале. И переключаться между ними, работая со всеми в одном окне. При необходимости можно отключиться от сессии, оставив её в фоновом режиме, а затем вернуться, чтобы посмотреть результат.

Например, если вы работаете в Vim, можете использовать окно терминала с открытыми файлами, процессами в офисе, а затем подключиться к этой сессии из дома, получив те же окна с запущенными процессами. Можно продолжить работу с того момента, где остановились. Это удобно и при разрыве связи, и при одновременной работе нескольких сотрудников в терминале. Все видят, что делают другие.

Tmux имеет удобный формат написания строки статуса, которая автоматически активируется после запуска утилиты. Важной опцией являются возможность вертикального разделения экрана и прокрутка истории мышью при работе в режиме mouse-mode on. Команды можно вводить с помощью клавиатурных комбинаций или с терминала.

Базовые команды Tmux

  • attach-session (attach). Подключение к существующей сессии. В параметре указывайте опцию -t и идентификатор сессии.
  • detach-session (detach). Отключение всех (или указанного в -t) клиентов от сессии, переданной в –s.
  • has-session. Отправка идентификатора сессии для проверки её существования.
  • kill-server. Прекращение всех сессий, которые запущены.
  • kill-session. Завершение указанной в -t сессии.
  • list-clients. Вывод списка клиентов, которые подключены к сессии -t.
  • list-sessions (ls). Просмотр списка запущенных сессий.
  • new-session. Создание новой сессии. Опционально можно задать ей имя в -s и стартовую директорию в -c.
  • rename-session. Задать другое имя сессии. Укажите идентификатор сессии и новое имя.

Screen

Ещё один мультиплексор, удобный при запуске программ на удаленном сервере, а также при работе с утилитами, запущенными из командной строки. Поддерживает работу с несколькими сессиями одновременно. Можно начать сессию, выполнить команду Ctrl+A D для отключения, заняться другой — а потом без проблем вернуться к первой, используя ключ ‘r’. Текущая сессия сохраняется на сервере, поэтому продолжать работу можно с любого компьютера.

Можно выделить функцию наблюдения за выбранным окном. После ввода команды <C-a M> будут контролироваться все изменения, происходящие в выбранном окне, даже если вы работаете в другом окне. Удобна и возможность создать клавиатурные комбинации на своё усмотрение. Например, для вызова часто используемых приложений. Для этого используется bind в конфиге.

Также стоит выделить следующие флаги:

  • -A. Подгонка размера окна screen под размер терминала
  • -ls. Вывод списка отключенных окон.
  • -d. Отключение сессии screen.
  • -D. Отключение сессии screen, с игнорированием ошибок на невозможность отключения
  • -r [pid.tty.host]. Подключение к первой найденной сессии или подключение к определённой сессии, код которой узнали после использования флага -ls.

  • -R. Подключение к первой найденной сессии или создание новой, если сессий нет. Можно подключаться к определённой сессии.

Остальные возможности можно узнать командой: man screen

Mosh — защита от разрывов

Допустим, вам нужно обеспечить всегда активное непрерывное соединение с терминальным сервером. Даже если вы закрыли ноутбук на пару дней, а затем подключились к Wi-Fi в другом месте, соединение должно восстанавливаться само. Тут и пригодится Mosh.

Это надстройка над обычным OpenSSH сервером, которая позволяет забыть о разрывах соединения. Авторизуясь по обычному SSH, Mosh поднимает отдельный UDP-канал который мгновенно восстанавливается после разрыва даже при смене внешнего IP-адреса. Чтобы держать постоянное подключение к терминальному серверу, нужно установить Mosh только на сервер и на рабочее устройство. Mosh обычно не требует дополнительной настройки и работает прямо из коробки. Достаточно вместо команды SSHнаписать mosh: mosh ser@my-server.com

Для нестандартных конфигураций команда выглядит чуть сложнее. Например, если нужно указать порт и путь к ключу: mosh --ssh="ssh -p 2222 -i /path/to/ssh.key" user@my-server.com

В чем удобство утилиты?

  • Возможность роуминга SSH-соединений. Переключайтесь между wi-fi сетями, меняйте IP в мобильных сетях — соединение не разорвется.
  • Уменьшение лагов за счёт использования UDP и умного predictive echo.
  • Оптимизация использования сети — протокол Mosh позволяет передавать только то, что должно быть отображено. Сtrl-C работает мгновенно, даже если принести в консоль содержимое файла на 500 ГБ.
  • Обратная совместимость. Чтобы начать работать с Mosh, пользователю нужно выполнить минимум телодвижений.

Remmina

Часто можно услышать, что Remmina — лучший клиент RDP для Linux. У этого приложения есть удобный графический интерфейс, большое количество настроек, функция ярлыков для быстрого подключения к удалённым узлам с заданными настройками. Правда, ярлыки не сохраняются автоматически, это нужно делать самостоятельно. Кроме протокола RDP поддерживается VNC и SSH. Программа разрабатывается в рамках проекта FreeRDP, с использованием библиотеки GTK. Есть порт на Qt. Для установки достаточно выполнить команду: sudo apt install remmina

Основные поддерживаемые плагины:

  • RDP Plugin. Используется для подключения к RDP-серверу на Windows/Linux;
  • VNC Plugin. Удалённое подключение к рабочему столу компьютера по протоколу RFB;
  • SSH Plugin. Используется для запуска команд оболочки на удаленной машине через SSH;
  • SFTP Plugin. Протокол прикладного уровня для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения;
  • SPICE Plugin. Протокол удаленного рабочего стола с открытым исходным кодом;
  • Simple Terminal Plugin st. Простой эмулятор терминала;
  • EXEC Plugin. Используется для выполнения системных и Java-программ;
  • NX Plugin. Пакеты npm, содержащие генераторы и исполнители для расширения рабочей области Nx;
  • XDMCP Plugin. Позволяет компьютеру A, работающему под управлением X11, подключаться к компьютеру Б, работающему под управлением X11, и взаимодействовать с компьютером Б так, будто он физически находится на компьютере Б.

XFreeRDP

RDP-клиент для Linux, использующий консольный интерфейс. Поддерживает только протокол RDP. У программы XFreeRDPмножество опций, что делает утилиту удобной в работе. Для подключения к серверу используется опция /v. Например: xfreerdp /v:ip_server:port /u:username

Для установки программы в Ubuntu используйте команду sudo apt install freerdp2-x11

Команды XFreeRDP

  • /f Полноэкранный режим (<Ctrl>+<Alt>+<Enter> переключает полноэкранный режим)
  • /port:<number> Порт сервера
  • /size:... Размер экрана
  • /monitor-list Вывести список обнаруженных мониторов
  • /monitors:<id>[,<id>[,...]] Выбрать мониторы для использования
  • -grab-keyboard Отключить захват клавиатуры
  • -mouse-motion Отключить отправку движений мыши
  • /log-level:... Установить уровень журналирования по умолчанию
  • +home-drive Сделать домашнюю папку пользователя совместной с удалённым столом
  • /drive:<ИМЯ>,<ПУТЬ> Подключить директорию <ПУТЬ> как шару с именем <ИМЯ>
  • +drives Включить перенаправление всех точек монтирования как совместных папок
  • /ipv6 Предпочитать IPv6 AAAA запись, а не IPv4 A запись

  • /t:<ЗАГОЛОВОК> Заголовок окна

  • /kbd:0x<id> или <ИМЯ> Раскладка клавиатуры
  • /kbd-fn-key:<ЗНАЧЕНИЕ> Значение функциональной клавиши
  • /kbd-list Вывести список раскладок клавиатуры
  • /kbd-subtype:<id> Подтип клавиатуры
  • /kbd-type:<id> Тип клавиатуры</id>
поделиться: 
(0)
автор: Андрей Огурчиков
опубликовано: 13.12.2021
Читайте нас: 
Вверх!