跨网段环境下,小米摄像机配置NAS存储 | 您所在的位置:网站首页 › 小米摄像头云存储在哪里找 › 跨网段环境下,小米摄像机配置NAS存储 |
跨网段环境下,小米摄像机配置NAS存储
2022-08-06 21:53:02
340点赞
2277收藏
183评论
背景 我的网络结构是这样的: 我家,父母家,丈母娘家,三地通过 wg 异地组网,设置好路由表后,内网192.168.x.x之间可以互通。 不幸的是,小米摄像机默认只支持保存到本地局域网的NAS中,访问不到远程的群晖 结合抓包分析了一下,米家App在设置NAS存储的流程是这样的: 用户第一次打开NAS存储的设置页,触发摄像机搜索局域网的NAS设备(局域网广播,NBNS协议)。 NAS设备在收到广播后,进行响应。 App出现NAS的设备列表,选择一个输入账号密码,选择存储路径,开始文件同步。 第一第二步是为了提升用户体验,避免手工输入ip地址进行的“用户体验优化”,实际上是非必要的。我印象中去年还是前年的时候,这个地方就是手工输入IP地址的,现在变了。 准备工作经过一系列摸索,由于小米摄像头只支持SMB1,并且不支持传输加密(这个是网上很多文章没有提及的,坑了我很久),因此在配置前请先完成以下工作(下面以群晖为例): 打开「控制面板」->「文件服务」->「SMB」->「高级设置」的常规选项卡,「最小 SMB 协议」选择 SMB1,传输加密模式选择「由客户端定义」,保存,如下图。 优点:是个普适性的解决方案,不仅仅是为了米家摄像头。利用此工具顺便可以把 mDNS、Bonjour、SSDP 转发一起给做了;这样 HomeKit、Airplay、打印机共享、局域网联机游戏等许多应用场景都可以一并解决。 缺点:对于 layer 3 vxn 例如 wg,配置略微复杂;并且需要对路由器有操作权限,如果其中一端是你的公司网络,而你又不是网管的话,建议方案二。 这里只对局域网广播进行转发。我用的是 udp-broadcast-relay-redux 这个工具,openwrt 下可以直接opkg安装现成的,也可以下载源码编译,或者构建docker容器,请在github自行搜索工具名称,这里不让发。 例子在README里也已经给出了,针对基于tun设备的vxn(wg),需要在两边路由开启两个进程,结合我的网络环境例子如下: 发起方: udp-broadcast-relay-redux --id 1 --port 137 --dev br-lan --dev wg0 -t 192.168.253.3 (137为 NBNS 广播端口,192.168.253.2为接收方的wg节点IP) 接收方: udp-broadcast-relay-redux --id 2 --port 137 --dev br-lan --dev wg0 -t 255.255.255.255 这只是单向的广播转发,如果想要双向广播的话,A、B网络还需要互换位置,再开两个进程。。 如果只是为了米家摄像头的NAS设置的话,只要单向转发就可以啦,并且在设置完毕之后就可以结束进程了。 方案二:通过 miiocli 直接写入配置优点:视频储存时长相比App来说多了半年和一年两个选项(可能和摄像头型号有关)。另外还有其他功能可以探索。 缺点:需要在命令行工具里输入米家账号和密码,在意隐私的同学可以去检查下源代码,应该问题不大;另外因为设备原因,偶尔会出现无法连接的现象,并且出现之后必须重启设备才能恢复正常。 (写入SMB配置的功能刚提交PR,还未合入和发布,请耐心等待 需要有python3和pip,安装命令:pip3 install python-miio 初次使用时,先执行 miiocli cloud list 命令获取设备token,按照提示输入账号/密码/国家 查看NAS配置: miiocli chuangmicamera --ip [摄像头IP地址] --token [摄像头Token] get_nas_config 写入NAS配置: miiocli chuangmicamera --ip [摄像头IP地址] --token [摄像头Token] set_nas_config on "smb://user:[email protected]/camera" realtime quarter set_nas_config后面共4个参数,第一个on/off代表开关,第二个是smb的路径,按照标准的url格式填,第三个上传间隔realtime/hour/day,第四个储存时长week/month/quarter/halfyear/year。 方案三:SMB套娃(不推荐)把远端的群晖文件夹挂载到本地路由器上,本地路由器再开启SMB服务共享此文件夹。 一开始我就是这么操作的,实测传输性能比较慢,十分不建议,陆陆续续同步了一个礼拜。 储存时长三个月也好,一年也好,都不是永久的。每次同步前摄像头都会把NAS里过期的录像给删了。如果你想存一辈子怎么办? 很简单,首先单独给小米摄像头创建一个群晖账户(具体不讲了),然后修改他的权限,让他只能读写,不能删除 在「控制面板」->「用户与群组」->「用户账号」页面选中这个账户,点击「编辑」->「权限」修改账户权限,对需要设置权限的文件夹勾选「自定义」,如图: 在接下来弹出的「权限编辑器」窗口,取消选中「删除子文件夹和文件」和「删除」这两项,保存,大功告成。 不知道各位有没有遇到同样的问题,我的摄像头开启NAS存储后,只会把当前SD卡的视频进行同步,同步完毕后任务就结束了,上传时间间隔不管是实时、一小时、还是一天,都不生效,这还玩个啥呀 核心命令就是下面这句,至于定时任务怎么配置就不说啦,以及运行环境是在群晖里还是docker容器里各位自行决定: miiocli chuangmicamera --ip [摄像头IP地址] --token [摄像头Token] set_nas_config on "" realtime quarter 参数介绍请回顾上文方案二,这里第二个参数可以留空,也就是""(两个双引号或者两个单引号),不能删掉,删掉就少了一个参数。留空表示不对NAS存储位置进行修改。 作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~ ![]() |
CopyRight 2018-2019 实验室设备网 版权所有 |