Вывод консоли Linux в веб-интерфейс

Интерактивная работа

Всем привет! Сегодня я расскажу о мега-удобной штуке, когда нам нужно показать вывод консоли в веб-интерфейс и даже поработать с консолью без SSH. Итак, исходное состояние – свежеустановленная Debian 8, кстати, отличная ОС. Настроен сетевой интерфейс и /etc/resolv.conf на DNS провайдера. Больше ничего не делал, даже apt-get update/upgrade.

Первым делом, нам потребуется Golang на машине. Открываем офсайт и узнаём ссылку на последнюю версию:

Последняя версия языка
Последняя версия языка

Получаем ссылку и скачиваем её в Linux через wget:

# wget https://storage.googleapis.com/golang/go1.5.linux-386.tar.gz

Получаем последнюю версию Golang
Получаем последнюю версию Golang

После того, как файл будет скачан, разархивируем его в /usr/local

# tar -C /usr/local -xzf go1.5.linux-386.tar.gz

Разархивируем его
Разархивируем его

Затем добавим каталог в переменную окружения PATH

# export PATH=$PATH:/usr/local/go/bin
# export GOPATH=$HOME/work

Установим приложение gotty

# go get github.com/yudai/gotty

Устанавливаем gotty
Устанавливаем gotty

Переходим в каталог ~/work/bin и запускаем gotty с параметром команды, при этом у нас стартует веб-сервер, транслирующий консоль этой команды. Если указать ключ -w, то возможно делать ввод в эту команду.

Выведем команду top:

# ./work/bin/gotty top

Запускаем команду
Запускаем команду

А теперь открываем нашу машину по адресу http://10.0.0.5:8080

Вывод команды top
Вывод команды top

Как я уже говорил, можем сделать интерактивный обмен данными – позволить выполнять ввод команд в веб-браузер:

# ./work/bin/gotty -w bash

Интерактивная работа
Интерактивная работа

Как видите, отличный инструмент, позволяющий работать с сервером прямо из браузера, без ssh-клиента. Но требуется защитить подключение, благо есть возможность использовать SSL/TLS, авторизацию по ключам и установку единственного соединения. Кроме того, возможно прикрутить basic_auth для простой защиты соединения и генерировать URL для подключения произвольной длины.

Этот инструмент заслуживает внимания. Надеюсь, было интересно!


Like this post? Please share to your friends:

Comments:

Comments: 2
  1. litladmin (автор)

    Где это может пригодиться – например предоставить демо-доступ в вывод какой-либо программы (интерактивные, top, iftop и т.д). А так же предоставить возможность удаленного шелла, правда придётся защищать.

  2. stormbringer

    Ухты, классная штука! Наверное в учебных целях хорошо использовать, не имея ССШ под рукой.

Leave a Reply