Утилита ttyd

Утилита ttyd — это простой инструмент командной строки для совместного использования терминала через Web-браузер.















Об утилите




Данная утилита доступна на github.com. Она позволяет запустить выполнение любой утилиты командной строки в браузере.




Примеры использования:




  • Например, может быть удобно, запустить top, htop, или что-то подобное в браузере. В отдельной вкладке браузера вы всегда сможете посмотреть нагруженность вашего сервера.



  • Или можно запустить экземпляр bash и работать в командной строке сервера в браузере. Это может быть удобно, если вы по какой-то причине не можете использовать ssh.



  • И простые команды, которые при выполнении дают какой-то вывод и завершаются, можно запустить с помощью этой утилиты. Это могут быть такие команды как: ls, df, du и тому подобное. При этом, как только вы обновляете страничку, на сервере выполняется данная утилита и результат выводится в браузере.




Практика




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




$ wget -O ttyd https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.x86_64




Дальше даём приложению право запускаться:




$ chmod u+x ttyd




И запускаем, например bash:




$ ./ttyd bash




После запуска видим порт, на котором запустился bash. И подключаемся по ip-адресу сервера и этому порту с помощью браузера, например: httt://192.168.0.5:7681.




Утилита ttyd. Подключение к терминалу сервера используя браузер.
Утилита ttyd. Подключение к терминалу сервера используя браузер.




Эта утилита имеет ряд опций, вот некоторые из них:




  • -p <port> — порт на котором мы запускаем приложение (по умолчанию 7681, можно указать 0 чтобы использовать случайный порт);



  • -i <interface> — сетевой интерфейс который будет использоваться (например — eth0);



  • -c <username:password> — логин и пароль, который потребуется указать в браузере (по умолчанию парольная аутентификация выключена);



  • -m <max-clients> — максимальное количество клиентов;



  • -o — разрешает подключаться только одному клиенту, при этом как только произойдет дисконнект (например клиент закроет вкладку браузера или перезагрузит её), то web-приложение завершит свою работу;




Приложение позволяет работать через Nginx reverse proxy и использовать TLS сертификаты. Также вы можете сделать Systemd юнит, чтобы запускать эту утилиту как службу.




На страничке https://github.com/tsl0922/ttyd/wiki — вы можете почитать про дополнительные опции.






























2023-09-11T14:00:47
Утилиты Linux