你家摄像头在打洞:P2P 穿透怎么绕过路由器
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
摄像头插上电,扫码,人在外地也能看。 你没做端口映射,路由器也没有公网 IP 。 画面怎么进来的? 不是摄像头有魔法。 是它在你看不见的地方,打了一个洞。 扫码之后,摄像头先去找“介绍人”家用路由器像小区门卫:里面的人可以出去,外面的人不能随便进来。 摄像头要远程访问,第一件事不是等你去连它,而是它主动连出去。 它先连上厂商的 P2P 服务器,隔几秒发一次心跳。服务器由此知道:这台摄像头现在从哪个公网 IP 、哪个端口出来的。 你扫码, App 拿到设备 ID ,也去问同一台服务器:这台摄像头在哪? 服务器把双方地址一交换,摄像头和手机就同时往对方的公网地址发 UDP 包。 门卫看到“里面的人先往外寄过信”,就记住这次通信,回信才放行。 这就是 UDP 打洞。 它打的不是路由器上的一个永久洞,而是一条有时效的 NAT 映射。 STUN 、 ICE 、 TURN 这些词,就是把这件事标准化。
打洞不是每次都能成功NAT 有好几种脾气。 锥形 NAT 比较好说话:同一个内网地址出去,映射比较稳定,别人按这个地址回包,它认。 对称 NAT 更难缠:你访问不同的目的地,它给你换不同的端口。双方拿到的地址对不上,洞就打不穿。 运营商级 NAT ( CGNAT )更麻烦。整栋楼、整个小区共用一个公网 IP ,你在最里面那层,连“自己家的公网地址”都不完全由你控制。 2026 年 ProbeLab 在真实网络上测了一轮打洞:端口受限锥形 NAT 成功率 82.9%,对称 NAT 只有 39.7%,总体大约 70%。ProbeLab 2026[1] 这是 IPFS 网络的测量,不是家用摄像头。但 NAT 打洞的机制一样,数字可以当量级参考。 打不通怎么办? 走中继。 摄像头和手机都主动连到厂商的 TURN 服务器或私有中继,由它转发。两个人都能出小区,就在外面找个邮局互相转寄。 能用,但多一跳:延迟可能更高,带宽由厂商承担,所以有些云服务会限速、限画质,或者干脆让你买套餐。
所以有些摄像头在 4G 下特别卡,不一定是信号差。 可能是它没打穿,正在绕远路。 本地存储,不等于本地观看很多摄像头写着“本地存储”:插 SD 卡,或者接 NVR 。 听起来画面完全不出门。 但“存”和“看”是两件事。 录像可以存在本地,远程查看仍然要经过厂商服务器做介绍人;推送通知、缩略图、账号同步,也可能走云。 SEC Consult 对 Eufy 摄像头的长期观察就发现:设备宣传本地存储,但录像缩略图仍然传到 AWS ,部分控制信令也要经过云。SEC Consult[2] 这不是说 Eufy 一家有问题。很多“本地存储”摄像头,都是“本地录像 + 云端信令”的混合体。 你可以做个简单测试:把摄像头的公网访问断掉,只留局域网。 如果本地 RTSP 还能看,说明它至少有本地通道;如果 App 里连局域网预览都打不开,那它依赖的可能不只是存储,而是整套云。 顺带说一句: P2P 本身不是后门。 它是 NAT 穿透的正常手段。问题在于,它让设备主动连出去,绕过了“外面不能随便进来”的入站防火墙。设备认证弱、固件旧、密码是默认的,攻击面就会被放大。 RFC 5128 在安全考虑里也专门提醒: P2P 连接如果缺少认证,可能被劫持或中间人攻击。RFC 5128[3] 洞是门卫开的。 但门里是谁,得设备自己认。 怎么判断你家的摄像头靠不靠云先声明:只测自己的设备,别去扫别人的摄像头。 测试一:断公网,留局域网。 在路由器上把摄像头的 WAN 访问关掉,手机连同一个 Wi-Fi ,看 App 能不能本地预览, RTSP 能不能拉流。 测试二:看它连了谁。 Linux 下可以抓一下 UDP 3478 ( STUN )、 5349 ( TURN ),以及厂商常用端口:
测试三:看本地开了什么端口。
测试四:关 UPnP 。 有些摄像头会通过 UPnP 让路由器自动开端口。省事,也省掉了你手动确认那次。关掉 UPnP ,看远程访问还正不正常。 很多人第一次发现摄像头有“云依赖”,不是在说明书里,而是宽带断掉那一刻: SD 卡还在录,手机却打不开。这个反差,比任何参数都直观。 想少依赖云,怎么改优先选支持 RTSP/ONVIF 的摄像头。 能本地拉流,才有后面的选择权。 本地录像交给 NVR 、 Frigate 、 Home Assistant 。 画面不出门, AI 也在本地跑。 把摄像头放进独立 VLAN 。 它可以访问 NVR ,但别让它随便访问内网其他设备。 远程访问用 VPN ,不要端口映射。 WireGuard 、 Tailscale 都比把 554 端口暴露到公网安全。 必须用云,就选能关云、能本地 RTSP 、支持端到端加密的。 直连不等于自动加密,中继也不等于一定被看;但中继方至少能看到元数据,内容是否可见,取决于加密实现。 改掉默认密码,更新固件,关掉不需要的 P2P/远程功能。 这三件事比换一个“更安全的品牌”更实际。 我的选择是:家里能走本地就走本地,远程用 VPN ;云只保留推送,不把唯一入口交给厂商。不是不信任厂商,是不想把“能不能看”这件事绑在别人的服务上。 打洞的尽头,是信任P2P 打洞是个很聪明的工程:不改变 NAT ,不要求公网 IP ,让两个躲在门后的人互相寄信。 代价是,你把“介绍人”和“邮局”的位置,交给了厂商。 你可以接受这个代价,图个方便。 也可以自己搭本地通道,接受配置成本。 但至少要知道:那条画面,是直着过来的,还是绕了一圈。 下次扫码看家里,别只看画面。 想一想,这个洞,是谁帮你打的。 你家摄像头断网后还能看吗?有没有遇到过“本地存储、远程却卡成 PPT”的情况?评论区聊聊。想进群一起折腾,点公众号菜单「读者群 / 技术群」。 参考链接 [1] ProbeLab 2026: https://probelab.io/blog/can-libp2p-punch-through-nats/ [2] SEC Consult: https://sec-consult.com/blog/detail/the-eufycam-long-term-observation/ [3] RFC 5128: https://www.rfc-editor.org/rfc/rfc5128.html 阅读原文:原文链接 该文章在 2026/10/27 11:35:35 编辑过 |
关键字查询
相关文章
正在查询... |