如何在 macOS 上运行 Ubiquiti 的 UniFi 网络控制器?

Mar*_*ner 3 macos

我最近购买了两个 UniFi nanoHD 接入点,但没有购买 Cloud Key。如何在我的 macOS 计算机上运行网络控制器?

Mar*_*ner 6

我知道有两种不同的方法可以做到这一点。

使用 Docker

LinuxServer.io团队保持了UniFi的网络控制器码头工人形象。我没有尝试使用它,也不知道启动和运行有多难,也不知道它的效果如何,所以很遗憾我无法将它与其他选项进行比较。然而,在完成本地安装的步骤后,我会说使用 Docker 容器的想法非常吸引人。

本地安装

这工作正常,运行起来也不是非常困难,但不幸的,它比应有的工作要多。

  1. 下载您喜欢的版本

    在 Unifi 下载页面上查找“UniFi Network Controller [version] for macOS” 。如果您没有偏好,请使用最新版本。

  2. 安装网络控制器

    在 Finder 中找到 UniFi.pkg。Control+单击并选择Open with...? 安装人员。没有这个 macOS 会抱怨“无法打开‘UniFi.pkg’,因为 Apple 无法检查它是否存在恶意软件。” 如果出现提示,然后选择“打开”并继续安装程序。

  3. 安装 Java 8

    发行说明指出:

    我们从 UniFi Network 5.11.47 开始停止捆绑 Java。如果您要安装该版本或更高版本,请确保您事先手动安装了 Java 8 的当前版本。只需要 Java 运行时环境 (JRE)。

    必须在托管控制器软件的系统上安装 Java 8 的更新/当前版本。尚不支持 Java 9 及更高版本。

    因此,您需要使用旧版本的 Java。这很不方便,也有点令人担忧,因为 Java 8 已经很老了,而且 Java 在安全漏洞方面没有很好的记录。据维基百科称,甲骨文于 2019 年 1 月正式结束免费商业更新,并将于 2020 年 12 月结束免费个人使用更新。维基百科表示,AdoptOpenJDK 包将支持到“至少到 2023 年 9 月”。这对我来说听起来不错,所以这就是我使用的。使用 Homebrew 安装很容易:

    1. 如果您还没有Homebrew,请按照说明安装 Homebrew
    2. 在终端中,运行brew tap adoptopenjdk/openjdkbrew install --cask adoptopenjdk8
  4. 调整防火墙

    导航到系统偏好设置?安全和隐私?防火墙选项卡。单击左下角的锁以允许更改,然后单击Firewall Options...按钮。取消选中Block all incoming connections。无需其他更改—单击“确定”以保存。

    一些注意事项:

    • 如果Automatically allow downloaded signed software to receive incoming connections选中,那么这似乎足以授予网络控制器访问权限(我假设是因为 Homebrewjava包已签名)。
    • 如果Automatically allow downloaded signed software to receive incoming connections未选中,则在启动网络控制器时将提示您允许传入连接。
    • 添加Applications/UniFi到允许传入连接的应用程序列表不起作用。
    • 您也可以完全关闭防火墙,而不是执行上述所有操作,但我不建议这样做。防火墙提供了一个有用的保护层。
    • 如果您使用早于 10.5.1 的 macOS,这些步骤可能会有所不同。相反,您可能需要取消阻止特定端口。有关端口列表,请参阅此帮助文章
  5. 启动网络控制器

    我发现除非我 cd 到特定目录,否则启动网络控制器似乎会挂起。请记住,您需要使用 Java 8。

    cd /Applications/UniFi.app/Contents/Resources/
    JAVA_VERSION=1.8 java -jar /Applications/UniFi.app/Contents/Resources/lib/ace.jar ui
    
    Run Code Online (Sandbox Code Playgroud)

    如果 macOS 询问,Do you want the application 'java' to accept incoming network connections?您必须单击Allow网络控制器才能正常工作。

两个后续注意事项:

  1. 使用完网络控制器后,您可以撤消对防火墙的任何更改(假设您不打算让它一直运行)。尽管如果您所做的只是允许java接收传入的连接,防火墙的更改大多是无害的。

  2. 您还可以“无头”运行网络控制器。我还没有尝试过,但https://akrabat.com/run-the-unifi-controller-headless-on-mac/ 上的说明看起来很有希望。请注意,您需要使用与该页面上建议的不同的 exec 字符串。