Перенос UniFi Controller на другой компьютер — задача, с которой рано или поздно сталкивается каждый администратор сети на базе оборудования Ubiquiti. Причины могут быть разными: обновление железа, переход на серверную ОС, миграция в облако или банальная замена устаревшего ПК. Однако даже опытные пользователи нередко допускают критические ошибки, которые приводят к потере настроек устройств, сбоям в работе сети или невозможности восстановления бэкапов.

В этой статье мы разберём три официально поддерживаемых метода переноса (включая нюансы для разных версий контроллера), подробно остановимся на резервном копировании и восстановлении конфигураций, а также проанализируем типичные проблемы — от ошибок базы данных MongoDB до конфликтов версий Java. Особое внимание уделим переносу на Linux-системы и виртуальные машины, где процесс имеет свои специфические моменты.

Подготовка к переносу: что нужно сделать ДО начала миграции

Прежде чем приступать к переносу, критически важно убедиться, что текущая система готова к миграции. Начните с проверки версии UniFi Controller — она должна совпадать на обоих устройствах (или быть выше на целевом ПК). Используйте команду:

cat /usr/lib/unifi/version.properties | grep "version"

Если версии разнятся, сначала обновите контроллер на исходном компьютере до актуальной стабильной сборки. Это предотвратит конфликты при восстановлении бэкапа. Также обязательно:

  • 🔍 Проверьте свободное место на диске целевого ПК (минимум 5 ГБ для контроллера + бэкапы).
  • 🔌 Убедитесь, что порты 8080 (управление), 8443 (HTTPS), 8880 (портал) и 8843 (гостевой портал) свободны.
  • 🛡️ Отключите автообновление контроллера на время переноса (в настройках Settings → Maintenance).
  • 📡 Зафиксируйте текущие IP-адреса устройств (можно экспортировать список через Clients → Export).
⚠️ Внимание: Если вы используете UniFi OS Console (UDM, UDR), перенос контроллера на внешний ПК приведёт к потере интеграции с экосистемой Ubiquiti. В этом случае рекомендуется мигрировать на UniFi Network Application в Docker.

Для пользователей Windows дополнительно проверьте версию Java — контроллер требует Java 8 или Java 11 (но не новее!). На Linux установочный пакет обычно включает нужную версию автоматически, но на Debian/Ubuntu может потребоваться ручная установка:

sudo apt install openjdk-11-jre-headless
📊 Какую ОС вы используете для UniFi Controller?
  • Windows
  • Linux (Debian/Ubuntu)
  • macOS
  • UniFi OS Console (UDM/UDR)
  • Docker/Виртуальная машина

Метод 1: Перенос через резервную копию (рекомендованный способ)

Самый надёжный и универсальный способ — создание полного бэкапа на исходном ПК и восстановление его на целевом. Этот метод работает для всех версий контроллера, включая UniFi Network 7.x/8.x, и сохраняет:

  • 📋 Все настройки сетей (Wi-Fi, VLAN, firewall).
  • 📊 Статистику трафика и события (если не использовался auto-backup).
  • 🔑 Данные авторизации и гостевые порталы.
  • 🖥️ Конфигурации устройств (но не прошивки!).

