ubnt解决方案
查看: 330|回复: 7

在NAS上用docker安装UniFi控制器完全教程

[复制链接]

8497

帖子

4万

积分

9121 小时

在线时间

管理员

无线论坛管理员

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

注册时间
2004-10-2
金币
30802 个
威望
319 个
荣誉
109 个

签到天数: 6 天

连续签到: 1 天

[LV.2]偶尔看看I

发表于 2020-6-29 14:25 |显示全部楼层
Anywlan微信公众号
目录
一、前言        3
二、什么是Docker        3
三、安装Docker        3
四、安装UniFi控制器        5
五、升级UniFi控制器        17
五、Docker的UniFi控制器常见问题        22
1. 无法启动控制器        22
2.发现不了设备        22
3. 设备“正在采用”“已断开”(无限循环)        23
4. 远程访问        29
5. 通过APP随时管理UniFi        32
6.NAS上的防火墙配置        36


文章较长,65张图,需要的可下载文档阅读。
游客,如果您要查看本帖隐藏内容请回复


一、前言
在NAS上安装UniFi控制器,可以实现UCK(UniFi Cloud Key)完全一样的功能。除了折腾一下下,还能省钱省地方^_^
UCK的通用功能:
  • 管理UniFi的AP、交换机和网关
  • 搭建云控制器,随时随地可通过PC、APP远程控制
  • 热点认证和计费


本文以群晖NAS为例,详细说明安装UniFi Controller的步骤及常遇到的问题解决方法。

二、什么是Docker
docker.png
通俗地讲Docker是一个运行在Linux下的虚拟机程序,类似Windows下的vmware。Docker是Linux 容器的一种封装,提供简单易用的容器使用接口。
我们用的NAS基本上都是基于Linux开发的,Docker支持X86-64、ARM及PPC等系统平台,docker里提供了丰富的各种应用程序,包括今天要讲的UniFi控制器。
举一反三,广泛地讲,只要是支持docker的设备均可以安装UniFi控制器,比如openwrt路由器……


三、安装Docker
打开“套件中心”,搜索docker并安装:

在NAS上用docker安装UniFi控制器完全教程1.png 在NAS上用docker安装UniFi控制器完全教程2.png 在NAS上用docker安装UniFi控制器完全教程3.png docker安装UniFi控制器4.png

本帖被以下淘专辑推荐:

Anywlan汇集天下wlan资源 下载   Anywlan积分竞拍——金币免费换产品

8497

帖子

4万

积分

9121 小时

在线时间

管理员

无线论坛管理员

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

注册时间
2004-10-2
金币
30802 个
威望
319 个
荣誉
109 个

签到天数: 6 天

连续签到: 1 天

[LV.2]偶尔看看I

发表于 2020-6-29 14:25 |显示全部楼层
四、安装UniFi控制器
Step1:打开刚安装的docker

docker安装UniFi控制器5

docker安装UniFi控制器5


Setp2:下载unifi映像
在左侧注册表里,搜索unifi,找到jacobalberty/unifi

docker安装UniFi控制器6

docker安装UniFi控制器6

Docker提供的映像中,还包括UniFi Video Controller即UniFi安防控制器,如果您使用了UniFi摄像头可按本文教程安装。本文安装的是UniFi SDN。
点右键或双击下载此映象:

docker安装UniFi控制器7

docker安装UniFi控制器7

选择版本,选择最新的SC稳定版(Stable Candidate),觉得这个版本不爽也可选择别的再安装,NAS折腾不坏:

docker安装UniFi控制器8

docker安装UniFi控制器8

在映像中会显示正在下载:

docker安装UniFi控制器9

docker安装UniFi控制器9

docker安装UniFi控制器10

docker安装UniFi控制器10




Setp4:创建容器
下载完成后,在映像中,选择启动该映像:

docker安装UniFi控制器11

docker安装UniFi控制器11

容器名称:为应用起个名字以便标识,这里我们起名UniFi-Controller,不支持中文和空格:

docker安装UniFi控制器12

docker安装UniFi控制器12

点击上图的“高级设置”,勾上“启用自动重新启动”:

NAS docker安装UniFi控制器

NAS docker安装UniFi控制器

”,添加一个unifi的安装文件夹:

