相关背景
这是一个加速的时代,传统的软件开发瀑布方法早已落后;敏捷开发的方法也在不断进步。对于嵌入式软件的开发而言,设备的运行环境经常是难以获取的;开发人员和测试人员经常在模拟现场条件花费较多的精力。为了快速实现设备侧的功能,理想情况下需要方便地连接到远程的嵌入式设备。为了达到这个目的,内网穿越工具是十分必要的。或许我们应当更进一步,在内网穿越工具的基础上,改进嵌入式软件开发方法和流程,例如在《Software Architecture Metrics》一书中,作者引用了《加速(Accelerate)》一书中提到软件开发的四个标度:
- 部署频率(Deployment Frequency)
- 开发更变周期(Lead time for changes)
- 更变失败率(Change failure rate)
- 故障恢复时间(Time to restore service)
前两个标度被作者称为“开发效率”(Development Throughput);后两个标度称为“服务稳定性”(Service Stability)。对于处于内网环境的嵌入式设备,在内网穿越工具的帮助下,我们可以轻易地接触到现场环境,从而实现更高频率的软件更新,缩短某个特性开发验证到部署的周期;在发生故障时,尽快恢复现场的软件运行。正如《加速》一书作者提到的,软件开发人员应与运维部署人员紧密协同合作,从而实现高效的软件开发,为客户提供稳定的软件服务。
内网穿越工具常用于OpenSSH端口的代理访问,对于带有Python解析器的设备或服务器,建议使用Ansible之类的运维部署工具,可以简易地实现对设备的批量监控、软件更新等操作。
内网穿越工具bore
笔者Fork了开源的内网穿越工具bore,做了必要的修改,适合用于嵌入式Linux设备的反向代理。相比于rathole穿越工具,bore的实现更为简洁,相应的功能要比rathole逊色许多,例如它仅支持对设备侧的一个IP地址和端口的代理。尽管如此,它的功能也是完备的。本文主要记录笔者在家用路由器上演示bore工具的使用。
笔者的路由器是安装了openwrt系统的小米4A路由器,它的核心是四核的MT7621芯片。由于Rust


1200

被折叠的 条评论
为什么被折叠?