Чтобы создать бэкап:

  1. Откройте веб-интерфейс контроллера (https://[IP-адрес]:8443).
  2. Перейдите в Settings → System → Backup.
  3. Нажмите Download Backup и сохраните файл .unf.
  4. Скопируйте файл на целевой ПК (например, через WinSCP или scp).

Для восстановления на новом ПК:

  1. Установите чистую версию UniFi Controller (такой же или новее).
  2. При первом запуске выберите Restore from Backup.
  3. Загрузите файл .unf и дождитесь завершения процесса (может занять до 10 минут).
⚠️ Внимание: Если при восстановлении появляется ошибка "Invalid backup file", проверьте совместимость версий контроллера. Бэкапы из UniFi 6.x не восстанавливаются в 7.x без предварительного обновления исходной системы.

Убедиться, что версии контроллера совпадают|Проверьте целостность файла .unf (размер > 1 МБ)|Отключите брандмауэр на целевом ПК|Подготовьте резервный доступ к устройствам (на случай сбоя)-->

Метод 2: Клонирование папки с данными (для опытных пользователей)

Этот способ подходит, если вы переносите контроллер в пределах одной ОС (например, с Ubuntu 20.04 на Ubuntu 22.04) и хотите избежать восстановления из бэкапа. Он предполагает копирование ключевых папок с данными:

Папка Содержимое Путь в Windows Путь в Linux
data Конфигурации, базы данных MongoDB C:\Users\All Users\Ubiquiti UniFi\data /usr/lib/unifi/data
logs Логи системы (необязательно) C:\Users\All Users\Ubiquiti UniFi\logs /usr/lib/unifi/logs
run Временные файлы (не копировать!) C:\Users\All Users\Ubiquiti UniFi\run /usr/lib/unifi/run
work Кэш и сессии (не критично) C:\Users\All Users\Ubiquiti UniFi\work /usr/lib/unifi/work

Алгоритм действий:

  1. Остановите службу контроллера:
    • На Windows: net stop "UniFi"
    • На Linux: sudo systemctl stop unifi
  • Скопируйте папку data на новый ПК (сохраняя права доступа!).
  • Установите ту же версию контроллера на целевой машине.
  • Замените папку data скопированной и перезапустите службу.
  • Преимущество метода — сохранение всех исторических данных (в отличие от бэкапа). Однако есть риски:

    • 🚨 Конфликты при смене архитектуры (x86 → ARM).
    • 🚨 Повреждение базы MongoDB при некорректном копировании.
    • 🚨 Несовместимость с новыми версиями Java.
    Что делать если после копирования контроллер не запускается?

    Если служба не стартует, проверьте логи в /usr/lib/unifi/logs/server.log. Частая ошибка — права на папку data (должны быть unifi:unifi). Исправляется командой:

    sudo chown -R unifi:unifi /usr/lib/unifi/data

    Если проблема в базе MongoDB, попробуйте восстановить её через mongod --repair (требует остановки контроллера).

    Метод 3: Перенос на Docker-контейнер (оптимально для серверов)

    Если целевой ПК работает под управлением Docker, перенос упрощается благодаря изоляции окружения. Главное преимущество — возможность запуска контроллера в любой ОС (включая NAS на базе Synology/QNAP). Используем официальный образ linuxserver/unifi-controller:

    docker run -d \
    

    --name=unifi-controller \

    -e PUID=1000 \

    -e PGID=1000 \

    -e TZ=Europe/Moscow \

    -p 8443:8443 \

    -p 8080:8080 \

    -p 3478:3478/udp \

    -v /path/to/unifi/data:/config \

    --restart unless-stopped \

    linuxserver/unifi-controller:latest

    Для переноса данных:

    1. Скопируйте папку data из старой установки в монтируемый том Docker (/path/to/unifi/data).
    2. Убедитесь, что в docker-compose.yml указаны те же порты, что и на исходном ПК.
    3. Запустите контейнер и проверьте доступность веб-интерфейса.

    Особенности Docker-переноса:

    • 🐳 Поддерживаются все версии контроллера (включая UniFi 8.x).
    • 🔄 Легко откатиться к предыдущей версии при сбое.
    • 🔒 Требуется настройка firewalld/ufw для открытия портов.
    💡

    Если вы используете UniFi OS Console (UDM), для переноса на Docker сначала экспортируйте бэкап через Settings → Backup, затем восстановите его в контейнере. Это единственный поддерживаемый способ миграции с UDM.

    Типичные ошибки и их решения

    Даже при следовании инструкциям пользователи сталкиваются с проблемами. Рассмотрим самые распространённые:

    1. Ошибка "Device Disconnected" после переноса

    Причина: устройства UniFi "забыли" новый IP-адрес контроллера. Решение:

    • 🔄 Перезагрузите точки доступа через PoE или кнопку Reset.
    • 📡 Используйте утилиту UniFi Discovery Tool для принудительного переподключения.
    • 🔧 Вручную укажите IP контроллера через SSH:
      set-inform http://[новый_IP]:8080/inform

    2. Контроллер не запускается после восстановления бэкапа

    Чаще всего связано с:

    • 🗃️ Повреждённым файлом .unf (проверьте контрольную сумму).
    • 🛠️ Несовместимостью версий MongoDB (обновите контроллер до восстановления).
    • 🔐 Недостаточными правами на папки (на Linux выполните chmod -R 775 /usr/lib/unifi).

    3. Потеря статистики после миграции

    Если в бэкапе не сохранены исторические данные, проверьте:

    • ⏳ Настройки Settings → System → Auto-Backup (должен быть включён Include Historical Stats).
    • 🗑️ Папку data/stat — она должна быть скопирована при клонировании.
    💡

    Если после переноса устройства не появляются в новом контроллере, проверьте настройки Device Authentication в Settings → System. Возможно, требуется сбросить их до заводских и заново усыновить (adopt).

    Перенос на macOS: особенности и лайфхаки

    Пользователи macOS часто сталкиваются с проблемами из-за особенностей файловой системы и управления правами. Вот ключевые моменты:

    • 🍎 Установите контроллер через Homebrew:
      brew install --cask unifi-controller
    • 📁 Папка с данными находится в /Applications/UniFi.app/Contents/Resources/data.
    • 🔐 Для копирования данных используйте Terminal с правами sudo.
    • 🚫 Избегайте переноса через Time Machine — это может нарушить структуру базы MongoDB.

    Если после переноса контроллер не запускается, проверьте:

    1. Наличие Java (установите через brew install --cask temurin).
    2. Права на папку data:
      sudo chown -R $(whoami) /Applications/UniFi.app/Contents/Resources/data
    3. Отсутствие конфликтов с встроенным брандмауэром macOS (разрешите входящие соединения на порты 8080, 8443).

    Что делать после успешного переноса?

    Миграция завершена, но работа не окончена. Выполните эти шаги, чтобы избежать проблем в будущем:

    1. Обновите IP-адрес контроллера в настройках DHCP-сервера (если использовался статический IP).
    2. Проверьте лицензии (для UniFi Protect или Talk) — они могут быть привязаны к старому ПК.
    3. Настройте автоматическое резервное копирование:
      Settings → System → Auto-Backup → Enable
    4. Тестируйте производительность — на слабых ПК (например, Raspberry Pi) контроллер может тормозить при большом количестве устройств.

    Для мониторинга стабильности используйте:

    • 📊 Встроенную аналитику в Insights → Performance.
    • 🔧 Логи в /usr/lib/unifi/logs (ищите ошибки MongoDB или Java Heap Space).
    • 📈 Внешние инструменты вроде Grafana + Prometheus для продвинутого мониторинга.
    💡

    После переноса обязательно обновите DNS-записи для домена контроллера (если использовался). Это предотвратит проблемы с подключением устройств через Интернет (например, для удалённого управления через UniFi Mobile App).

    FAQ: Частые вопросы по переносу UniFi Controller

    Можно ли перенести контроллер с Windows на Linux?

    Да, но только через бэкап (метод 1). Клонирование папок (метод 2) не рекомендуется из-за различий в файловой системе и правах доступа. При восстановлении на Linux убедитесь, что:

    • Версия контроллера на целевом ПК не ниже, чем на исходном.
    • Установлена совместимая версия Java (обычно openjdk-11-jre-headless).
    • Порты 8080, 8443 открыты в ufw/firewalld.
    Почему после переноса устройства не подключаются к новому контроллеру?

    Это типичная проблема, связанная с кэшированием старого IP-адреса контроллера. Решения:

    1. Перезагрузите устройства (отключите/включите питание).
    2. Используйте команду set-inform через SSH:
      ssh ubnt@[IP_устройства]
      

      set-inform http://[новый_IP_контроллера]:8080/inform

    3. Проверьте, что на новом ПК отключён брандмауэр (временно для теста).
    4. Убедитесь, что устройства находятся в той же подсети, что и контроллер.

    Если ничего не помогает, выполните сброс устройства к заводским настройкам (удерживайте кнопку Reset 10 секунд) и усыновите его заново.

    Как перенести контроллер на UniFi Cloud Key или UDM?

    Перенос на UniFi OS Console (UDM, UDR, Cloud Key) имеет ограничения:

    • 🔄 С внешнего ПК на UDM: восстановите бэкап через Settings → Backup → Restore. Однако не все настройки переносятся (например, гостевые порталы могут потребовать повторной настройки).
    • 🔀 С UDM на внешний ПК: экспортируйте бэкап через веб-интерфейс UDM, затем восстановите его на новом контроллере (версия должна быть не ниже, чем на UDM).

    Важно: UniFi OS Console использует собственную версию контроллера, которая может не совпадать с последними стабильными сборками для ПК. Перед переносом проверьте совместимость на официальном форуме Ubiquiti.

    Можно ли перенести контроллер без потери истории статистики?

    Да, но только если:

    • 📊 Вы используете метод клонирования папок (метод 2) и копируете data/stat.
    • 🔄 В бэкапе (метод 1) включена опция Include Historical Stats (доступна в UniFi 6.x и новее).
    • 🗃️ Вы переносите контроллер на ту же версию ПО (например, 7.4.162 → 7.4.162).

    Если история всё равно пропала, проверьте:

    • Наличие файлов *.stat в папке data/stat.
    • Права доступа к папке (должны позволять запись пользователю unifi).
    • Логи на предмет ошибок MongoDB (например, "Failed to load stats").
    Как перенести контроллер на Raspberry Pi?

    Raspberry Pi (особенно модели 4/5) отлично подходит для контроллера, но имеет нюансы:

    1. Используйте Docker или официальный .deb-пакет для ARM.
    2. Увеличьте swap-файл до 2 ГБ (для MongoDB):
      sudo dphys-swapfile swapoff
      

      sudo nano /etc/dphys-swapfile # измените CONF_SWAPSIZE=2048

      sudo dphys-swapfile setup

      sudo dphys-swapfile swapon

    3. Отключите Bluetooth и Wi-Fi на Pi, чтобы освободить ресурсы.
    4. Для UniFi 8.x требуется 64-битная ОС (например, Raspberry Pi OS Lite 64-bit).

    Производительность: на RPi 4 с 4 ГБ ОЗУ контроллер стабильно работает с до 50 устройств. Для больших сетей используйте RPi 5 или мини-ПК на x86.