NAS docker安装UniFi控制器14

NAS docker安装UniFi控制器14

在docker目录下,“新建文件夹”,起名为unifi:

NAS docker安装UniFi控制器15

NAS docker安装UniFi控制器15

在装载路径输入/unifi

NAS docker安装UniFi控制器16

NAS docker安装UniFi控制器16

NAS docker安装UniFi控制器17

NAS docker安装UniFi控制器17

切记:文件夹名称要设为全小写unifi,在后来测试UniFi升级中,来回折腾了5、6次升级控制器,配置文件都丢失,折腾得没脾气了,不小心才发现下图:

NAS docker安装UniFi控制器18

NAS docker安装UniFi控制器18

编译程序所生成的保存路径中全是小写的/unifi,这才解决问题。
另外,如果是跨大版本升级,也可能会丢失配置。所以在升级前务必备份控制器。具体备份教程请查看:《UniFi控制器的备份和还原》

网络:直接勾上“使用与Docker Host相同的网络”,则端口就和NAS的IP完全一样,安全性略差,但是对普通用户来更简单。对普通用户建议勾上,后面的使用会省事非常多,在下文会讲到原因。

NAS docker安装UniFi控制器19

NAS docker安装UniFi控制器19

如果网络不勾“使用与Docker Host相同的网络”,而在“端口设置”需要按下图设置:
本地端口不要使用自动,全部输入固定端口号。同时添加一个10001的UDP端口,用于发现unifi的设备。

NAS docker安装UniFi控制器20

NAS docker安装UniFi控制器20

应用返回到常规设置,并点下一步:

NAS docker安装UniFi控制器21

NAS docker安装UniFi控制器21

确认应用,创建新的容器

NAS docker安装UniFi控制器22

NAS docker安装UniFi控制器22

NAS docker安装UniFi控制器23

NAS docker安装UniFi控制器23

在容器中,可发现新建立的UniFi-Controller控制器已经运行。

NAS docker安装UniFi控制器24

NAS docker安装UniFi控制器24


Step5:打开和登陆控制器
在浏览器界面中输入https://<NAS的IP>:8443,打开控制器。首次打开会提示非私密证书:

NAS docker安装UniFi控制器25

NAS docker安装UniFi控制器25

NAS docker安装UniFi控制器26

NAS docker安装UniFi控制器26

NAS docker安装UniFi控制器27

NAS docker安装UniFi控制器27



首次登陆会默认运行设置向导,请查阅《UniFi Controller向导及设置教程》一文。


Anywlan汇集天下wlan资源 下载   Anywlan积分竞拍——金币免费换产品
回复

使用道具 举报

8497

帖子

4万

积分

9121 小时

在线时间

管理员

无线论坛管理员

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

注册时间
2004-10-2
金币
30802 个
威望
319 个
荣誉
109 个

签到天数: 6 天

连续签到: 1 天

[LV.2]偶尔看看I

发表于 2020-6-29 14:25 |显示全部楼层
五、升级UniFi控制器
Docker运行的UniFi控制器,是不能在线升级的。

NAS docker安装UniFi controller 1

NAS docker安装UniFi controller 1

Docker的Unifi Controller软件存储在debian容器中的/var/lib/unifi中,而配置数据保存在/unifi/data,日志保存在/unifi/log目录。新创建容器时将控制器的目录挂载到Docker指定目录,在删除容器时会保留数据;而在新创建容器时将/unifi挂载回旧目录则可保持原配置而直接升级。

NAS docker安装UniFi controller 2

NAS docker安装UniFi controller 2


Docker的UniFi控制器升级有二种升级方法。
a. 通过配置文件升级
b. 保留配置直接升级
第一种方法是先删除再新创建控制器容器,并导入配置即可。主要步骤请查看本站《UniFi控制器的备份和还原》一文。

本文主要讲述第二种升级方法。
注意:在进行升级前,务必对原先控制器先作备份。

Step1:把容器停止运行

NAS docker安装UniFi controller 3

NAS docker安装UniFi controller 3


Step2:删除容器

NAS docker安装UniFi controller 4

NAS docker安装UniFi controller 4

Step3:下载新版本的UniFi映像

NAS docker安装UniFi controller 4

