花生壳无法登陆(穿透局域网,用网页远程登录自己的树莓派)

花生壳无法登陆
太长不看版IOT 设备处于远在千里之外的 内网环境,不想去现场调试,用自己设计的内网穿透系统在家躺平 远程外网登录 运维。
做出来的系统长这样:
基于网页的后台系统,可以看到在线设备列表:

选一个在线设备,连接终端进行操作:

待我再完善下,可以将此系统开放出来给大家用。我后续也会分阶段给大家介绍这个内网穿透系统的实现原理。
正文在我之前一篇介绍“内网穿透”的文章里,介绍了不少可以实现外网登录内网环境树莓派的方案。
@see 树莓派内网穿透方法大全
就自己个人来说,用 ngrok 比较多,但它的免费版只提供随机公网域名和一条在线通道。只要机器一重启,公网域名就换了,非常不方便。而需要重启树莓派的情况实在太常见不过了:拔插头、换卡、换系统、死机重来…
打钱给 ngrok 升级?最便宜也要一个月 5 刀,那当然更是不可能的。

说完个人情况,再来聊聊工作上的一些事。
我用了一些树莓派来做边缘计算基站。边缘计算嘛,当然要离用户越近越好,但这也意味着基站离我十万八千里。而且基站都处于局域网环境,只能在现场调试安装,外网环境是无法穿透到内网去远程管理基站的。
在没有完备的 IOT 设备接入管理平台之前,基站出了问题,就得肉身到现场调试。这是非常累人的。怎么办,设备接入管理平台也是个大课题,不是今天说要明天就有的。
于是我萌生了一些想法,旨在减少肉身移动的次数,最好在家躺平就能解决十万八千里之外的基站的问题。
回到内网穿透这个话题。如果有一种内网穿透方案,能安全地、稳定地、方便地管理自己名下的设备,即可部署在基站的内网环境,实现外网穿透管理。
于是我考察了一些比较常见的内网穿透方案:
路由器端口映射:安全性不足、无法保证公网 IP 稳定。否决。
花生壳:商业软件,批量部署钱包要完。否决。
ssh 反向隧道:方案过于简陋,要达到较好的稳定性和可维护性还需要做太多工作。否决。
ngrok:和花生壳一样的问题,批量部署钱包要完。否决。
ngrok 开源版:太懒不想看代码,凭第六感认为不行。否决。
frp:开源方案,功能和性能都很好,但设备接入鉴权粒度比较粗,不同用户名下的设备无法隔离。待定。
考察下来,只有 frp 稍微合适一点,但由于“设备接入鉴权粒度比较粗”的问题,距离我心目中理想的样子还差一点。要 fork 下来魔改么?有点懒,不想去研究 frp 源码。
那怎么办?当然是自己设计一个内网穿透系统!

这是一个反向代理模式的内网穿透系统。内网设备主动连接通道服务器,并保持连接。外网客户端登录通道服务器后,即可选择一条内网连接进行数据交换,于是便完成了内网穿透。
通道服务器充当了信使的角色:内网设备把数据提交到服务器,由服务器转交外网客户端;外网客户端也把数据提交到服务器,由服务器转交内网设备。
按照上面的思路,我花了点时间实现了第一版内网穿透系统。
安装在内网设备上的代理客户端 pt-agent:

基于网页的后台系统,可以看到在线设备列表:

是的,除了树莓派,还兼容 Linux 和 Darwin(mac) 系统。
选一个在线设备,连接终端:

这是个全功能终端,可完整响应 F1~12、ctrl-c、ctrl-d 等快捷键。
待我再完善下,可以将此系统开放出来给大家用。我后续也会分阶段给大家介绍这个内网穿透系统的实现原理。

电气罐头 一个电气爱好者的折腾与独白 22篇原创内容 –> 公众号

花生壳无法登陆相关文章

赞 (0)