天天看點

進階定制數字監控主機(Debian+UBNT Unifi-Video)

1 介紹部分

1.1 前言

弟弟店鋪要安裝監控,故向其推薦企業級别的監控UBNT的産品Unifi-Video(筆者推薦UBNT的原因是其一直堅持軟體免費,相比某些廠商軟體按點數收取授權費的劣舉UBNT算是非常有良心)。

由于官方的監控主機Unifi NVR配置比較低(其實是硬碟太小)價格相對貴,故自己定制6端口的工控機作為監控主機(可同時當路由和交換機用^_^,省錢),以下是硬體的截圖。

<a href="http://s3.51cto.com/wyfs02/M00/8B/03/wKioL1hCA3OgCrpiAAm7POVQJgU781.png" target="_blank"></a>

1.2 功能簡介

1)具有數字監控主機功能

2)充當路由功能(1口自動擷取IP位址,2口待定)

3)充當交換機功能(3至6口可接攝像頭)

1.3 系統架構圖

<a href="http://s3.51cto.com/wyfs02/M02/8B/07/wKiom1hCBumDAjgTAAKHwSfS5uQ668.png" target="_blank"></a>

注:以下實踐部分就是定制軟路由(工控主機)的配置過程。

2 實踐部分

2.1 環境配置

2.1.1 系統環境

hostnanme=ubnt.cmdschool.org

eth0=dhcp

br0=10.168.1.1

eth[2-5]=10.168.1.x/24

OperatingSystem=Debian8.6

如果讀者跟我一樣是Debian的初學者,可參考以下系統層的配置教程:

<a href="http://cmdschool.blog.51cto.com/2420395/1877915" target="_blank">http://cmdschool.blog.51cto.com/2420395/1877915</a>

2.1.2 下載下傳安裝包

網頁下載下傳安裝包

<a href="https://www.ubnt.com/download/unifi-video" target="_blank">https://www.ubnt.com/download/unifi-video</a>

指令行下載下傳

1

<code>wget http:</code><code>//dl</code><code>.ubnt.com</code><code>/firmwares/unifi-video/3</code><code>.5.2</code><code>/unifi-video_3</code><code>.5.2~Debian7_amd64.deb</code>

2.1.3 配置apt源

<code>vi</code> <code>/etc/apt/sources</code><code>.list</code>

注解掉以下行

<code>#deb cdrom:[Debian GNU/Linux 8.6.0 _Jessie_ - Official amd64 DVD Binary-1 20160917-14:25]/ jessie contrib main</code>

儲存退出後運作以下指令:

2

3

4

<code>echo</code> <code>"deb http://ftp.cn.debian.org/debian Debian8.6 main"</code> <code>| </code><code>tee</code> <code>/etc/apt/sources</code><code>.list.d</code><code>/debian</code><code>.list</code>

<code>echo</code> <code>"deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen"</code> <code>| </code><code>tee</code> <code>/etc/apt/sources</code><code>.list.d</code><code>/mongodb-10gen</code><code>.list</code>

<code>echo</code> <code>"deb http://www.ubnt.com/downloads/unifi/debian stable ubiquiti"</code> <code>| </code><code>tee</code> <code>/etc/apt/sources</code><code>.list.d</code><code>/unifi</code><code>.list</code>

<code>apt-key adv --keyserver keyserver.ubuntu.com --recv C0A52C50; apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10</code>

更新源倉庫:

<code>apt-get update</code>

2.1.4 安裝包管理工具并更新庫

<code>apt-get </code><code>install</code> <code>aptitude; apt-get </code><code>install</code> <code>-f; apt-get clean</code>

<code>aptitude update</code>

2.1.5 配置時區

<code>cp</code> <code>/usr/share/zoneinfo/Asia/Shanghai</code> <code>/etc/localtime</code>

2.1.6 時間同步

1)安裝時間同步相關包

<code>aptitude </code><code>install</code> <code>chrony</code>

2)同步時間

