NanoKVM: удалённый доступ и мониторинг через Tuna

NanoKVM: Удаленное управление компьютером через интернет с помощью Tuna

NanoKVM — это компактное IP-KVM решение от компании Sipeed, которое позволяет полностью контролировать компьютер на расстоянии. С его помощью можно видеть экран, управлять периферией (клавиатурой и мышью) и монтировать образы дисков через обычный браузер.

Изначально устройство предназначено для работы в локальной сети. Однако, используя туннели Tuna, можно организовать безопасный доступ к NanoKVM из любой точки мира без необходимости иметь «белый» IP, настраивать VPN или пробрасывать порты на роутере. Дополнительно мы рассмотрим, как настроить мониторинг Tuna для контроля доступности устройства в режиме реального времени.

NanoKVM: удалённый доступ и мониторинг через Tuna

Особенности системы и личные впечатления

В отличие от многих встраиваемых систем (IP-камер или бюджетных роутеров), где каждый мегабайт памяти на счету, NanoKVM приятно удивляет объемом хранилища. Устройство поставляется с SD-картой на 32 ГБ, разделенной на три сегмента:

  • /boot (16 МБ) — загрузчик и ядро.
  • / (7.6 ГБ) — основная файловая система.
  • /data (21.2 ГБ) — пользовательские данные и ISO-образы.

Программная часть базируется на Buildroot. Разработчики включили в сборку BusyBox практически весь необходимый инструментарий: от привычных ping и nano до таких мощных утилит, как htop, tmux, rsync и даже python3. Оперативной памяти (256 МБ) вполне хватает для работы, несмотря на то что часть ресурсов зарезервирована под видеозахват с HDMI.

Из нюансов стоит отметить специфический показатель Load Average (LA), который может казаться завышенным. По заявлению производителя, это норма для используемого процессора RISC-V (C906) при выполнении фоновых задач Linux.

Подготовка к настройке удаленного доступа

Данная инструкция протестирована на NanoKVM Cube, но актуальна для всей линейки устройств. Для начала работы вам понадобятся:

  1. NanoKVM, подключенный к сети (с доступом по SSH или через веб-терминал).
  2. Учетная запись на платформе tuna.am.
  3. Персональный токен авторизации.

Важно: файлы Tuna мы будем размещать в разделе /data, так как он сохраняется при обновлении прошивки устройства.

Установка Tuna CLI

Подключитесь к устройству по SSH и выполните следующие команды:

mkdir -p /data/tuna
INSTALL_DIR=/data/tuna sh -c "$(curl -sSLf https://releases.tuna.am/tuna/get.sh)"

После установки сохраните свой токен:

/data/tuna/tuna --config=/data/tuna/.tuna.yml config save-token ВАШ_ТОКЕН

Вариант 1. Бесплатный доступ (HTTP-туннель)

Идеально подходит для периодического управления через веб-интерфейс. На бесплатном тарифе адрес туннеля меняется каждые 30 минут (актуальную ссылку всегда можно найти в личном кабинете Tuna).

Создание скрипта запуска

cat << 'EOF' > /data/tuna/tuna-http.sh
#!/bin/sh
while ! ip route | grep -q default; do
    sleep 1
done

exec /data/tuna/tuna \
    --config=/data/tuna/.tuna.yml \
    --log=/tmp/tuna-http.log \
    http \
    --inspect=false \
    --basic-auth=admin:ВАШ_ПАРОЛЬ \
    --https-redirect \
    80
EOF
chmod +x /data/tuna/tuna-http.sh

Настройка автозагрузки

Чтобы туннель запускался автоматически и восстанавливался при сбоях, добавим его в /etc/inittab:

echo "tweb::respawn:/data/tuna/tuna-http.sh" >> /etc/inittab
kill -HUP 1

Вариант 2. Профессиональный доступ (Платная подписка)

Подписка позволяет закрепить за собой постоянный поддомен и организовать SSH-туннель для прямого доступа к консоли NanoKVM.

HTTP и SSH туннели

Для HTTP-туннеля с фиксированным адресом используйте флаг --subdomain=ваш-адрес. Для SSH-доступа создайте отдельный скрипт:

cat << 'EOF' > /data/tuna/tuna-ssh.sh
#!/bin/sh
while ! ip route | grep -q default; do
    sleep 1
done

exec /data/tuna/tuna \
    --config=/data/tuna/.tuna.yml \
    --log=/tmp/tuna-ssh.log \
    ssh \
    --port=nanokvm-ssh \
    --password-auth=false
EOF
chmod +x /data/tuna/tuna-ssh.sh

Добавьте обе службы в автозапуск через inittab аналогично первому способу.

Мониторинг доступности (Heartbeat)

Для критически важных систем важно знать, когда устройство уходит в офлайн. Tuna предоставляет механизм Heartbeat: устройство регулярно отправляет сигнал «я в сети», и если сигнал пропадает, вы получаете уведомление в Telegram или на почту.

Скрипт мониторинга

cat << 'EOF' > /data/tuna/tuna-heartbeat.sh
#!/bin/sh
while ! ip route | grep -q default; do
    sleep 1
done

while true; do
    /data/tuna/tuna monitor ping --host=nanokvm YOUR_MONITOR_ID
    sleep 300
done
EOF
chmod +x /data/tuna/tuna-heartbeat.sh

Регистрация монитора происходит в панели управления Tuna. Полученный MONITOR_ID необходимо вставить в скрипт выше.

Заключение

NanoKVM — это отличное устройство для системных администраторов и энтузиастов. Использование Tuna делает его полноценным инструментом удаленной поддержки, доступным из любой точки мира. Хотя в базе не хватает встроенного управления питанием и Serial-консоли, гибкость системы позволяет легко интегрировать дополнительные решения.

Если у вас возникли вопросы по настройке, вы всегда можете обратиться к официальной документации Tuna или задать вопрос в сообществе.

 

Источник

Читайте также