2020-03-15 21:54:31
小米摄像头跨局域网NAS存储
TOP 如下
这个问题其实很早就存在,一直没有时间解决,曾经致电小米。对方说不支持,需要购买他们的云服务。小米摄像头论坛转下来,同样的需求很多,但是都没有解决方案,只能自己研究。
这里面遇到的最大问题是米家APP扫描局域网上的SAMBA设备,如果没有扫描到,那么就不能访问,也不支持IP访问,只能使用NETBIOS名称访问。
我的第一版方案是 openwrt 挂载NAS1的webdav目录,然后通过SAMBA共享出去,这样小米摄像头的确可以访问到,但是仅仅只能访问,只要一读写就卡死了。
第二版方案为直接端口映射
NAS1:139<—>114.114.114.114:65139<—>Openwrt:139
NAS1:445<—>114.114.114.114:65445<—>Openwrt:445
FRP的配置这里略过…
可以直接在官网查看非常详细的说明
https://github.com/fatedier/frp
重点就在这里 因为米家的APP只支持NETBIOS名称访问,不支持IP访问,在武汉局域网二中使用PC机直接输入\\192.168.254.254就可以访问,而米家的APP不行。
期间想了两个三个办法都已失败告终
一、利用openwrt自带的SAMBA服务,新建一个同名的NAS1服务。然后摄像头访问openwrt:445就转发到阿里云:65445
失败的原因是:openwrt自带的SAMBA服务设置的NETBIOS名称不起作用
二、利用群辉openwrt拨号到阿里云获得VPNIP:10.11.10.5
openwrt也拨号到阿里云获得VPNIP:10.11.10.6
这样他们就在一起局域网中。从PC 192.168.254.112的资源管理器中输入10.11.10.5 可以访问NAS1但是,米家APP中任然不能访问
失败的原因是:通过抓包得知netbios name 广播不能夸网段,openwrt转发不了广播
三、安装一台WINS服务器,
并手工注册添加对应关系 192.168.254.254 NAS1,修改OPENWRT的DHPC参数44,192.168.254.131
在windows 浏览器上输入\\NAS1 可以访问。但在米家APP上还是不访问。
失败原因:通过抓包分析 米家APP需要和samba的137端口互动,
米家APP首先会发送UDP:137的广播包到192.168.254.255的广播地址,
让后等待活动的SAMBA服务器回应,并不走wIns解析,米家的NETBIOS只支持广播这一种模式。WINS无用武之地。
事前就此陷入僵局。
后来仔细想了想,openwrt为什么samba的137端口没有广播发出来,是不是和防火墙的端口转发冲突了,两个139 两个445的端口 优先级是什么样的,是本地的优先级高,还是转发的优先级高。
我知道大部分防火墙或者路由器都是NAT的优先级最高,转发也属于NAT的一种,也就是说当我开启转发的时候,本地的SAMBA是失效的。
明白这个问题之后,我开始了几个操作
一、openwrt 关闭端口转发
二、建立同名NETBIOS 服务保存之后,重启路由器,让openwrt的samba先正常工作
三、手机端进入米家APP的NAS存储,刷出NAS1的存储名称,然后打开防火墙的端口转发
输入正确的用户名和密码。米家摄像头和群辉NAS建立连接开始工作。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k8XE7bht-1612590888818)(…/images/B827A1CE.jpg)]
所有配置如下
群辉NAS的 FRPC 配置文件
frpc.ini
写个脚本并加入群辉的计划任务。每5分钟运行一边
#!/bin/bash
counter=$(ps -ef | grep frpc | grep -v grep | grep -v check_frpc | wc -l)
echo "Number of frpc processes in current system:$counter"
if [ "X$counter" == "X0" ]; then
#Try to restart
nohup /usr/local/frp/frp_0.34.2_linux_amd64/frpc -c /usr/local/frp/frp_0.34.2_linux_amd64/frpc.ini >/dev/null >2&1
sleep 5
fi
云主机的FRPS配置
Openwrt 的配置(特别重要,步骤不能错。配置好了之后只要不重启都无所谓)
第一步 配置防火墙区域转发,这个不能错
第二步配置 防火墙端口转发,注意:配置完整后不要启用,去掉勾选,并保存应用
第三部步 配置同名SAMBA
保存并应用,然后重启openwrt
四、手机端进入米家APP的NAS存储,刷出NAS1的存储名称,然后打开防火墙的端口转发点击保存并应用。
输入正确的用户名和密码。米家摄像头和群辉NAS建立连接开始工作。
这个方案的优点是不用修改摄像头本身的任何设置,从设置成功之后,摄像头重启 网络中断等都可以自动恢复来看,米家不是不支持IP直接访问,压根就是故意这样设计的,就是想多卖他的云服务。 nas建立之后,会把IP记录在配置文件中,重启路由器也无所谓了
网上看了几个同步NAS的帖子
[https://www.zybuluo.com/zwh8800/note/619810
](https://www.zybuluo.com/zwh8800/note/619810)还有修改米家摄像头的固件,通过rstp控制摄像头的
https://bbs.hassbian.com/thread-3744-1-4.html
https://github.com/Filipowicz251/mijia-1080P-hacks
在研究这个同时,附带了解决一些问题,群辉open的升级
openwrt下open的LAN–LAN连接。这个会单独写日记
评论(0)
ia-1080P-hacks
](https://github.com/Filipowicz251/mijia-1080P-hacks)
在研究这个同时,附带了解决一些问题,群辉open的升级
openwrt下open的LAN–LAN连接。这个会单独写日记
评论(0)
写在后续,群辉更新到DSM7.1 之后,发现摄像头链接不上了,
通过 一层层的抓包,发现,openwrt 有流量转发,frps服务器也有流量转发,
NAS也有流量转发,说明网络层是通的,但是摄像头识别不出来NAS的SMB。因此怀疑可能是协议的问题。
群辉的SMB协议要选SMB1否则小米摄像头认不出来。