NAS docker安装UniFi controller 4

Step4:创建新的UniFi容器
在映像中,对新下载的映像按第一章教程进行设置,在“高级设置”,“卷”的保存目录时使用之前所设置的/unifi目录:

NAS docker安装UniFi controller 5

NAS docker安装UniFi controller 5

可以看到之前绑定的unifi目录有原先的数据存在,绑定到原先的数据目录:

NAS docker安装UniFi controller 6

NAS docker安装UniFi controller 6

装载路径输入/unifi

NAS docker安装UniFi controller 7

NAS docker安装UniFi controller 7

其它按上文步骤操作,生成容器并运行,登陆UniFi控制器界面可发现原先配置还保留。

Anywlan汇集天下wlan资源 下载   Anywlan积分竞拍——金币免费换产品
回复

使用道具 举报

8497

帖子

4万

积分

9121 小时

在线时间

管理员

无线论坛管理员

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

注册时间
2004-10-2
金币
30802 个
威望
319 个
荣誉
109 个

签到天数: 6 天

连续签到: 1 天

[LV.2]偶尔看看I

发表于 2020-6-29 14:26 |显示全部楼层
五、Docker的UniFi控制器常见问题
1. 无法启动控制器
打开控制器时显示错误:HTTP Status 400 – Bad Request
docker安装UniFi控制器36.png
未包含MongoDB,请选择包含数据库的SC标签的稳定版本安装。
UniFi运行时自动启动私有MongoDB数据库实例,不能外链到别的MongoDB。如果下载安装的映像中未包含MongoDB会运行不了。

2.发现不了设备
UniFi控制器需要使用10001 UDP端口来发现设备,请检查在创建容器时是否添加对了此端口:
docker安装UniFi控制器37.png

3. 设备“正在采用”<->“已断开”(无限循环)
docker安装UniFi控制器38.png docker安装UniFi控制器39.png

如果在创建容器时勾上了“使用与Docker Host相同的网络”,是不存在此问题的,所以会省却很多烦心事。如果您不想输下面这些命令,那么就把容器删除,重新创建新的容器绑定到unifi安装目录并勾上“使用与Docker Host相同的网络”。
Docker平台下的控制器不能直接采用到设备,需要修改AP的管理地址来完成采用。有二种方法修改设备的管理地址:

  • 通过SSH修改

Setp1:需要下载putty:https://www.anywlan.com/down/soft/other/182.html
通过ssh来修改控制器的管理地址:
docker安装UniFi控制器41.png
Setp2:打开putty,在Host Name输入AP的IP地址,IP地址如上图,在控制器列表中可以查看到:
docker安装UniFi控制器42.png
登陆的用户名和密码默认都为ubnt
docker安装UniFi控制器43.png
Setp3:登陆成功后,输入控制器的管理地址,格式如下:
  1. set-inform http://<控制器URL>:8080/inform
复制代码

本例中我的NAS IP是192.168.2.88,则输入如下:
docker安装UniFi控制器44.png
如果是通过云访问的,可输入域名:
  1. set-inform http://anywlan.myds.me:8080/inform
复制代码


注意需要在路由器先对8080做端口转向,控制器很快就会显示同步中。如果还不行,重复Setp3
docker安装UniFi控制器45.png

  • 使用UniFi Discovery修改

如果在电脑安装了UniFi Controller,则附带有UniFi Discovery Utility,也可以手动下载UniFi Discovery Utility修改。如果没装UniFi Controller则建议用SSH修改方便些。
UniFi Discovery的打开方式:
  • Windows:开始菜单->Ubiquiti UniFi->UniFi-Discover
  • Mac OSX:启动台 ->UniFi-Discover
  • 运行 "java -jar <unifi_base>/lib/ace.jar discover"

UniFi Discovery 3

UniFi Discovery 3

Setp1:打开UniFi Discovery搜索设备

UniFi Discovery 2

UniFi Discovery 2


Setp2:在需要采用的设备上,点manage按钮
在Set Inform URL中,输入控制器的管理IP,格式如下:
  1. set-inform http://<控制器URL>:8080/inform
复制代码

UniFi Discovery 1

UniFi Discovery 1


Setp3:点“Apply”应用保存。

