Xiaomi Camera No NAS Solution
Идея
Используя Rclone и WebDAV API OpenList, монтируем облачный диск 123Open (или другой, поддерживаемый OpenList) в локальную директорию, а затем делимся этой директорией через Samba. Камера Xiaomi CW500 находится в одной локальной сети с OpenWrt и подключается к общей папке OpenWrt по протоколу Samba для загрузки видео наблюдения.
Эта идея подходит для пользователей, у которых нет подходящего NAS, но они не хотят покупать облачные сервисы хранения для камеры.
Информация об устройствах
OpenWrt
| Модель | Octopus Planet (章鱼星球 S912) |
| Архитектура | AArch64 Processor : Cortex-A53 * 8 (Arm64) |
| Версия прошивки | OpenWrt R2024.11.05 / LuCI Master (git-24.283.20555-a1e6216) |
| Версия ядра | 6.1.114-flippy-92+o |
Docker
| Версия Docker | 27.2.0 |
REPOSITORY TAG IMAGE ID CREATED SIZEopenlistteam/openlist latest 6c11957205f7 2 weeks ago 136MBКамера Xiaomi CW500
Функция переноса на NAS: поддерживается (обязательно использование карты памяти)
Протокол NAS: SMB1.0/SMB2.0
В настоящее время поддерживается только перенос в NAS в локальной сети (2025-07-26)
Предварительные условия
Получить пару ключей API 123 диска
https://www.123pan.com/developer
Настройка OpenList
Развертывание OpenList
Создайте docker-compose.yml
vim docker-compose.ymlВставьте следующее содержимое
version: '3.8'
services: alist: image: openlistteam/openlist:latest container_name: openlist restart: unless-stopped network_mode: host volumes: - OpenList:/opt/openlist/data environment: - PUID=0 - PGID=0 - UMASK=022
volumes: OpenList:Запустите контейнер
docker-compose -f docker-compose.yml up -dПроверьте статус контейнера
docker logs openlist
Видно, что контейнер успешно запущен, и пароль отображается в выводе docker logs openlist.
Добавление облачного диска
Перейдите по адресу http://<OpenWrtIP>:5244 и войдите (пароль см. в выводе docker logs openlist)

После входа нажмите Manage

В разделе Storages нажмите кнопку Add, чтобы добавить хранилище

Выберите 123Open

Заполните Mount Path, ClientID, ClientSecret
Вернитесь на главный экран, должен появиться каталог, который можно открыть

Нажмите на кнопку создания файла на панели инструментов в правом нижнем углу, чтобы проверить доступ к облачному диску и заодно создать тестовый файл test

Примечание: если вы хотите шифровать видео перед загрузкой, настройте дополнительно Crypt диск, а корневую папку пользователя webdav укажите на зашифрованный диск. Подробнее в документации OpenList.
Добавление пользователя WebDAV
Добавьте пользователя WebDAV, обратите внимание на настройку прав

Проверьте доступ
curl -v http://127.0.0.1:5244/dav/
Отображается 401 Unauthorized, что означает, что функция работает корректно.
Примечание: рекомендуется также изменить пароль администратора.
Настройка Rclone
Создание конфигурации
Введите следующую команду
rclone config
Здесь введите n
Затем дайте этой конфигурации имя, у меня это WebDAV-123Open

Найдите номер для WebDAV и введите его, у меня это 46

