Вы когда-нибудь хотели быстро поделиться своей терминальной сессией с кем-то без множества слоев хлопот? С ttyd это возможно. Эта маленькая утилита превращает ваш терминал в живое интерактивное веб-приложение. Никакого показа экрана. Никаких сложных настроек. Только ваш терминал в сети, готовый к работе.
Что такое ttyd и как он работает
ttyd — это легкий инструмент командной строки, который позволяет вам делиться своим терминалом через Интернет с помощью всего одной команды. Вам не требуется сложной настройки или других сторонних служб. Это простой способ превратить ваш локальный терминал в веб-доступный.
По своей сути ttyd оборачивает любую команду, которую вы хотите (например, оболочку типа bash или zsh), и обслуживает ее через безопасный интерфейс на основе браузера. Вы запускаете его, и он запускает веб-сервер, к которому любой, кто подключен к вашей сети, может получить доступ для взаимодействия с вашим терминалом в реальном времени, прямо из своего браузера. Думайте об этом как о совместном использовании экрана для вашего терминала, только более интерактивно и доступно.
Любые действия, которые другие выполняют на общем терминале, происходят в реальном времени в вашей системе и остаются там навсегда. Например, вы делитесь сеансом терминала. Кто-то входит в этот сеанс и создает новый файл. Этот файл фактически создается в вашей системе и остается там. Таким образом, все синхронизировано.
Особенно, если вы откроете свой сервер ttyd для более широкой сети, это удобно для удаленной поддержки, быстрых демонстраций, совместного устранения неполадок или даже управления устройством headless издалека. Он также быстр и отзывчив, поскольку создан с использованием libuv и WebGL2.
Это также означает, что если ваш сеанс попадет в руки не того человека, могут возникнуть проблемы. Однако ttyd поставляется с несколькими механизмами безопасности, которые я покажу вам позже.
Установка ttyd на Linux
Установить ttyd на Linux можно несколькими способами. Разработчики рекомендуют загрузить установочный двоичный файл с официальной страницы GitHub для установки. Перейдите на страницу релизов. Выберите версию двоичного файла, подходящую для вашей системы.
Я выберу версию x86_64, так как моя система ее поддерживает. Вы также можете использовать команду wget для загрузки файла.
wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64
Обратите внимание, что ваша команда может немного измениться в зависимости от последней версии двоичного файла, а также архитектуры. После загрузки предоставьте файлу разрешение на исполнение через chmod.
chmod +x ttyd.x86_64
Если у вас установлен Homebrew, вы можете использовать его для установки ttyd.
brew установить ttyd
Если в вашей системе включена функция Snap, вы также можете ее использовать.
sudo snap install ttyd —классический
Если вы хотите собрать приложение из исходников, это тоже возможно. Сначала обновите свою систему.
Суда apt-get обновления
Установите необходимые зависимости и инструменты с помощью этой команды:
sudo apt-get install -y build-essential cmake git libjson-c-dev libwebsockets-dev
Клонируйте репозиторий GitHub, перейдите в каталог «ttyd», создайте каталог «build» и перейдите в него.
git-клон https://github.com/tsl0922/ttyd.git
cd ttyd && mkdir build && cd build
Наконец, создайте приложение.
сделай ..
сделать && sudo сделать установить
Для демонстрации я буду использовать приложение со страницы релиза GitHub.
Использование ttyd для предоставления общего доступа к терминалу в Интернете
Базовый синтаксис ttyd выглядит следующим образом:
ttyd [опции] [команда] [аргументы…]
Для простого использования передайте любую команду Linux в ttyd.
ttyd баш
Это создало сеанс веб-сервера на http://localhost:7681. Перейдите по URL-адресу в вашем веб-браузере, чтобы увидеть его.
Порт по умолчанию — 7681. Если вы хотите изменить порт, вы можете сделать это, добавив опцию -p.
ttyd -p 7777 баш
На этот раз вам нужно будет посетить http://localhost:7777, чтобы найти сессию. Вы также можете просмотреть различные терминальные инструменты. Давайте попробуем Vim.
ttyd vim
Даже топовый инструмент или любое другое программное обеспечение для мониторинга системы.
ttyd топ
Изучение дополнительных опций
В ttyd есть много опций, которые делают вашу сессию более интерактивной и плодотворной. Сеансы по умолчанию, которые я создал ранее, были только для чтения. Это значит, что вы не можете ничего писать в терминале из браузера. Чтобы сделать его доступным для записи, вам нужно передать опцию -W или —writable.
ttyd -W нано
Вы можете добавить систему входа вашего устройства в общий доступ.
ttyd -W вход
Если у вас возникли ошибки с правами root, выполните команду sudo.
sudo ttyd -W войти
Вам также понадобится опция -W для ввода имени пользователя и пароля.
Если вы хотите повысить безопасность своего сеанса, вы можете добавить аутентификацию по имени пользователя и паролю с помощью опции -c.
ttyd -c пользователь:пароль bash
При этом любой пользователь, пытающийся присоединиться к сеансу, должен будет ввести имя пользователя и пароль. Доступны и другие параметры безопасности, такие как добавление шифрования SSL.
В ttyd можно попробовать еще много всего. Если вы застряли или хотите узнать больше, попробуйте использовать флаг -h для отображения режима справки и проверки доступных опций. Вы также можете проверить официальный GitHub для получения дополнительной информации. Многие замечательные инструменты Linux позволяют вам делиться экраном Android или даже записывать быстрые сеансы терминала.