Setp4:应用后正常控制器即可同步UAP,如果不行,重复Setp2。若反复不行,按下面步骤操作:在控制器将UAP移除;将AP复位;重复Setp2,在“正在采用”时再执行Setp2一次。

Anywlan汇集天下wlan资源 下载   Anywlan积分竞拍——金币免费换产品
回复

使用道具 举报

8497

帖子

4万

积分

9121 小时

在线时间

管理员

无线论坛管理员

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

注册时间
2004-10-2
金币
30802 个
威望
319 个
荣誉
109 个

签到天数: 6 天

连续签到: 1 天

[LV.2]偶尔看看I

发表于 2020-6-29 14:53 |显示全部楼层
4. 远程访问
NAS设置好DDNS后,可以在外面直接访问NAS的控制器,轻松将UniFi控制器变成云控制器。ddns选个简单好记的域名:
docker安装UniFi控制器49.png
ddns也可以在路由器操作,点击查看EdgeRouter路由器如何实现DDNS的有关教程
需要在路由器设置端口转向:
  • OpenWRT在防火墙中添加端口转向

openwrt端口转发

openwrt端口转发

  • EdgeRouter路由器如何添加端口转向

UniFi端口指向

UniFi端口指向

设置好端口转向后,在浏览器输入https://DDNS域名:8443,熟悉的证书警告页面就出现了:
docker安装UniFi控制器52.png docker安装UniFi控制器53.png

5. 通过APP随时管理UniFi
虽然可以用浏览器通过ddns来登陆管理UniFi控制器,但手机端还是诸多不便的。UniFi提供APP端管理UniFi,在任何一个地方只要手机有网,都可以管理UniFi控制器。
docker安装UniFi控制器54.png
docker安装UniFi控制器55.png docker安装UniFi控制器56.png docker安装UniFi控制器57.png

下载移动端APP,苹果商店请直接搜索UniFi,安装如下图标的UniFi Network:

UniFi APP

UniFi APP

UniFi APP苹果

UniFi APP苹果

https://itunes.apple.com/cn/app/unifi-network/id1057750338

UniFi APP安卓

UniFi APP安卓

https://play.google.com/store/ap ... yunifi&hl=en_US
IOS版本APP有中文界面,安卓版目前只有英文的,国内市场更新没IOS频繁。
安卓APK本站下载地址:https://www.anywlan.com/down/ubnt/soft/2701.html

UniFi APP

UniFi APP


6.NAS上的防火墙配置
如果NAS开启了防火墙功能,需要开放UniFi Controller使用的端口才可以正在使用。若未启用防火墙,则略过本步骤。
docker安装UniFi控制器63.png
点“新增”,“端口”自定义,添加TCP端口:8080,8443,8843,8880,6789;同理添加UDP端口:3478,10001。
docker安装UniFi控制器64.png

Docker UniFi控制器参考资料:
https://github.com/jacobalberty/ ... ob/master/README.md

Anywlan汇集天下wlan资源 下载   Anywlan积分竞拍——金币免费换产品
回复

使用道具 举报

872

帖子

3420

积分

1322 小时

在线时间

少校

Rank: 5

注册时间
2010-12-26
金币
2416 个
威望
0 个
荣誉
0 个

签到天数: 5 天

连续签到: 1 天

[LV.2]偶尔看看I

发表于 2020-6-29 19:37 |显示全部楼层
知识贴,谢谢楼主
回复

使用道具 举报

1

帖子

22

积分

0 小时

在线时间

新兵上阵

Rank: 1

注册时间
2018-11-21
金币
21 个
威望
0 个
荣誉
0 个

签到天数: 1 天

连续签到: 0 天

[LV.1]初来乍到

发表于 2020-6-30 11:35 |显示全部楼层
谢谢分享
回复

使用道具 举报

12

帖子

33

积分

3 小时

在线时间

新兵上阵

Rank: 1

注册时间
2009-9-3
金币
21 个
威望
0 个
荣誉
0 个

该用户从未签到

发表于 2020-7-3 21:10 |显示全部楼层
找了很久,终于找到合适的文章了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ | Archiver | 手机版 | 无线论坛 ( 粤ICP备11076993 ) |网站地图

GMT+8, 2020-7-12 18:25

返回顶部 返回列表