0x01 起因

因为公司业务的原因,给了个手机号码用来接收验证码,用来登录客户的安管平台,管理生产服务器。这对于我这种本来就是双卡的用户来说,随身带个备用机或者老人机,那是万万不能忍的。如果能够用一个东西接收短信然后发送到手机上,不就解决了这个问题了?

0x02 技术选型

1.短信接收

首先要解决的是短信接收的问题。通常的做法其实应该是找个安卓手机就可以了,利用SmsForwarder拦截短信,同时能够支持多种消息推送方式将短信转发。

不过对于我等猿类,怎么能接受如此不Geek的方案呢?

作为多年在物联网+Java+iOS等技术栈之间横跳的我来说,用一款支持4G的物联网开发板来做这个事情是再正常不过的事情了。

通过一番搜索,终于敲定,使用移远通信的EC600N来作为短信网关。

就是下面这个东西👇🏻

zabbix 短信网关 如何配置短信网关_python


这东西支持MicroPython,并且有移远比较完善的开发工具,基本上内置的库能够完成绝大部分物联网应用的开发,易用性非常高。实际上选择普通485的版本就好,拿回来之后,才发现网卡用途并不是很大,除非你的手机卡只能收发短信,没有流量。

2.短信转发

如何转发短信呢?目前我想到了两种方案

方法

优点

缺点

MQTT

灵活,多平台,能够交互

手机接收消息不方便,尤其是iOS

Bark

iOS AppStore应用,能够实时接收到通知

不支持安卓,不能支持交互,无法让开发板发短信

实际上我同时用了上面两个方案,利用Bark 并结合自建的bark-server,用手机接收短信推送。然后利用微信公众号与MQTT向开发板发命令发送短信。

3.整体架构图

zabbix 短信网关 如何配置短信网关_python_02