Logo Neurocoda

Solución para Cámaras Xiaomi sin NAS

Neurocoda
Neurocoda
2026-07-03 12:50:27 832 Words 5 Mins ...

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

ModeloOctopus Planet (章鱼星球 S912)
ArquitecturaAArch64 Processor : Cortex-A53 * 8 (Arm64)
Versión de firmwareOpenWrt R2024.11.05 / LuCI Master (git-24.283.20555-a1e6216)
Versión del kernel6.1.114-flippy-92+o

Docker

Versión de Docker27.2.0
REPOSITORY TAG IMAGE ID CREATED SIZE
openlistteam/openlist latest 6c11957205f7 2 weeks ago 136MB

Cá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.yml

Pegar 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

Terminal window
docker-compose -f docker-compose.yml up -d

Verificar el estado del contenedor

Terminal window
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

Terminal window
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

Terminal window
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/webdav

Probar el montaje manualmente

rclone mount WebDAV-123Open: /mnt/webdav --allow-other --vfs-cache-mode writes &

Verificar si el montaje fue exitoso

df -h | grep webdav
ls /mnt/webdav


Se ve claramente que el montaje fue exitoso.

Desmontar

fusermount -uz /mnt/webdav

Configurar 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.local

Insertar el comando

sleep 15
mkdir -p /mnt/webdav
chmod 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)

Terminal window
/etc/rc.local
df -h | grep webdav
ls /mnt/webdav

Si muestra text.txt como antes, entonces está bien.

Reiniciar el dispositivo y verificar si se monta automáticamente

Terminal window
reboot

Después de reconectar, ejecutar

Terminal window
sleep 30
df -h | grep webdav
ls /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 update
opkg luci-app-samba4

Debería instalar automáticamente

  • samba4-libs
  • samba4-server
  • autosamba
  • luci-app-samba4
  • luci-i18n-samba4-zh-cn

Configurar usuario

Instalar shadow-useradd

opkg update
opkg install shadow-useradd

Si la instalación falla, intentar cambiar la fuente (recordar hacer copia de seguridad).

Agregar una contraseña samba para el usuario root:

smbpasswd -a root

Crear un nuevo usuario linux sambashare y configurar su directorio home:

opkg update
opkg install shadow-useradd
useradd sambashare -g root
passwd sambashare
mkdir /home/sambashare
chown sambashare /home/sambashare/

Agregar una contraseña samba para el usuario sambashare:

smbpasswd -a sambashare

Compartir 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

Terminal window
/etc/init.d/samba4 restart
/etc/init.d/samba4 enable

Comprobar el estado

/etc/init.d/samba4 status
logread | grep smb
netstat -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:

Ref

La solución más completa para montar disco en la nube con rclone (Alist)
Configurar recurso compartido Samba en OpenWRT

Title: Solución para Cámaras Xiaomi sin NAS Author: Neurocoda Created at: 2026-07-03 12:50:27 Link: https://neurocoda.com/es/posts/xiaomi-camera-no-nas-solution-es/ License: This work is licensed under CC BY-ND 4.0.

Comments