跨网段环境下,小米摄像机配置NAS存储

2022-08-06 21:53:02 181点赞 1030收藏 103评论

背景

我的网络结构是这样的:

跨网段环境下,小米摄像机配置NAS存储

我家,父母家,丈母娘家,三地通过 wg 异地组网,设置好路由表后,内网192.168.x.x之间可以互通。

不幸的是,小米摄像机默认只支持保存到本地局域网的NAS中,访问不到远程的群晖跨网段环境下,小米摄像机配置NAS存储

分析

跨网段环境下,小米摄像机配置NAS存储

结合抓包分析了一下,米家App在设置NAS存储的流程是这样的:

  1. 用户第一次打开NAS存储的设置页,触发摄像机搜索局域网的NAS设备(局域网广播,NBNS协议)。

  2. NAS设备在收到广播后,进行响应。

  3. App出现NAS的设备列表,选择一个输入账号密码,选择存储路径,开始文件同步。

第一第二步是为了提升用户体验,避免手工输入ip地址进行的“用户体验优化”,实际上是非必要的。我印象中去年还是前年的时候,这个地方就是手工输入IP地址的,现在变了。

准备工作

经过一系列摸索,由于小米摄像头只支持SMB1,并且不支持传输加密(这个是网上很多文章没有提及的,坑了我很久),因此在配置前请先完成以下工作(下面以群晖为例):

打开「控制面板」->「文件服务」->「SMB」->「高级设置」的常规选项卡,「最小 SMB 协议」选择 SMB1,传输加密模式选择「由客户端定义」,保存,如下图。

跨网段环境下,小米摄像机配置NAS存储

解决方案

方案一:局域网广播转发

优点:是个普适性的解决方案,不仅仅是为了米家摄像头。利用此工具顺便可以把 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存储

如果只是为了米家摄像头的NAS设置的话,只要单向转发就可以啦,并且在设置完毕之后就可以结束进程了。

方案二:通过 miiocli 直接写入配置

优点:视频储存时长相比App来说多了半年和一年两个选项(可能和摄像头型号有关)。另外还有其他功能可以探索。

缺点:需要在命令行工具里输入米家账号和密码,在意隐私的同学可以去检查下源代码,应该问题不大;另外因为设备原因,偶尔会出现无法连接的现象,并且出现之后必须重启设备才能恢复正常。

(写入SMB配置的功能刚提交PR,还未合入和发布,请耐心等待跨网段环境下,小米摄像机配置NAS存储

需要有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:pass@192.168.40.2/camera" realtime quarter

set_nas_config后面共4个参数,第一个on/off代表开关,第二个是smb的路径,按照标准的url格式填,第三个上传间隔realtime/hour/day,第四个储存时长week/month/quarter/halfyear/year。

方案三:SMB套娃(不推荐)

把远端的群晖文件夹挂载到本地路由器上,本地路由器再开启SMB服务共享此文件夹。

一开始我就是这么操作的,实测传输性能比较慢,十分不建议,陆陆续续同步了一个礼拜。跨网段环境下,小米摄像机配置NAS存储

其他

设置永久储存

储存时长三个月也好,一年也好,都不是永久的。每次同步前摄像头都会把NAS里过期的录像给删了。如果你想存一辈子怎么办?跨网段环境下,小米摄像机配置NAS存储

很简单,首先单独给小米摄像头创建一个群晖账户(具体不讲了),然后修改他的权限,让他只能读写,不能删除跨网段环境下,小米摄像机配置NAS存储

在「控制面板」->「用户与群组」->「用户账号」页面选中这个账户,点击「编辑」->「权限」修改账户权限,对需要设置权限的文件夹勾选「自定义」,如图:

跨网段环境下,小米摄像机配置NAS存储

在接下来弹出的「权限编辑器」窗口,取消选中「删除子文件夹和文件」和「删除」这两项,保存,大功告成。

跨网段环境下,小米摄像机配置NAS存储

解决无法定期同步的Bug

不知道各位有没有遇到同样的问题,我的摄像头开启NAS存储后,只会把当前SD卡的视频进行同步,同步完毕后任务就结束了,上传时间间隔不管是实时、一小时、还是一天,都不生效,这还玩个啥呀跨网段环境下,小米摄像机配置NAS存储 。好在有miiocli工具,我们可以设置一个定时任务,每天重新开启一下。周期建议不要太短,每次开启后摄像头会做许多前置工作(登录SMB,获取目录和文件信息,滚动删除过期的视频,然后才上传最新的视频),略耗时。

核心命令就是下面这句,至于定时任务怎么配置就不说啦,以及运行环境是在群晖里还是docker容器里各位自行决定:

miiocli chuangmicamera --ip [摄像头IP地址] --token [摄像头Token] set_nas_config on "" realtime quarter

参数介绍请回顾上文方案二,这里第二个参数可以留空,也就是""(两个双引号或者两个单引号),不能删掉,删掉就少了一个参数。留空表示不对NAS存储位置进行修改。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

Synology 群晖 DS1522+ 锐龙版 5盘位 NAS网络存储服务器 (标配无硬盘 )

Synology 群晖 DS1522+ 锐龙版 5盘位 NAS网络存储服务器 (标配无硬盘 )

6300元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2321.48元起

Synology 群晖 DS918+ 四盘位NAS(J3455、4GB)

Synology 群晖 DS918+ 四盘位NAS(J3455、4GB)

暂无报价

Synology 群晖 DS218+ 2盘位NAS (RTD1296、2GB)

Synology 群晖 DS218+ 2盘位NAS (RTD1296、2GB)

3755.65元起

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3285元起

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

6645元起

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

3680元起

Synology 群晖 DS218j 2盘位NAS(Armada 385 88F6820、512MB)

Synology 群晖 DS218j 2盘位NAS(Armada 385 88F6820、512MB)

1328.85元起

Synology 群晖 DS220J 2盘位NAS (RTD1296、512MB)

Synology 群晖 DS220J 2盘位NAS (RTD1296、512MB)

1400元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

3780元起

Synology 群晖 DS418play 4盘位NAS(赛扬J3355、2GB)

Synology 群晖 DS418play 4盘位NAS(赛扬J3355、2GB)

3850元起

Synology 群晖 DS216play 2盘位NAS (STiH412、1GB)

Synology 群晖 DS216play 2盘位NAS (STiH412、1GB)

2250元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8700元起

Synology 群晖 DS218 2盘位NAS (RTD1296、2GB)

Synology 群晖 DS218 2盘位NAS (RTD1296、2GB)

2200元起

Synology 群晖 DS1520+ 5盘位NAS (J4125、8GB)

Synology 群晖 DS1520+ 5盘位NAS (J4125、8GB)

4354.63元起

Synology 群晖 DS1019+ NAS存储服务器 黑色

Synology 群晖 DS1019+ NAS存储服务器 黑色

5900元起
103评论

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章