Solución para Cámaras Xiaomi sin NAS
Idea
Usar Rclone y la API WebDAV de OpenList para montar un disco de 123Open (u otro disco en la nube compatible con OpenList) en un directorio local, y luego compartir ese directorio con Samba; la cámara Xiaomi CW500 y OpenWrt están en la misma LAN, la cámara Xiaomi se conecta al directorio compartido de OpenWrt mediante el protocolo Samba para la carga de videos de vigilancia.
Esta idea es adecuada para usuarios que no tienen un NAS adecuado pero no quieren comprar servicios de almacenamiento en la nube para vigilancia.
Información del dispositivo
OpenWrt
| Modelo | Octopus Planet (章鱼星球 S912) |
| Arquitectura | AArch64 Processor : Cortex-A53 * 8 (Arm64) |
| Versión de firmware | OpenWrt R2024.11.05 / LuCI Master (git-24.283.20555-a1e6216) |
| Versión del kernel | 6.1.114-flippy-92+o |
Docker
| Versión de Docker | 27.2.0 |
REPOSITORY TAG IMAGE ID CREATED SIZEopenlistteam/openlist latest 6c11957205f7 2 weeks ago 136MBCámara Xiaomi CW500
Función de almacenamiento NAS: compatible (debe usarse con tarjeta de memoria)
Protocolo NAS: SMB1.0/SMB2.0
Actualmente solo admite almacenamiento NAS en la LAN (2025-07-26)
Requisitos previos
Obtener el par de claves API de 123Open
https://www.123pan.com/developer
Configuración de OpenList
Despliegue de OpenList
Crear docker-compose.yml
vim docker-compose.ymlPegar el siguiente contenido
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:Iniciar el contenedor
docker-compose -f docker-compose.yml up -dVerificar el estado del contenedor
docker logs openlist
Se puede ver que el contenedor se inició correctamente y la contraseña está en la salida de docker logs openlist.
Agregar disco en la nube
Acceder a http://<OpenWrtIP>:5244 e iniciar sesión (la contraseña está en la salida de docker logs openlist)

Después de iniciar sesión, hacer clic en Manage

En la sección Storages, hacer clic en el botón Add para agregar almacenamiento

Seleccionar 123Open

Completar Mount Path, ClientID, ClientSecret
Volver a la interfaz principal; debería ver un directorio y poder acceder a él

Hacer clic en el botón de crear archivo en la barra de herramientas inferior derecha para probar el acceso al disco en la nube y crear un archivo de prueba test

Nota: Si se desea cifrar las grabaciones de vigilancia antes de subirlas, se debe configurar un disco Crypt adicional, y luego la raíz del usuario WebDAV debe apuntar al disco cifrado. Ver la documentación de OpenList.
Agregar usuario WebDAV
Agregar un usuario WebDAV, establecer permisos

Probar el acceso
curl -v http://127.0.0.1:5244/dav/
Muestra 401 Unauthorized, lo que indica que funciona correctamente.
Nota: Se recomienda cambiar la contraseña de la cuenta de administrador.
Configuración de Rclone
Crear configuración
Escribir el siguiente comando
rclone config
Aquí escribir n
Luego darle un nombre a esta configuración, yo uso WebDAV-123Open

Encontrar el número de WebDAV y escribirlo, aquí es 46