<code>chronyc sources</code>

2.2 安裝unifi-video程式

2.2.1 安裝unifi-video并解決依賴關系兼清理包緩存

<code>dpkg -i unifi-video_3.5.2~Debian7_amd64.deb; apt-get </code><code>install</code> <code>-f; apt-get clean</code>

2.2.2 指令行檢查服務啟動

<code>netstat</code> <code>-antp | </code><code>grep</code> <code>unifi-video</code>

顯示如下:

<code>tcp6       0      0 :::7080                 :::*                    LISTEN      7381</code><code>/unifi-video</code>

<code>tcp6       0      0 127.0.0.1:7081          :::*                    LISTEN      7381</code><code>/unifi-video</code>

<code>tcp6       0      0 :::7443                 :::*                    LISTEN      7381</code><code>/unifi-video</code>

<code>[...]</code>

2.3 修改資料存儲位置

2.3.1 确定視訊存儲位置

<code>find</code> <code>/ -name \*.mp4\*</code>

注:需要先配置槍錄制視訊(界面部分不詳述)

<code>/var/lib/unifi-video/videos/e7219371-8d34-3744-a4b5-89acba09907c/2016/12/03/1480745255035_1480745257035_1480737512125_9603951</code><code>.mp4</code>

<code>/var/lib/unifi-video/videos/e7219371-8d34-3744-a4b5-89acba09907c/2016/12/03/1480743257037_1480743259037_1480737512125_7605951</code><code>.mp4</code>

基于以上,可确定存儲目錄為(2TB的硬碟應挂在到這目錄下):

<code>/var/lib/unifi-video</code>

2.3.2 确認系統檢測到安裝的硬碟

<code>fdisk</code> <code>-l</code>

<code>Disk </code><code>/dev/sdb</code> <code>doesn't contain a valid partition table</code>

2.3.3 硬碟分區

<code>fdisk</code> <code>/dev/sdb</code>

5

6

7

8

<code>Command (m </code><code>for</code> <code>help): n</code>

<code>Select (default p): p</code>

<code>Partition number (1-4, default 1):</code>

<code>Command (m </code><code>for</code> <code>help): w</code>

發現新分區:

<code>partx </code><code>/dev/sdb</code>

2.3.4 建立PV

<code>pvcreate </code><code>/dev/sdb1</code>

2.3.5 建立VG

<code>vgcreate dataStore </code><code>/dev/sdb1</code>

2.3.6 建立LV

<code>lvcreate -L 1999g -n data dataStore</code>

2.3.7 格式化分區

<code>mkfs.ext4 </code><code>/dev/mapper/dataStore-data</code>

2.3.8 取得格式化過分區的UUID

<code>blkid </code><code>/dev/mapper/dataStore-data</code>

<code>/dev/mapper/dataStore-data</code><code>: UUID=</code><code>"0d1dc121-7bd0-46bd-8d85-5577ab322efc"</code> <code>TYPE=</code><code>"ext4"</code>

2.3.9 停止unifi-video服務

<code>/etc/init</code><code>.d</code><code>/unifi-video</code> <code>stop</code>

<code>/etc/init</code><code>.d</code><code>/mongodb</code> <code>stop</code>

2.3.10 資料遷移

<code>mount</code> <code>/dev/mapper/dataStore-data</code> <code>/mnt/</code>

<code>mv</code> <code>/var/lib/unifi-video/</code><code>* </code><code>/mnt</code>

<code>umount</code> <code>/mnt</code>

2.3.11 挂載卷

<code>echo</code> <code>'UUID="0d1dc121-7bd0-46bd-8d85-5577ab322efc" /var/lib/unifi-video ext4 defaults 1 2'</code> <code>&gt;&gt; </code><code>/etc/fstab</code>

<code>mount</code> <code>-a</code>

2.3.12 啟動unifi-video服務

<code>/etc/init</code><code>.d</code><code>/mongodb</code> <code>start</code>