Введите URL WebDAV (это WebDAV интерфейс, предоставляемый OpenList: http://Openlist-IP:5244/dav/)
http://127.20.10.1:5244/dav/
Здесь выберите метод аутентификации 5 (другой метод)

Введите имя пользователя, созданное в OpenList


Дважды введите пароль (пароль не отображается)

Здесь просто нажмите Enter

Здесь n или просто Enter

y или Enter

Настройка завершена

Теперь проверьте доступ
rclone ls WebDAV-123Open:Видим созданный ранее тестовый файл

Монтирование
Создайте точку монтирования
mkdir -p /mnt/webdavВручную протестируйте монтирование
rclone mount WebDAV-123Open: /mnt/webdav --allow-other --vfs-cache-mode writes &Проверьте, успешно ли смонтировано
df -h | grep webdavls /mnt/webdav
Видно, что монтирование прошло успешно.
Отмонтируйте
fusermount -uz /mnt/webdavНастройка автоматического монтирования при загрузке
Отредактируйте файл /etc/rc.local (вставьте скрипт перед exit 0, чтобы он запускался при старте системы)
vim /etc/rc.localВставьте команду
sleep 15
mkdir -p /mnt/webdavchmod 777 /mnt/webdav
/usr/bin/rclone \ --config /root/.config/rclone/rclone.conf \ mount WebDAV-123Open: /mnt/webdav \ --allow-other \ --dir-perms 0777 \ --file-perms 0777 \ --umask 000 \ --vfs-cache-mode writes \ --buffer-size 256M \ --vfs-read-chunk-size 32M \ --vfs-read-chunk-size-limit off \ --vfs-cache-max-age 5m \ --dir-cache-time 1h \ --no-modtime \ --no-checksum \ --contimeout 5m \ --timeout 10m \ --retries 10 \ --low-level-retries 20 \ --log-level DEBUG \ --log-file /tmp/rclone-mount.log \ --daemon &Запустите вручную, чтобы проверить монтирование (если в /etc/rc.local есть другие особые команды, можно просто выполнить скопированную ранее команду)
/etc/rc.local
df -h | grep webdavls /mnt/webdavЕсли, как и раньше, отображается text.txt, значит всё в порядке.
Перезагрузите устройство и проверьте автоматическое монтирование
rebootПосле повторного подключения выполните
sleep 30df -h | grep webdavls /mnt/webdav
Всё работает.
Настройка rclone завершена, далее настройка samba.
Настройка Samba
Установка Samba
Установите luci-app-samba4
opkg updateopkg luci-app-samba4Должны автоматически установиться:
- samba4-libs
- samba4-server
- autosamba
- luci-app-samba4
- luci-i18n-samba4-zh-cn
Настройка пользователей
Установите shadow-useradd
opkg updateopkg install shadow-useraddЕсли установка не удалась, попробуйте сменить источник (не забудьте сделать резервную копию)
Добавьте пароль samba для пользователя root:
smbpasswd -a rootСоздайте нового пользователя linux sambashare и задайте домашнюю директорию:
opkg updateopkg install shadow-useradd
useradd sambashare -g rootpasswd sambasharemkdir /home/sambasharechown sambashare /home/sambashare/Добавьте пароль samba для пользователя sambashare:
smbpasswd -a sambashareОбщая папка
Настройте непосредственно в панели OpenWrt (обязательно не отключайте NetBIOS, иначе камера Xiaomi не сможет найти устройство)

Проверка
Настройте перезапуск и автозапуск при загрузке
/etc/init.d/samba4 restart/etc/init.d/samba4 enableПроверьте состояние
/etc/init.d/samba4 statuslogread | grep smbnetstat -tuln | egrep '137|138|139|445'Проверьте удалённое подключение

Проверьте чтение и запись файлов (перетащите файл для проверки)

Настройка камеры Xiaomi CW500
Зайдите в камеру, в интерфейсе камеры: Настройки -> Настройки хранилища -> NAS сетевое хранилище
Просто добавьте

Проверьте точку монтирования:

Файлы действительно сохраняются корректно.
В OpenList также видно:

Возникшие проблемы
Q0: Почему камера Xiaomi не обнаруживает устройство OpenWrt?
A0: Сначала проверьте, находятся ли они в одной подсети, затем проверьте, отключен ли NetBIOS в настройках samba на OpenWrt (не отключать).
Q1: Почему камера Xiaomi не может записывать в общую папку?
A1: Проверьте настройки прав в параметрах монтирования rclone: --dir-perms 0777, --file-perms 0777. Поскольку в этом решении используется монтирование через rclone, настройка chmod 777 не подходит, права должны быть заданы в параметрах монтирования rclone.
Q2: Почему отображается “Нет прав”?
A2: См. Q1&A1
Дополнение
Если вы хотите получить доступ к этому внутреннему “NAS” устройству из внешней сети, можно настроить проброс туннеля:
- Проброс туннеля через Tailscale на OpenWrt
- Использование Tailscale для прокси Socks5
- Настройка derp-сервера Tailscale без домена
Ref
Самое полное решение по монтированию облачного диска на локальный компьютер с помощью rclone (Alist)
Настройка общего доступа Samba на OpenWRT