Completar la URL de WebDAV (es la interfaz WebDAV de OpenList: http://Openlist-IP:5244/dav/)
http://127.20.10.1:5244/dav/
Aquí el método de autenticación, elegir 5 (otro método)

Escribir el nombre de usuario creado en OpenList


Ingresar la contraseña dos veces (la contraseña no se muestra)

Aquí presionar Enter directamente

Aquí n o Enter directamente

y o Enter

Esto completa la configuración

Ahora probar el acceso
rclone ls WebDAV-123Open:Se puede ver el archivo de prueba que creamos

Montaje
Crear el directorio de montaje
mkdir -p /mnt/webdavProbar el montaje manualmente
rclone mount WebDAV-123Open: /mnt/webdav --allow-other --vfs-cache-mode writes &Verificar si el montaje fue exitoso
df -h | grep webdavls /mnt/webdav
Se ve claramente que el montaje fue exitoso.
Desmontar
fusermount -uz /mnt/webdavConfigurar montaje automático al inicio
Editar el archivo /etc/rc.local (insertar el script antes de ‘exit 0’ para que se ejecute al inicio)
vim /etc/rc.localInsertar el comando
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 &Ejecutar manualmente para verificar el montaje (si hay otros comandos en /etc/rc.local, se puede copiar el comando insertado y ejecutarlo directamente)
/etc/rc.local
df -h | grep webdavls /mnt/webdavSi muestra text.txt como antes, entonces está bien.
Reiniciar el dispositivo y verificar si se monta automáticamente
rebootDespués de reconectar, ejecutar
sleep 30df -h | grep webdavls /mnt/webdav
Sin problemas.
La configuración de rclone está completa. Ahora configurar samba.
Configuración de Samba
Instalar Samba
Instalar luci-app-samba4
opkg updateopkg luci-app-samba4Debería instalar automáticamente
- samba4-libs
- samba4-server
- autosamba
- luci-app-samba4
- luci-i18n-samba4-zh-cn
Configurar usuario
Instalar shadow-useradd
opkg updateopkg install shadow-useraddSi la instalación falla, intentar cambiar la fuente (recordar hacer copia de seguridad).
Agregar una contraseña samba para el usuario root:
smbpasswd -a rootCrear un nuevo usuario linux sambashare y configurar su directorio home:
opkg updateopkg install shadow-useradd
useradd sambashare -g rootpasswd sambasharemkdir /home/sambasharechown sambashare /home/sambashare/Agregar una contraseña samba para el usuario sambashare:
smbpasswd -a sambashareCompartir directorio
Configurar directamente en el panel de OpenWrt (asegurarse de no deshabilitar NetBIOS, de lo contrario la cámara Xiaomi no podrá encontrar el dispositivo)

Verificar
Reiniciar y habilitar el inicio automático
/etc/init.d/samba4 restart/etc/init.d/samba4 enableComprobar el estado
/etc/init.d/samba4 statuslogread | grep smbnetstat -tuln | egrep '137|138|139|445'Probar conexión remota

Probar lectura y escritura de archivos (arrastrar un archivo)

Configuración de la cámara Xiaomi CW500
Entrar en la cámara, en la interfaz de la cámara: Configuración -> Configuración de almacenamiento -> Almacenamiento en red NAS
Agregar directamente

Ver punto de montaje:

Los archivos se almacenan correctamente.
En OpenList también se puede ver:

Problemas encontrados
Q0: ¿Por qué la cámara Xiaomi no encuentra el dispositivo OpenWrt?
A0: Primero comprobar si están en la misma subred, luego verificar si la configuración de samba en OpenWrt tiene NetBIOS deshabilitado (no se debe deshabilitar).
Q1: ¿Por qué la cámara Xiaomi no puede escribir en el directorio compartido?
A1: Verificar los permisos en los parámetros de montaje de rclone: --dir-perms 0777, --file-perms 0777. Dado que el directorio se monta a través de rclone, no se aplica chmod 777, los permisos deben configurarse en los parámetros de montaje de rclone.
Q2: ¿Por qué muestra falta de permisos?
A2: Ver Q1&A1.
Complemento
Si se desea acceder al dispositivo “NAS” interno desde una red pública, se puede configurar un túnel:
- Usar Tailscale en OpenWrt para tunelización
- Exponer puerto Socks5 de Tailscale para usar con software proxy
- Construir un DERP de Tailscale sin dominio
Ref
La solución más completa para montar disco en la nube con rclone (Alist)
Configurar recurso compartido Samba en OpenWRT