穿透局域网,用网页远程登录自己的树莓派

太长不看版

IOT 设备处于远在千里之外的 内网环境,不想去现场调试,用自己设计的内网穿透系统在家躺平 远程外网登录 运维。

做出来的系统长这样:

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

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

待我再完善下,可以将此系统开放出来给大家用。我后续也会分阶段给大家介绍这个内网穿透系统的实现原理。

正文

在我之前一篇介绍“内网穿透”的文章里,介绍了不少可以实现外网登录内网环境树莓派的方案。

@see 树莓派内网穿透方法大全

就自己个人来说,用 ngrok 比较多,但它的免费版只提供随机公网域名和一条在线通道。只要机器一重启,公网域名就换了,非常不方便。而需要重启树莓派的情况实在太常见不过了:拔插头、换卡、换系统、死机重来…

打钱给 ngrok 升级?最便宜也要一个月 5 刀,那当然更是不可能的。


说完个人情况,再来聊聊工作上的一些事。

我用了一些树莓派来做边缘计算基站。边缘计算嘛,当然要离用户越近越好,但这也意味着基站离我十万八千里。而且基站都处于局域网环境,只能在现场调试安装,外网环境是无法穿透到内网去远程管理基站的。

在没有完备的 IOT 设备接入管理平台之前,基站出了问题,就得肉身到现场调试。这是非常累人的。怎么办,设备接入管理平台也是个大课题,不是今天说要明天就有的。

于是我萌生了一些想法,旨在减少肉身移动的次数,最好在家躺平就能解决十万八千里之外的基站的问题。


回到内网穿透这个话题。如果有一种内网穿透方案,能安全地、稳定地、方便地管理自己名下的设备,即可部署在基站的内网环境,实现外网穿透管理。

于是我考察了一些比较常见的内网穿透方案:

  • 路由器端口映射:安全性不足、无法保证公网 IP 稳定。否决
  • 花生壳:商业软件,批量部署钱包要完。否决
  • ssh 反向隧道:方案过于简陋,要达到较好的稳定性和可维护性还需要做太多工作。否决
  • ngrok:和花生壳一样的问题,批量部署钱包要完。否决
  • ngrok 开源版:太懒不想看代码,凭第六感认为不行。否决
  • frp:开源方案,功能和性能都很好,但设备接入鉴权粒度比较粗,不同用户名下的设备无法隔离。待定

考察下来,只有 frp 稍微合适一点,但由于“设备接入鉴权粒度比较粗”的问题,距离我心目中理想的样子还差一点。要 fork 下来魔改么?有点懒,不想去研究 frp 源码。

那怎么办?当然是自己设计一个内网穿透系统!

这是一个反向代理模式的内网穿透系统。内网设备主动连接通道服务器,并保持连接。外网客户端登录通道服务器后,即可选择一条内网连接进行数据交换,于是便完成了内网穿透。

通道服务器充当了信使的角色:内网设备把数据提交到服务器,由服务器转交外网客户端;外网客户端也把数据提交到服务器,由服务器转交内网设备。


按照上面的思路,我花了点时间实现了第一版内网穿透系统。

  • 安装在内网设备上的代理客户端 pt-agent:

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

是的,除了树莓派,还兼容 Linux 和 Darwin(mac) 系统。

  • 选一个在线设备,连接终端:

这是个全功能终端,可完整响应 F1~12ctrl-cctrl-d 等快捷键。

待我再完善下,可以将此系统开放出来给大家用。我后续也会分阶段给大家介绍这个内网穿透系统的实现原理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值