1、前言
笔者二年前供职于一家大卖场时,企业希望可以引入一套分布式的无线系统,于是笔者发现ubnt的产品不但可以满足需求,而且价格非常低廉,产品底层是基于简化的linux系统,产品提供bash shell接口,可以做二次开发。
本文参阅参阅国外的一篇文章,将完成unifi产品的控制器的安装和配置,产品控制器是linux+java+MongoDB的运行环境,故而如果你看到此文请赶紧收藏,因为此文将是开启你无线覆盖你企业之路的新启源,你将为你企业节省大量的无线覆盖成本。
产品地址:http://www.ubnt.com.cn/enterprise/
2、实践部分
2.1、主机信息
ipaddress=10.168.0.178
hostname=unifi.cmdschool.org
2.2、yum源和源码下载
2.2.1、增加yum设置管理工具和解压软件
1
|
yum -y
install
yum-utils.noarch unzip
|
2.2.2、安装MongoDb
1)MongoDB的yum源地址:
x86_x64:http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
i686:http://downloads-distro.mongodb.org/repo/redhat/os/i686/
2)根据系统类型安装
1
|
yum-config-manager --add-repo=http:
//downloads-distro
.mongodb.org
/repo/redhat/os/x86_64/
|
3)检查生成的yum源
vim编辑/etc/yum.repos.d/downloads-distro.mongodb.org_repo_redhat_os_x86_64_.repo
可见以下内容:
1
2
3
4
|
[downloads-distro.mongodb.org_repo_redhat_os_x86_64_]
name=added from: http:
//downloads-distro
.mongodb.org
/repo/redhat/os/x86_64/
baseurl=http:
//downloads-distro
.mongodb.org
/repo/redhat/os/x86_64/
enabled=1
|
增加gpgcheck参数(要不无法安装):
1
2
3
4
5
|
[downloads-distro.mongodb.org_repo_redhat_os_x86_64_]
name=added from: http:
//downloads-distro
.mongodb.org
/repo/redhat/os/x86_64/
baseurl=http:
//downloads-distro
.mongodb.org
/repo/redhat/os/x86_64/
enabled=1
gpgcheck=0
|
4)安装MongoDB
1
|
yum
install
-y mongo-10gen mongo-10gen-server
|
2.2.3、安装openjdk
1
|
yum -y
install
java-1.7.0-openjdk
|
2.2.4、下载源unifi控制器源码
安装包下载网址:http://www.ubnt.com.cn/download/
选择zip版本,取得下载路径之后,直接命令下载到系统:
1
2
|
cd
~
wget http:
//7xj2zs
.com2.z0.glb.qiniucdn.com
/firmwares/UniFi_4
.7.6_unix.zip
|
2.3、配置部分
2.3.1、step1
配置MongoDB
1
2
|
/etc/init
.d
/mongod
start
chkconfig mongod on
|
2.3.2、step2
配置源代包
1
2
|
unzip -q UniFi_4.7.6_unix.zip
mv
UniFi
/opt/
|
2.3.3、step3
制作服务脚本
vim编辑/etc/init.d/unifid
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#!/bin/bash
# chkconfig: 2345 95 20
# description: UniFi system
# processname: UniFi
ctrl_start()
{
#nohup java -jar JarFile.jar >myLogFile 2>>myErrorFile&
java -jar
/opt/UniFi/lib/ace
.jar start &
}
ctrl_stop()
{
java -jar
/opt/UniFi/lib/ace
.jar stop &
}
ctrl_restart()
{
ctrl_stop
sleep
1
ctrl_start
}
case
"$1"
in
start)
echo
-n
"starting UniFi system"
ctrl_start
echo
" service started"
;;
stop)
echo
-n
"stopping UniFi system"
ctrl_stop
echo
" service stopped"
;;
restart)
echo
-n
"restarting UniFi system"
ctrl_restart
echo
"service restarted"
;;
*)
echo
"usage: service UniFi {start|stop|restart}"
;;
esac
exit
0
|
配置启动脚本权限
1
|
chmod
755
/etc/init
.d
/unifid
|
2.3.4、step4
启动服务并设置自启动
1
2
|
/etc/init
.d
/unifid
start
chkconfig unifid on
|
2.3.5、step5
设置防火墙
1)查询开启的服务端口
1
|
netstat
-anp |
grep
java
|
2)开启相应的端口
vim编辑/etc/sysconfig/iptables
添加如下语句:
1
2
3
4
5
6
7
8
|
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8843 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8880 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 1900 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 3478 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 5353 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 10001 -j ACCEPT
|
暂时了解到以下端口的作用:
tcp8080 //java非加密的对外web服务端口
tcp8443 //java加密的对外web服务服务端口
udp10001 //AP发现端口
3)重启防火墙
1
|
/etc/init
.d
/iptables
restart
|
2.3.6、step6
浏览器测试
以上网页操作不再详述,请参阅官方文档或论坛。
----------------------------------