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

2022-08-06 21:53:02 340点赞 2270收藏 181评论

背景

我的网络结构是这样的:

跨网段环境下,小米摄像机配置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 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2829元起

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

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

2179元起

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

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

2190.84元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4079元起

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

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

8899元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1529元起

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

4899元起

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

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

7196元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1399元起

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

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

4099元起

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

13746元起

Synology 群晖 DS416 企业级 NAS网络存储

Synology 群晖 DS416 企业级 NAS网络存储

暂无报价

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

3179元起

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2279元起

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

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

3090元起

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

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

6899元起
181评论

  • 精彩
  • 最新
  • 这是我不花钱就能看的吗? [邪恶]

    校验提示文案

    提交
    在张大妈潜水好像也有四五年了,今天突然有兴致了来水一贴 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 期待wg 异地组网教程

    校验提示文案

    提交
    这个应该还好,就是繁琐点 [高兴]

    校验提示文案

    提交
    用docker做服务端基本就是复制粘贴几行命令,dockerHub上都写好了,各个平台也都有官方现成的软件可以直接下载导入配置就能用

    校验提示文案

    提交
    还有11条回复
    收起所有回复
  • 买支持onvif的摄像头吧。这个是实在没办法的办法,占用摄像头性能。有些情况会卡死。一直显示传输中 , 传输出来的视频文件也不方便查看, onvif 的可以随意拖动时间条同时查看多个摄像头!

    校验提示文案

    提交
    下次一定,先把手上几年前买的给折腾一下 [脸红]

    校验提示文案

    提交
    有推荐的型号吗

    校验提示文案

    提交
    还有8条回复
    收起所有回复
  • 局域网跨网段把两个设备的子网掩码设置成255.255.252.0试试
    我们两个网段这样可以互通

    校验提示文案

    提交
    那就要手动设置各个设备了,我有空试试

    校验提示文案

    提交
    通过L3隧道是不行的。广播过不去。

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 小米摄像头不支持onvif 或者rtsp嘛?

    校验提示文案

    提交
    我这个是小白智能摄像机青春版,应该是不支持,没法用群晖的监控那套了

    校验提示文案

    提交
    TP-LINK摄像头支持onvif ,视频可直接存群辉,不过onvif只支持h264格式。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我就是用了套娃的这种方式 虽然慢了点 可是摄像头数据也不大 足够了

    校验提示文案

    提交
    嗯嗯,也能用,不寒碜,就是心里觉得有点难受。。。于是有了这篇文章

    校验提示文案

    提交
    我是偶尔有重要的,开启群晖同步一下。然后把不需要的按日期删除。唯一不好处就是不能选择时间段备份。估计也没人和官方提意见

    校验提示文案

    提交
    收起所有回复
  • 转发广播emmm似乎会带来不必要的网络开销,而且一但转发了DHCP之类的可能会产生其他问题。
    话说我的网络环境中也有类似需求,目前是在三层vxn链路上做eoip桥,使特定的一个网口与对端二层相通,dhcp之类的也由对端提供。实测100M移动和100M联通,可以稳定的跑IPTV(消耗约20M带宽)。其实我也试过直接打eoipv6桥,由于不限速,效果可以更好

    校验提示文案

    提交
    这个工具可以只转特定端口的广播,应该对dhcp就没啥影响了吧?eoip第一次听到,我去学习学习

    校验提示文案

    提交
    收起所有回复
  • 小米哪几款摄像头支持转群晖啊?

    校验提示文案

    提交
    具体不清楚诶,我的是小白智能摄像机青春版,好多年前的了,你已经买了的话app的设置里找找看吧

    校验提示文案

    提交
    我的云台pro。小白摄像机都支持。不过小米用的smb1协议,别的摄像头用通用协议的多。群晖也支持别的协议摄像头,就是他自己带一个摄像头。还是通用协议好啊

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 小米智能门锁的视频可以自动保存到NAS吗?

    校验提示文案

    提交
    你找找app设置里有这功能不?有应该就可以

    校验提示文案

    提交
    没有啊!只有让我花钱保存在小米云端的选项

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 最近才把小米路由器2 1T卖了。小米的摄像头要怎么保存到WinServer上的硬盘上?SMB共享的。不会抓包 [邪恶]

    校验提示文案

    提交
    不用抓包,只要你的SMB服务器最低支持SMB1,并且不强制要求通道加密就可以了。不知道也没关系,按方案一或者方案二试下看看。

    校验提示文案

    提交
    就是你写得那么简单明了。看不懂啊。需要详细的 [尴尬]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我不会用这些需要经过第三方服务器的监控,不知道会不会被直播成网红

    校验提示文案

    提交
    照照室外还行吧,室内尤其我是我是肯定不能接受的

    校验提示文案

    提交
    问题是你自己组网的技术能力不一定会比小米的安全,如果可以外网查看的话,被攻击一般的都会暴露。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 居然有跟我相同问题的,你解决了,我换地址了

    校验提示文案

    提交
    说明这个app产品经理的设计真的有问题 [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 我把阿里云盘映射到了本地,摄像头直接写入云盘。。。。。

    校验提示文案

    提交
    我不敢存公有云,要存也是私有云加密同步上去了

    校验提示文案

    提交
    店铺门口的监控,无所谓了

    校验提示文案

    提交
    收起所有回复
  • wg是啥?

    校验提示文案

    提交
    自己联想,这里不让说 [皱眉]

    校验提示文案

    提交
    同问

    校验提示文案

    提交
    收起所有回复
  • 我的云台Pro版实时同步到群晖一点问题都没有啊

    校验提示文案

    提交
    我的死活不同步,有bug可能是

    校验提示文案

    提交
    我的大方也死活无法同步

    校验提示文案

    提交
    收起所有回复
  • 异地组网?没研究过,有啥好处没

    校验提示文案

    提交
    看你有没有需求啦,没需求就用不到了。如果需要访问异地的服务,相比于每个端口都映射到公网,这个安全性肯定是会好一点的,公网暴露的东西越少越好

    校验提示文案

    提交
    收起所有回复
  • 大方不支持吗?我用楼主讲的方案2 报错。
    miio.device:Found an unsupported model 'isa.camera.df3' for class 'ChuangmiCamera'. If this is working for you, please open an issue at 去看看

    校验提示文案

    提交
    这个只是warning,不一定不支持。不过方案二的代码我提交了原作者还没有合入,现在还不支持写入smb配置 [高兴] ,你可以先试试其他功能是否正常?get_nas_config之类的

    校验提示文案

    提交
    getconfig可以用。我得等原作者合并代码了~

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我可怜的小米摄像头折腾下就进不去nas设置页面了Setting NAS config to 'On'
    WARNING:miio.device:Found an unsupported model 'mijia.camera.v1' for class 'ChuangmiCamera'. 给了这个警告,然后nas设置页面就进不去了,恢复出厂升级固件版本都没用,查询nas配置
    {'share': None, 'state': 4, 'error_code': 22, 'sync_interval': 300, 'video_retention_time': 7776000, 'last_sync_time': 0},不支持能否不改写啊,这样直接把我摄像头整废了啊

    校验提示文案

    提交
    不要慌,整废是不大可能的,我也经常进不去页面,已经习惯了 [喜极而泣] [喜极而泣] ,多试试,先打开一下sd卡页面再去nas页面感觉成功率高一点。。。还是不行重启下设备 [皱眉]

    校验提示文案

    提交
    警告只是你的型号没有加到支持列表里,不代表一定不支持,可以忽略

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 这个小白摄像头有个BUG,不知道你们有没有遇到?我是家里一台miniPC装win7 24小时开机硬盘samba共享作为存储使用的,这个小白摄像头设置nas网络存储后,会显示传输准备中,但是实际上已经在正常传输了,即使过几个小时再看,也还是传输准备中。有时候摄像头自己手动断电重启,nas设置会丢失。需要重新配置。

    校验提示文案

    提交
    是的。可能你sd卡里视频太多了,或者卡有点问题,我在格式化一遍之后就正常了,也不需要定期重新开启开关了 [高兴]

    校验提示文案

    提交
    收起所有回复
  • NAS存储的IP怎么看呀,getconfig返回的数据是这样的(addr=18852032),addr字段看着不是IP,我的设备信息是:小米摄像机云台2K版;Model: chuangmi.camera.029a02;Hardware version: Linux;Firmware version: 4.1.6_0329

    校验提示文案

    提交
    路由器里找找就有啦,一般家用路由器里都有个设备列表的

    校验提示文案

    提交
    作者你好,我看github里你那笔提交是不是没被合进去

    校验提示文案

    提交
    还有8条回复
    收起所有回复
提示信息

取消
确认
评论举报

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

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
2.2K
扫一下,分享更方便,购买更轻松