<code>/etc/init</code><code>.d</code><code>/unifi-video</code> <code>start</code>

2.4 安裝桌面環境

2.4.1 lxde的最小安裝

1)安裝相關包

<code>aptitude </code><code>install</code> <code>xinit slim lightdm</code>

<code>aptitude </code><code>install</code> <code>--without-recommends lxde-core</code>

2)配置啟動方式

<code>echo</code> <code>'exec startlxde'</code> <code>&gt; ~/.xinitrc</code>

<code>update-alternatives --config x-session-manager</code>

3)配置自動登入

<code>vi</code> <code>/etc/slim</code><code>.conf</code>

修改配置如下:

<code>default_user        ubnt</code>

<code>auto_login          </code><code>yes</code>

2.4.2 安裝谷歌浏覽器

1)下載下傳安裝包

下載下傳頁面:

<a href="http://www.google.cn/chrome/browser/desktop/index.html" target="_blank">http://www.google.cn/chrome/browser/desktop/index.html</a>

下載下傳的指令:

<code>https:</code><code>//dl</code><code>.google.com</code><code>/linux/direct/google-chrome-stable_current_amd64</code><code>.deb</code>

2)啟動安裝

<code>dpkg -i google-chrome-stable_current_amd64.deb;apt-get </code><code>install</code> <code>-f</code>

2.4.3 支援中文

<code>aptitude </code><code>install</code> <code>fonts-droid</code>

2.5 內建路由與交換功能

2.5.1 增加網橋

1)安裝橋套件

<code>aptitude </code><code>install</code> <code>bridge-utils</code>

2)建立橋接口

<code>brctl addbr br0</code>

注,删除請使用

<code> </code><code>brctl delbr br0</code>

2.5.2 給網卡接口配置設定特定功能

<code>vim </code><code>/etc/network/interfaces</code>

加入如下配置:

9

10

<code>auto eth0</code>

<code>allow-hotpulg eth0</code>

<code>iface eth0 inet dhcp</code>

<code>auto br0</code>

<code>iface br0 inet static</code>

<code>        </code><code>address 10.168.1.1</code>

<code>        </code><code>netmask 255.255.255.0</code>

<code>        </code><code>bridge_ports eth2 eth3 eth4 eth5</code>

<code>        </code><code>up </code><code>/usr/sbin/brctl</code> <code>stp br0 on</code>

注:eth0自動擷取IP,eth2-5網橋模式(相當于交換機)

重新開機服務使配置生效:

<code>/etc/init</code><code>.d</code><code>/networking</code> <code>restart</code>

2.5.3 開啟路由轉發功能

1)臨時開啟路由轉發

<code>echo</code> <code>1 &gt; </code><code>/proc/sys/net/ipv4/ip_forward</code>

2)永久開啟路由轉發

<code>vim </code><code>/etc/sysctl</code><code>.conf</code>

去掉此行的注解:

<code>net.ipv4.ip_forward = 1</code>

2.5.4 配置具有SNAT功能防火牆規則

1)建立防火牆規則

<code>vim </code><code>/etc/iptables</code><code>.up.rules</code>

輸入如下配置:

11

12

13

14

15

16

17

18

19

20

21

22

23

<code># Generated by iptables-save v1.4.21 on Mon Dec  5 07:48:46 2016</code>

<code>*filter</code>

<code>:INPUT DROP [40:2032]</code>

<code>:FORWARD ACCEPT [100631:98411806]</code>

<code>:OUTPUT ACCEPT [61262:3785634]</code>

<code>-A INPUT -i lo -j ACCEPT</code>

<code>-A INPUT -i br0 -j ACCEPT</code>

<code>-A INPUT -i eth0 -p icmp -j ACCEPT</code>

<code>-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT</code>

<code>-A INPUT -p tcp -m tcp --dport 7080 -j ACCEPT</code>

<code>-A INPUT -p tcp -m tcp --dport 7443 -j ACCEPT</code>

<code>-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT</code>

<code>COMMIT</code>

