在 Docker 容器中运行 Unifi Controller 时无法采用新设备

在 Docker 容器中运行 Unifi Controller 时无法采用新设备

我正在尝试将 Unifi 控制器托管在 docker 容器中,但除非我将网络模式设置为“主机”,否则我无法采用新设备(接入点)。我已遵循多个指南并打开了列出的所有端口这里。可以管理已连接的设备并查找新设备,但采用它们会导致永无止境的“采用”状态。

第一个配置基于jacobalberty/unifi

version: "3.7"

services:
  controller:
    image: jacobalberty/unifi:arm32v7
    restart: unless-stopped
    init: true
    volumes:
      - ./data:/unifi
    environment:
      TZ: "Europe/Stockholm"
    ports:
      - "3478:3478/udp"
      - "5514:5514/udp"
      - "8080:8080"
      - "8443:8443"
      - "8843:8843"
      - "8880:8880"
      - "6789:6789"
      - "27117:27117"
      - "5656-5699:5656-5699/udp"
      - "1900:1900"
      - "10001:10001/udp"
#    network_mode: "host"

另一个是直接复制linuxserver.io例子:

version: "2.1"
services:
  unifi-controller:
    image: linuxserver/unifi-controller
    container_name: unifi-controller
    environment:
      - PUID=1000
      - PGID=1000
      - MEM_LIMIT=1024M #optional
    volumes:
      - ./data:/config
    ports:
      - 3478:3478/udp
      - 10001:10001/udp
      - 8080:8080
      - 8443:8443
      - 1900:1900/udp #optional
      - 8843:8843 #optional
      - 8880:8880 #optional
      - 6789:6789 #optional
      - 5514:5514 #optional
    restart: unless-stopped

Docker 容器在连接到有线网络的 Raspberry Pi 上运行。主机正在运行其他容器,但没有冲突的端口。如果存在端口冲突,则无论如何都无法启动容器。

答案1

问题是容器不知道主机的本地 IP 地址,因此它无法告诉 AP 应该使用哪个 IP 地址来重新连接。

要解决此问题,您必须手动设置控制器 IP 地址,Settings -> Controller -> Controller Hostname/IP并且不要忘记检查Override inform host with controller hostname/IP

有关此内容的更多信息,请参阅jacobalberty/unifi 图像下采用接入点/交换机/安全网关

编辑:现在它处于Settings -> System -> Advanced -> Override Inform Host

答案2

除了上述解决方案之外,我更新设置中的控制器 IP 后,必须重新启动 Docker 容器才能永久保存更改。还有一个好主意,即在您的 AP 中使用 SSH 并运行快速信息命令(登录后只需输入信息)以验证状态是否显示已连接并连接到正确的 IP,而不是内部 Docker 网络:

状态:已连接(http://192.168.1.X:8080/通知

答案3

将 Synology 中的网络配置更改为静态 IP 以匹配 Unifi 默认值 192.168.1.1 对我来说也有效。

相关内容