Инструменты пользователя

Инструменты сайта


how-to:unifi

UniFi

docker

docker-compose.yaml

docker-compose.yaml

volumes:
  config: {}
  db: {}

services:
  unifi-network-application:
    hostname: unifi
    image: linuxserver/unifi-network-application:9.1.120
    restart: always
    container_name: unifi
    volumes:
      - config:/config
    ports:
      - target: 3478
        published: 3478
        protocol: udp
        mode: host
      - target: 10001
        published: 10001
        protocol: udp
      - target: 1900
        published: 1900
        protocol: udp
        mode: host
      - target: 8443
        published: 8443
        protocol: tcp
        mode: host
      - target: 8080
        published: 8080
        protocol: tcp
        mode: host
      - target: 8843
        published: 8843
        protocol: tcp
        mode: host
      - target: 8880
        published: 8880
        protocol: tcp
        mode: host
      - target: 6789
        published: 6789
        protocol: tcp
        mode: host
      - target: 5514
        published: 5514
        protocol: udp
        mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
      - MONGO_USER=${MONGO_USER-mongounifi}
      - MONGO_PASS=${MONGO_PASS-l7v3dN5MIOCNbcgEYA}
      - MONGO_HOST=mongo
      - MONGO_PORT=27017
      - MONGO_DBNAME=unifi
      - MONGO_AUTHSOURCE=admin

  mongo:
    image: mongo:${TAG-4.4-focal}
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER-mongounifi}
      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASS-l7v3dN5MIOCNbcgEYA}
    volumes:
      - db:/data/db
    restart: always
    deploy:
      resources:
        limits:
          memory: ${MEMORY-2G}
          cpus: ${CPU-2}


После установки доступен по адресу https://ip.address.server:8443

https://github.com/linuxserver/docker-unifi-network-application
https://hub.docker.com/r/linuxserver/unifi-network-application

Настройка

Уменьшение журнала MongoDB

Чтобы база mongodb была меньше размером.

  • Останавливаем Unifi и MongoDB:
sudo service unifi stop
sudo service mongodb stop
  • В /var/lib/unifi/system.properties добавляем «unifi.db.extraargs=-smallfiles»:
echo unifi.db.extraargs=-smallfiles | sudo tee -a /var/lib/unifi/system.properties
  • Удаляем старые журналы базы от unifi:
sudo rm -rf /var/lib/unifi/db/journal*
  • Запускаем Unifi и MongoDB:
sudo service mongodb start
sudo service unifi start

Восстановление

Сброс точки без доступа

При нажатии на RESET (несколько секунд) произойдёт сброс, точка начнёт мигать индикатором «оржевый-зелёный» или «синим» (зависит от точки).
После сброса необходимо залить прошивку по tftp. Точка будет доступна по умолчанию на IP: 192.168.1.20.
Пример для заливки родной прошивки (firmware/BZ2/3.2.12.2920/firmware.bin) с помощью tftp-hpa:

tftp 
tftp> connect 192.168.1.20
tftp> bin
tftp> put firmware/BZ2/3.2.12.2920/firmware.bin

После прошивки точка получит IP по DHCP и будет доступна по ICMP и SSH.
Учётные данные по умолчанию ubnt:ubnt
Точка будет пытаться сделать привязку на адрес по умолчанию: http://unifi:8080/inform

Сброс точки с доступом

  1. Подключиться по ssh
  2. Выполнить:
    syswrapper.sh restore-default

Привязать точку к контроллеру

Привязать точку доступа (AP-IP) к контроллеру unifi ($address):

ssh ubnt@$AP-IP
mca-cli
set-inform http://$address:8080/inform

Восстановление пароля контроллера

До версии 4.8 пароль в базе хранится в открытом виде (поле «x_password»):

mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"

Пароль 12345 в sha254:

mkpasswd -m sha-512 12345

Команда сброса пароля в «12345» в базе ace:

mongo --port 27117 ace --eval 'db.admin.update({name:"admin"}, {$set: {x_shadow: "$6$XCBSn65W$qS7wjGw0ku1tEGgPX2.2p3hxM09YV9LMsyg/RbVoHpPgZjywYEDJcQw/u2V3AgL3psxSTSx7gan0Rlv0edWzy."}})'

http://community.ubnt.com/t5/UniFi-Wireless/Password-reset/td-p/182435

Удалить старые данные в базе

Необходимо ещё раз проверить!!!

prune.js

prune.js

// keep N-day worth of data
days=30;
dryrun=true;
 
use ace;
collectionNames = db.getCollectionNames();
for (i=0; i < collectionNames.length; i++) {
    name = collectionNames[i];
    query = null;
    if (name.indexOf('stat')==0 || name.indexOf('event')==0 || name.indexOf('alarm')==0) {
        query = {time: {$lt:new Date().getTime()-days*86400*1000}};
    }
    if (name.indexOf('session')==0) {
        query = {assoc_time: {$lt:new Date().getTime()/1000-days*86400}};
    }
    if (name.indexOf('user')==0) {
        query = {last_seen: {$lt:new Date().getTime()/1000-days*86400}};
    }
    if (query) {
        count = db.getCollection(name).find(query).count();
        print((dryrun ? "[dryrun] " : "") + "pruning " + count + " entries from " + name + "... ");
        if (!dryrun)
         db.getCollection(name).remove(query);
    }
}


Запустить prune.js:

mongo --port=27117 < prune.js

http://www.ubnt.su/FAQ/unifi/unifi-udalit-starye-dannye-umenshit-razmer-bd.htm

Nginx

Пример конфигурационного файла:

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

server {
  listen 80 default_server;
  server_name unifi.domain.com;
  return 302 https://unifi.domain.com$request_uri;
}

server {
  listen 443 ssl;
  server_name unifi.domain.com;

  ssl on;
  ssl_certificate /etc/nginx/ssl/server.crt;
  ssl_certificate_key /etc/nginx/ssl/server.key;
  ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 5m;
  server_tokens off;

  location / {
    proxy_set_header Referer "";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass https://unifi.domain.com:8443/;
  }
}

https://habr.com/ru/post/316786/

Ссылки

https://help.ui.com/hc/en-us/articles/218506997-UniFi-Network-Required-Ports-Reference - Используемые порты
http://community.ubnt.com/t5/UniFi-Wireless/Updated-UniFi-Repo-info-APT-howto/m-p/1288883 - Updated UniFi Repo info/APT howto https://calvin.me/install-unifi-controller-ubuntu/ - How to install the UniFi Controller on Ubuntu
http://community.ubnt.com/t5/UniFi-Wireless/Unifi-4-2-Controller-Install-Guide-Linux-Ubuntu-Server-14-10/td-p/1158280 - Unifi 4.2 Controller Install Guide Linux Ubuntu Server 14.10
http://www.kochetov.net.ua/?p=407 - Ubiquiti UBNT UniFi как самостоятельная станция (standalone)
http://www.g0l.ru/blog/n3912 - Анбрикинг летающей тарелки

how-to/unifi.txt · Последнее изменение: 127.0.0.1