在群晖NAS上用docker安装UniFi控制器完全教程
目录一、前言 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张图,需要的可下载文档阅读。
**** Hidden Message *****
更多教程请关注本站微信公众号,订阅UBNT教程,更详细更全面的专业教程!
https://www.anywlan.com/link/UBNT-wechat_RSS.png
相关教程链接:
使用Linux平台安装控制器的请查看:阿里云Centos 7.8安装UniFi控制器教程
群晖NAS解决docker仓库无法下载注册表的问题
UniFi网关家族参数对比一览表
UBNT UniFi全系AP参数对比一览表
UBNT UniFi CloudKey家族参数对比表
UBNT UniFi Protect家族参数对比一览表
UBNT室内AP安装和拆卸详细教程
UBNT AP连接和供电教程
static/image/hrline/line3.png
一、前言
在NAS上安装UniFi控制器,可以实现UCK(UniFi Cloud Key)完全一样的功能。除了折腾一下下,还能省钱省地方^_^
UCK的通用功能:
[*]管理UniFi的AP、交换机和网关
[*]搭建云控制器,随时随地可通过PC、APP远程控制
[*]热点认证和计费
本文以群晖NAS为例,详细说明安装UniFi Controller的步骤及常遇到的问题解决方法。
二、什么是Docker
通俗地讲Docker是一个运行在Linux下的虚拟机程序,类似Windows下的vmware。Docker是Linux 容器的一种封装,提供简单易用的容器使用接口。
我们用的NAS基本上都是基于Linux开发的,Docker支持X86-64、ARM及PPC等系统平台,docker里提供了丰富的各种应用程序,包括今天要讲的UniFi控制器。
举一反三,广泛地讲,只要是支持docker的设备均可以安装UniFi控制器,比如openwrt路由器……
三、安装Docker
打开“套件中心”,搜索docker并安装:
四、安装UniFi控制器
Step1:打开刚安装的docker
Setp2:下载unifi映像
提示:docker被土啬,已无法直接下载映像。《群晖NAS解决docker仓库无法下载注册表的问题》。2023年8月
在左侧注册表里,搜索unifi,找到jacobalberty/unifi:
Docker提供的映像中,还包括UniFi Video Controller即UniFi安防控制器,如果您使用了UniFi摄像头可按本文教程安装。本文安装的是UniFi SDN。
点右键或双击下载此映象:
选择版本,选择最新的SC稳定版(Stable Candidate),觉得这个版本不爽也可选择别的再安装,NAS折腾不坏:
在映像中会显示正在下载:
Setp4:创建容器
下载完成后,在映像中,选择启动该映像:
容器名称:为应用起个名字以便标识,这里我们起名UniFi-Controller,不支持中文和空格:
点击上图的“高级设置”,勾上“启用自动重新启动”:
“卷”,添加一个unifi的安装文件夹:
在docker目录下,“新建文件夹”,起名为unifi:
在装载路径输入/unifi:
切记:文件夹名称要设为全小写unifi,在后来测试UniFi升级中,来回折腾了5、6次升级控制器,配置文件都丢失,折腾得没脾气了,不小心才发现下图:
编译程序所生成的保存路径中全是小写的/unifi,这才解决问题。
另外,如果是跨大版本升级,也可能会丢失配置。所以在升级前务必备份控制器。具体备份教程请查看:《UniFi控制器的备份和还原》
网络:直接勾上“使用与Docker Host相同的网络”,则端口就和NAS的IP完全一样,安全性略差,但是对普通用户来更简单。对普通用户建议勾上,后面的使用会省事非常多,在下文会讲到原因。
如果网络不勾“使用与Docker Host相同的网络”,而在“端口设置”需要按下图设置:
本地端口不要使用自动,全部输入固定端口号。同时添加一个10001的UDP端口,用于发现unifi的设备。
应用返回到常规设置,并点下一步:
确认应用,创建新的容器
在容器中,可发现新建立的UniFi-Controller控制器已经运行。
Step5:打开和登陆控制器
在浏览器界面中输入https://<NAS的IP>:8443,打开控制器。首次打开会提示非私密证书:
首次登陆会默认运行设置向导,请查阅《UniFi Controller向导及设置教程》一文。
五、升级UniFi控制器
Docker运行的UniFi控制器,是不能在线升级的。
Docker的Unifi Controller软件存储在debian容器中的/var/lib/unifi中,而配置数据保存在/unifi/data,日志保存在/unifi/log目录。新创建容器时将控制器的目录挂载到Docker指定目录,在删除容器时会保留数据;而在新创建容器时将/unifi挂载回旧目录则可保持原配置而直接升级。
Docker的UniFi控制器升级有二种升级方法。
a. 通过配置文件升级
b. 保留配置直接升级
第一种方法是先删除再新创建控制器容器,并导入配置即可。主要步骤请查看本站《UniFi控制器的备份和还原》一文。
本文主要讲述第二种升级方法。
注意:在进行升级前,务必对原先控制器先作备份。
Step1:把容器停止运行
Step2:删除容器
Step3:下载新版本的UniFi映像
Step4:创建新的UniFi容器
在映像中,对新下载的映像按第一章教程进行设置,在“高级设置”,“卷”的保存目录时使用之前所设置的/unifi目录:
可以看到之前绑定的unifi目录有原先的数据存在,绑定到原先的数据目录:
装载路径输入/unifi
其它按上文步骤操作,生成容器并运行,登陆UniFi控制器界面可发现原先配置还保留。
4. 远程访问
NAS设置好DDNS后,可以在外面直接访问NAS的控制器,轻松将UniFi控制器变成云控制器。ddns选个简单好记的域名:
ddns也可以在路由器操作,点击查看EdgeRouter路由器如何实现DDNS的有关教程。
需要在路由器设置端口转向:
[*]OpenWRT在防火墙中添加端口转向
[*]EdgeRouter路由器如何添加端口转向
设置好端口转向后,在浏览器输入https://DDNS域名:8443,熟悉的证书警告页面就出现了:
5. 通过APP随时管理UniFi
虽然可以用浏览器通过ddns来登陆管理UniFi控制器,但手机端还是诸多不便的。UniFi提供APP端管理UniFi,在任何一个地方只要手机有网,都可以管理UniFi控制器。
下载移动端APP,苹果商店请直接搜索UniFi,安装如下图标的UniFi Network:
https://itunes.apple.com/cn/app/unifi-network/id1057750338
https://play.google.com/store/ap ... .easyunifi&hl=en_US
IOS版本APP有中文界面,安卓版目前只有英文的,国内市场更新没IOS频繁。
安卓APK本站下载地址:https://www.anywlan.com/xiazai_2701.html
6.NAS上的防火墙配置
如果NAS开启了防火墙功能,需要开放UniFi Controller使用的端口才可以正在使用。若未启用防火墙,则略过本步骤。
点“新增”,“端口”自定义,添加TCP端口:8080,8443,8843,8880,6789;同理添加UDP端口:3478,10001。
Docker UniFi控制器参考资料:
https://github.com/jacobalberty/ ... ob/master/README.md
五、Docker的UniFi控制器常见问题
更多常见问题,请关注本站公众号本文
1. 无法启动控制器
打开控制器时显示错误:HTTP Status 400 – Bad Request
未包含MongoDB,请选择包含数据库的SC标签的稳定版本安装。
UniFi运行时自动启动私有MongoDB数据库实例,不能外链到别的MongoDB。如果下载安装的映像中未包含MongoDB会运行不了。
2.发现不了设备
UniFi控制器需要使用10001 UDP端口来发现设备,请检查在创建容器时是否添加对了此端口:
3. 设备“正在采用”<->“已断开”(无限循环)
如果在创建容器时勾上了“使用与Docker Host相同的网络”,是不存在此问题的,所以会省却很多烦心事。如果您不想输下面这些命令,那么就把容器删除,重新创建新的容器绑定到unifi安装目录并勾上“使用与Docker Host相同的网络”。
Docker平台下的控制器不能直接采用到设备,需要修改AP的管理地址来完成采用。有二种方法修改设备的管理地址:
[*]通过SSH修改
Setp1:需要下载putty:https://www.anywlan.com/xiazai_182.html
通过ssh来修改控制器的管理地址:
Setp2:打开putty,在Host Name输入AP的IP地址,IP地址如上图,在控制器列表中可以查看到:
登陆的用户名和密码默认都为ubnt:
Setp3:登陆成功后,输入控制器的管理地址,格式如下:
set-inform http://<控制器URL>:8080/inform
本例中我的NAS IP是192.168.2.88,则输入如下:
如果是通过云访问的,可输入域名:
set-inform http://anywlan.synology.me:8080/inform
注意需要在路由器先对8080做端口转向,控制器很快就会显示同步中。如果还不行,重复Setp3
[*]使用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"
Setp1:打开UniFi Discovery搜索设备
Setp2:在需要采用的设备上,点manage按钮
在Set Inform URL中,输入控制器的管理IP,格式如下:
set-inform http://<控制器URL>:8080/inform
Setp3:点“Apply”应用保存。
Setp4:应用后正常控制器即可同步UAP,如果不行,重复Setp2。若反复不行,按下面步骤操作:在控制器将UAP移除;将AP复位;重复Setp2,在“正在采用”时再执行Setp2一次。
知识贴,谢谢楼主 谢谢分享
找了很久,终于找到合适的文章了 谢谢分享,弄的我又想把黑裙整起来了:lol 感谢大神! 感谢分享····························· 精品帖子,必然是要读一读的