
Недавно я приобрел две точки доступа UniFi nanoHD, но не Cloud Key. Как запустить UniFi Network Application (ранее называвшееся UniFi Network Controller) на моем компьютере macOS?
решение1
Я знаю два разных способа сделать это.
Использование Докера
Это может быть хорошим вариантом, если вы уже знакомы с Docker, но в противном случае это может не стоить обучения. Похоже, что есть два хорошо поддерживаемых образа Docker для UniFi Network Application.
- Образ Docker команды LinuxServer.io. Я не пробовал, но, похоже, это достойный выбор.
- Изображение от парня по имени Джейкоб Алберти. Я попробовал это, и это работает хорошо.
Необходимо приложить дополнительные усилия, чтобы внедрение работало при запуске в Docker. Тип сети по умолчанию для Docker (мост) означает, что контейнеры недоступны в сети. Для внедрения уровня 2 в документации к образу Джейкоба Альберти упоминается использование хост-сети или сети macvlan. Я использовал хост-сеть с этим образом Docker в Linux, и она работает хорошо, однако на момент написания этой статьи (10.04.2022) хост-сеть недоступна в macOS Docker Desktop. Я не пробовал использовать macvlan, но она может работать хорошо (с любым из образов, хотя в документации LinuxServer.io она не упоминается). Для внедрения уровня 3, похоже, необходимо ввести IP-адрес хоста Docker в настройках сетевого приложения UniFi (в документации к обоим образам Docker есть подробная информация о том, где найти эту настройку).
Образ Jacob Alberty, похоже, включает некоторую поддержку указания сертификата https. Я не пробовал, но если для вас важно использовать сертификат, которому доверяет ваш браузер, то это может быть причиной выбрать образ Jacob Alberty.
Установка в исходном виде
Это работает отлично и не так уж и сложно в запуске, но этоявляетсяк сожалению, работы больше, чем следовало бы.
Загрузите предпочтительную версию
Найдите «UniFi Network Application [версия] для macOS» настраница загрузки Unifi. Если у вас нет предпочтений, используйте последнюю версию.
Установить сетевое приложение
Найдите UniFi.pkg в Finder. Control+клик и выберите
Open with...
→ Установщик. Без этого macOS жалуется, что «UniFi.pkg» не может быть открыт, так как Apple не может проверить его на наличие вредоносного ПО». Затем выберите «Открыть», если будет предложено, и продолжите установку.Установить Java 11
Примечание от 2023-08-27: Вы можете попробовать пропустить этот шаг — возможно, он больше не нужен. Мне удалось установить версию 7.4.162, и я думаю, что у меня не установлена Java, так что она может быть сейчас в комплекте. Или я могу ошибаться. Я ничего об этом не вижу в примечаниях к выпуску.
Примечание: для версий до 7.3.x требовалась Java 8, поэтому, если вы решили установить более старую версию сетевого приложения, см.более ранняя версия этого ответадля получения рекомендаций по установке Java 8, а также команды для запуска более старых версий сетевого приложения.
Для версий 7.3.x и новее вам понадобится Java 11. (По состоянию на 13 января 2023 г. в примечаниях к выпуску указано: «Java 12 и более поздние версии пока не поддерживаются». Предположительно, Java 13–19 также не поддерживаются.)
Установка с помощью Homebrew проста:
- СледоватьИнструкции по установке Homebrewесли у вас его еще нет.
- В терминале запустите
brew install openjdk@11
. У меня это тоже установило 24 зависимости. - Как следует из вывода приведенной выше команды, создайте символическую ссылку, чтобы системные оболочки Java могли найти этот JDK:
sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
Настройте параметры безопасности
Примечание: эти инструкции значительно изменились из-за перестройки настроек в macOS 13 Ventura. Вы можете сослатьсяболее ранняя версия этого ответадля получения инструкций по macOS 12 и более ранним версиям, но также обратите внимание, что эти инструкции могут быть неточными для более новых версий сетевого приложения и Java 11.
Перейдите в Системные настройки → Сеть. Выберите Брандмауэр, затем нажмите кнопку
Options...
. Убедитесь,Block all incoming connections
что он выключен. Никаких других изменений не требуется. Нажмите OK, чтобы сохранить.Несколько заметок:
- Если
Automatically allow downloaded signed software to receive incoming connections
включено, то этого достаточно для предоставления доступа сетевому приложению. - Если
Automatically allow downloaded signed software to receive incoming connections
этот параметр отключен, то при запуске сетевого приложения вам будет предложено разрешить входящие соединения. - Проактивное добавление
Applications/UniFi
в список приложений с разрешенными входящими соединениями, похоже, не работает. Я не знаю, почему. Но это не важно — macOS предупредит вас об этом позже, если это необходимо. - Вместо вышеуказанных изменений брандмауэра вы можете полностью отключить свой брандмауэр, но я не рекомендую этого делать. Брандмауэры обеспечивают полезный уровень защиты.
- Если
Попробуйте запустить сетевое приложение. Вы будете использовать этот процесс в любое время, когда вам понадобится запустить его в будущем: либо запустите приложение UniFi из папки «Приложения», либо используйте ⌘+ Spaceи найдите «UniFi». Вы должны получить это диалоговое окно с ошибкой:
«Поврежден» — это неточно, macOS просто мешает ему работать правильно. Нажмите кнопку «Отмена», затем перейдите в «Настройки системы» → «Конфиденциальность и безопасность». Прокрутите вниз все приложения и найдите заголовок «Безопасность». Вы должны увидеть следующее диалоговое окно:
Используйте кнопку «Открыть в любом случае», чтобы одобрить его. Вы получитевторойдиалоговое окно, сообщающее, что приложение повреждено:
Я понятия не имею, на что жалуется macOS. Проигнорируйте это и нажмите кнопку «Открыть». (Примечание: эта область пользовательского опыта macOS действительно нуждается в доработке.)
Если macOS спрашивает: «Хотите ли вы, чтобы приложение «UniFi.app» принимало входящие сетевые подключения?», необходимо нажать «Разрешить», чтобы сетевое приложение работало правильно.
Два дополнительных замечания:
Вы можете отменить любые изменения в вашем брандмауэре, когда закончите работу с сетевым приложением (при условии, что вы не планируете оставлять его работающим все время). Хотя изменения в брандмауэре в основном безвредны, если все, что вы сделали, это разрешили UniFi принимать входящие соединения.
Вы также можете запустить сетевое приложение "без головы". Я не пробовал, но инструкции наhttps://akrabat.com/run-the-unifi-controller-headless-on-mac/выглядят многообещающе. Обратите внимание, что вам нужно будет использовать строку exec, отличную от предложенных на этой странице.
решение2
Я заставил это работать в докере за несколько простых шагов! Я сделалКонфигурация докера на guthubс подробными инструкциями, но вот основные шаги:
Решите, где UniFi будет сохранять постоянные данные на вашем компьютере.
Запустите скрипт Docker Compose.
Перейдите по адресу https://localhost:8443 и выполните первоначальную настройку.
Перейдите в настройки и введите IP-адрес вашего устройства.