<code># Completed on Mon Dec  5 07:48:46 2016</code>

<code>*nat</code>

<code>:PREROUTING ACCEPT [1094:127184]</code>

<code>:INPUT ACCEPT [112:7768]</code>

<code>:OUTPUT ACCEPT [53:3815]</code>

<code>:POSTROUTING ACCEPT [77:13304]</code>

<code>-A POSTROUTING -s 10.168.1.0</code><code>/24</code> <code>-o eth0 -j MASQUERADE</code>

2)配置開機自動加載

<code>echo</code> <code>'#!/bin/sh'</code> <code>&gt; </code><code>/etc/network/if-pre-up</code><code>.d</code><code>/iptables</code>

<code>echo</code> <code>'/sbin/iptables-restore &lt; /etc/iptables.up.rules'</code> <code>&gt;&gt; </code><code>/etc/network/if-pre-up</code><code>.d</code><code>/iptables</code>

<code>chmod</code> <code>+x </code><code>/etc/network/if-pre-up</code><code>.d</code><code>/iptables</code>

2.5.5 配置DHCP服務

1)安裝DHCP服務

<code>aptitude </code><code>install</code> <code>isc-dhcp-server</code>

2)修改主配置檔案

<code>cp</code> <code>/etc/default/isc-dhcp-server</code> <code>/etc/default/isc-dhcp-server</code><code>.default</code>

<code>vi</code> <code>/etc/default/isc-dhcp-server</code>

配置參數如下:

<code>DHCPD_CONF=</code><code>/etc/dhcp/dhcpd</code><code>.conf</code>

<code>INTERFACES=</code><code>"br0"</code>

3)配置加載的子配置檔案

<code>cp</code> <code>/etc/dhcp/dhcpd</code><code>.conf </code><code>/etc/dhcp/dhcpd</code><code>.conf.default</code>

<code>vi</code> <code>/etc/dhcp/dhcpd</code><code>.conf</code>

配置如下:

<code>ddns-update-style none;</code>

<code>option domain-name </code><code>"cmdschool.org"</code><code>;</code>

<code>option domain-name-servers 202.96.128.86,202.96.128.166;</code>

<code>default-lease-</code><code>time</code> <code>600;</code>

<code>max-lease-</code><code>time</code> <code>7200;</code>

<code>log-facility local7;</code>

<code>subnet 10.168.1.0 netmask 255.255.255.0 {</code>

<code>  </code><code>range 10.168.1.51 10.168.1.199;</code>

<code>  </code><code>option routers 10.168.1.1;</code>

<code>  </code><code>option broadcast-address 10.168.1.255;</code>

<code>  </code><code>default-lease-</code><code>time</code> <code>600;</code>

<code>  </code><code>max-lease-</code><code>time</code> <code>7200;</code>

<code>}</code>

4)啟動服務

<code>/etc/init</code><code>.d</code><code>/isc-dhcp-server</code> <code>start</code>

2.5.6 配置花生殼域名解析

1)安裝軟體包

<code>aptitude </code><code>install</code> <code>curl</code>

2)建立解析腳本

<code>mkdir</code> <code>~</code><code>/script/</code>

<code>vim ~</code><code>/script/pusoray</code><code>.sh</code>

輸入如下配置(假設域名是cmdschool.org):

<code>#!/bin/bash</code>

<code>domain=</code><code>"cmdschool.org"</code>

<code>user=</code><code>"username"</code>

<code>pwd</code><code>=</code><code>"password"</code>

<code>/usr/bin/curl</code> <code>"http://$user:[email protected]/ph/update?hostname=$domain"</code>

3)自動調用解析腳本

<code>crontab</code> <code>-e</code>

<code>*</code><code>/3</code> <code>* * * * sh ~</code><code>/script/pusoray</code><code>.sh</code>

本文轉自 tanzhenchao 51CTO部落格,原文連結:http://blog.51cto.com/cmdschool/1878771,如需轉載請自行聯系原作者