NanoKVM: Удаленное управление компьютером через интернет с помощью Tuna
NanoKVM — это компактное IP-KVM решение от компании Sipeed, которое позволяет полностью контролировать компьютер на расстоянии. С его помощью можно видеть экран, управлять периферией (клавиатурой и мышью) и монтировать образы дисков через обычный браузер.
Изначально устройство предназначено для работы в локальной сети. Однако, используя туннели Tuna, можно организовать безопасный доступ к NanoKVM из любой точки мира без необходимости иметь «белый» IP, настраивать VPN или пробрасывать порты на роутере. Дополнительно мы рассмотрим, как настроить мониторинг 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, но актуальна для всей линейки устройств. Для начала работы вам понадобятся:
- NanoKVM, подключенный к сети (с доступом по SSH или через веб-терминал).
- Учетная запись на платформе tuna.am.
- Персональный токен авторизации.
Важно: файлы 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 или задать вопрос в сообществе.


