让你的树莓派和手机备号不再吃灰:短信转发

2020-03-02 18:42:46 147点赞 883收藏 199评论

写在前面

在大妈四五年,一直都是默默买买买,从来没写过文章,所以这是第一次,写得不好多多包涵让你的树莓派和手机备号不再吃灰:短信转发

作为一个居家理科男,平时除了喜欢修修补补diy,家里的日用开销也是我包干的,手上有些自己无限回购的好东西,后面看情况也跟大家做个分享,欢迎关注让你的树莓派和手机备号不再吃灰:短信转发

回归正题,手上有块3B,是当年在某鱼淘的垃圾,到手后接了一块闲置的3.5寸1TB硬盘,折腾了下载机(aria2+AriaNG的方案)、SMB、gogs,配置了免密登录和autossh反向隧道,最后写了shell脚本定期全局多介质对系统进行备份,到这份上基本就算完了。就这样放在办公室一年多,虽然性能弱鸡,但不可否认确实给工作带来了些许便利,比如我工作中写的代码都放在gogs,几百G的电影电视剧都是通过aira2下载,SMB共享给同事

直到有一天,基友给我发来了一篇知乎的文章:

树莓派能用来干什么? - 知乎

我手上正好有张联通卡,在投奔移动之后就变成了副卡,12块钱一个月养着也不贵,平时插在备机上只能用来收收垃圾短信接接骚扰电话,但有些关键短信使得我有时候出门不得不带两部手机,这个方案真的再适合不过。所以这个小项目的需求如下:

1、树莓派有条件7x24联网在线

2、基于Python

3、因为2G模块存在被短信嗅探的风险,在可控成本内尽量选用4G模块

4、转发方案必须免费稳定体验佳,一开始选的server酱,使用下来稳定性和体验上略逊,网上有tg聊天机器人的方案,国内还是首选微信吧

5、转发服务必须支持树莓系统重启后自动生效,支持长短信合并后转发,延时不能太大

下面就把过程分享给大家~

准备

一、确认你的树莓派带Python3.x

python3

让你的树莓派和手机备号不再吃灰:短信转发

二、购买通讯模块

1、投资100-150购买4G模块(移远EC20 CEHCLG mini pcie+华为pcie转USB开发板),tb某鱼大家各显神通吧,避嫌就不放链接了,基于最佳实践原则,型号尽量跟我一致吧让你的树莓派和手机备号不再吃灰:短信转发

让你的树莓派和手机备号不再吃灰:短信转发

让你的树莓派和手机备号不再吃灰:短信转发

2、如果所处环境信号较差,建议再花十几二十块钱买根增益天线,否则用gammu测试发送短信的时候会报350的未知错误,你就算找卖家技术支持也是一问三不知让你的树莓派和手机备号不再吃灰:短信转发

让你的树莓派和手机备号不再吃灰:短信转发

让你的树莓派和手机备号不再吃灰:短信转发

让你的树莓派和手机备号不再吃灰:短信转发

三、注册企业微信

点击这里注册

几点说明:

1、关于企业名称

让你的树莓派和手机备号不再吃灰:短信转发

这里的企业名称对应会显示在微信消息列表中:

让你的树莓派和手机备号不再吃灰:短信转发

2、认证需要花钱,无需认证无需认证无需认证

3、注册完成后,新建应用。步骤:“应用管理”->“自建”->“创建应用”

让你的树莓派和手机备号不再吃灰:短信转发

应用名称“联通号转发”对应显示在消息列表的企业号下:

让你的树莓派和手机备号不再吃灰:短信转发

3、完成以上步骤后,拿到以下三个关键要素

企业ID:“我的企业”->“企业信息”->页面下方有个“企业ID”

AgentId和Secret:“应用管理”->点击对应应用程序进入

让你的树莓派和手机备号不再吃灰:短信转发

折腾过程

以下配置操作都在pi用户下执行,win下的编辑器容易出现各种各样莫名的编码问题,建议直接vim:

一、部署程序

程序包以及下面需要用到的配置文件,见文末百度网盘链接

整个工具一共就两个py文件,100行代码,非常简单,本来这两个py是写一块儿的,为了方便爬虫通知的时候也能复用,我把推送微信独立了出来

gammu-smsd的官方文档其实是有问题的,导致“smsForward.py”中拼接长短信的时候总是获取不到正确的短信内容,后面自己调通了,所以这里的“smsForward.py”不需要做任何修改

1、将下载的压缩包解开,把“pushToWechat”和“smsForward”放入“/home/pi/tools”下(注意用户、组和权限)

2、修改“pushToWechat.py”

vim /home/pi/tools/pushToWechat/pushToWechat.py

把上面拿到企业微信的企业ID、应用密钥、应用ID填入:

让你的树莓派和手机备号不再吃灰:短信转发

二、把副卡插入EC20模块,把模块插入树莓派的USB。使用以下命令可以看到有 ttyUSB0~3四个设备,应该对应EC20不同的口,比如短信口或者数据口:

ls /dev/ttyUSB*

让你的树莓派和手机备号不再吃灰:短信转发

三、安装和配置gammu

1、安装gammu

sudo apt-get install gammu

2、配置gammu

sudo gammu-config

直接两个Yes跳过:

让你的树莓派和手机备号不再吃灰:短信转发

让你的树莓派和手机备号不再吃灰:短信转发

按照下图配置,保存后退出:

让你的树莓派和手机备号不再吃灰:短信转发

3、测试是否配置成功

3.1、查看设备信息

sudo gammu --identify

如果这时输出设备和SIM卡信息,说明EC20设备配置成功,否则需要修改上面第三步第2点中gammu的Port,从ttyUSB0~3逐个试,直到成功输出信息为止:

让你的树莓派和手机备号不再吃灰:短信转发

3.2、尝试发送短信

使用以下命令尝试发送短信(后面的186XXXXXXXX自行替换成接收短信的手机号),如果能收到短信,则说明配置成功,如果报错350,买天线吧让你的树莓派和手机备号不再吃灰:短信转发

echo "a test sms from ec20" | sudo gammu sendsms TEXT 186XXXXXXXX

四、安装和配置gammu-smsd,用于接收短信

1、安装gammu-smsd

sudo apt-get install gammu-smsd

2、配置 gammu-smsd

sudo vim /etc/gammu-smsdrc

贴入以下内容(我会将gammu-smsdrc放在文末百度网盘压缩包中):

# Configuration file for Gammu SMS Daemon

# Gammu library configuration, see gammurc(5)

[gammu]

# Please configure this!

port = /dev/ttyUSB3

#port = /dev/ec20

connection = at19200

# Debugging

#logformat = textall

# SMSD configuration, see gammu-smsdrc(5)

[smsd]

service = files

RunOnReceive = /usr/bin/python3 /home/pi/tools/smsForward/smsForward.py

#logfile = syslog

logfile = /home/pi/gammu/log/log_smsd.log

# Increase for debugging information

debuglevel = 0

# Paths where messages are stored

inboxpath = /home/pi/gammu/inbox/

outboxpath = /home/pi/gammu/outbox/

sentsmspath = /home/pi/gammu/sent/

errorsmspath = /home/pi/gammu/error/

关键配置项简单说明:

port:对应上面配置的设备口

service:接收后短信在本地的保存方式,这里配置为files,表示收到的短信以txt文本方式存放,当然也支持将短信存入数据库

RunOnReceive:短信收到后调用什么脚本或程序,这里是短信内容拼接后转发微信的程序,也就是“smsForward.py”

inboxpath/outboxpath/sentsmspath/errorsmspath:短信收件箱发件箱的路径,这里只关心inboxpath,收到的短信放在该路径下,文件名”IN<date>_<time>_<serial>_<sender>_<sequence>.txt“

3、手工启动gammu-smsd,并尝试接收短信

sudo gammu-smsd --config /etc/gammu-smsdrc --pid /var/run/gammu-smsd.pid --daemon --user pi --group pi

理论上,这时候用其他手机号给这个备号发短信,inboxpath下就会有txt文件生成了,请自行验证

4、配置 gammu-smsd开机自启动

sudo vim /lib/systemd/system/gammu-smsd.service

贴入以下内容(我会将gammu-smsd.service放在文末百度网盘压缩包中):

[Unit]

Description=SMS daemon for Gammu

Documentation=man:gammu-smsd(1)

After=mysql.service postgresql.service

[Service]

EnvironmentFile=-/etc/sysconfig/gammu-smsd

# Run daemon as root user

ExecReload=/bin/kill -HUP $MAINPID

ExecStopPost=/bin/rm -f /var/run/gammu-smsd.pid

Type=forking

PIDFile=/var/run/gammu-smsd.pid

ExecStartPre=/bin/sleep 30

ExecStart=/usr/bin/gammu-smsd --config /etc/gammu-smsdrc --pid /var/run/gammu-smsd.pid --daemon --user pi --group pi

[Install]

WantedBy=multi-user.target

关键配置项简单说明:

ExecStartPre:树莓派启动后,EC20设备会初始化,为了避免gammu-smsd启动先于设备初始化,这里做一个30秒的等待

通过以下命令开启开机自启动:

sudo systemctl enable gammu-smsd

gammu-smsd的启停命令:

sudo systemctl start gammu-smsd

sudo systemctl stop gammu-smsd

sudo systemctl restart gammu-smsd

5、针对gammu-smsd的关机优化脚本

实践发现EC20这块卡有个问题,树莓派系统关机前如果gammu-smsd进程还在的话,下次启动时EC20短信口因为被占用,ttyUSB编号会变,比如从ttyUSB3变成ttyUSB2,使得配置失效,所以关机前需要把gammu-smsd进程kill掉。这个问题困扰了很久,找了商家依然一问三不知让你的树莓派和手机备号不再吃灰:短信转发

sudo vim /lib/systemd/system-shutdown/kill-gammu-smsd.sh

写入以下内容(我会将kill-gammu-smsd.sh放在文末百度网盘压缩包中):

#!/bin/bash

ps aux | grep gammu-smsd | grep -v 'grep' | awk '{print $2}' | xargs kill -9

至此,所有配置都已完成,重启树莓派后,向备号发送短信,微信就能收到转发的短信,效果如下(头像是我家泰迪让你的树莓派和手机备号不再吃灰:短信转发 ):

让你的树莓派和手机备号不再吃灰:短信转发

总结

优点:

1、如果你也跟我一样,有一个半死不活的备号,不舍得注销,没有双卡双待手机,也不愿意拿两部手机出门,同时对于垃圾短信和骚扰电话头痛不已,你只需要投入百来块钱,就能使备号24小时在线做主号的挡箭牌,这真的是我目前找到的树莓派最最实用的应用,至少对于我是这样。半年多的使用,以下场景非常实用:注册垃圾网站、搪塞街头地推、网购收货取件码(京东因为是送货上门,暂时还是用的主号)。

2、稳定。这套方案完成后,全家去了趟日本,这期间主手机插日本流量卡,树莓派插国内的主号,这样一来,既不会影响在日本的流量使用,同时只要保证日本期间有网络可用,我就不会漏掉任何一条主号收到的短信。

缺点:

1、如果通过微信H5页面或者小程序注册或者短信登录,在没有登录微信PC端的前提下,操作起来就没那么方便了。虽然这种情况不多,但你可以自己感受一下让你的树莓派和手机备号不再吃灰:短信转发

2、无法接听电话。我不知道应该把这点归入优点还是缺点让你的树莓派和手机备号不再吃灰:短信转发 如果你只用来注册垃圾网站和收货,可以明确的是,你接到的电话肯定是骚扰电话,所以接不到不就达到了屏蔽骚扰电话的目的吗让你的树莓派和手机备号不再吃灰:短信转发 当然,通过EC20是可以拿到未接电话号码的,只是对我来说没那么重要,有兴趣的同学可以研究分享一下。

3、对你来说,垃圾短信并没有少让你的树莓派和手机备号不再吃灰:短信转发 期间写过基于朴素贝叶斯的垃圾短信过滤,但不知道是样本质量太差还是算法有问题,效果差强人意,后来也就作罢了让你的树莓派和手机备号不再吃灰:短信转发

程序包在这里~~~

提取码:tkzw


展开 收起

HUAWEI 华为 MatePad Air 11.5英寸 HarmonyOS 平板电脑

HUAWEI 华为 MatePad Air 11.5英寸 HarmonyOS 平板电脑

2197元起

HUAWEI 华为 MatePad 2023款 标准版 11.5英寸 HarmonyOS 平板电脑

HUAWEI 华为 MatePad 2023款 标准版 11.5英寸 HarmonyOS 平板电脑

1386.05元起

HUAWEI 华为 MatePad Pro 13.2英寸 HarmonyOS 4 平板电脑

HUAWEI 华为 MatePad Pro 13.2英寸 HarmonyOS 4 平板电脑

3265元起

华为(HUAWEI)笔记本电脑MateBook D 14 SE版 2024 13代酷睿i5 16G 512G 轻薄办公本/14英寸护眼全面屏/手机互联 皓月银

华为(HUAWEI)笔记本电脑MateBook D 14 SE版 2024 13代酷睿i5 16G 512G 轻薄办公本/14英寸护眼全面屏/手机互联 皓月银

2999元起

HUAWEI 华为 MatePad Pro 2024款 11.0英寸 HarmonyOS 4.0 平板电脑

HUAWEI 华为 MatePad Pro 2024款 11.0英寸 HarmonyOS 4.0 平板电脑

3377元起

HUAWEI 华为 MateBook D 14 SE版 2023 14英寸笔记本电脑(i5-1240P、16GB、512GB)

HUAWEI 华为 MateBook D 14 SE版 2023 14英寸笔记本电脑(i5-1240P、16GB、512GB)

3419元起

HUAWEI 华为 MateBook X Pro 微绒典藏版 Ultra 14.2英寸 轻薄本

HUAWEI 华为 MateBook X Pro 微绒典藏版 Ultra 14.2英寸 轻薄本

10999元起

HUAWEI 华为 MatePad SE 2023款 10.4英寸 HarmonyOS 平板电脑

HUAWEI 华为 MatePad SE 2023款 10.4英寸 HarmonyOS 平板电脑

708元起

HUAWEI 华为 MateBook D 16 SE版 十三代酷睿版 16英寸 轻薄本 皓月银(酷睿i5-13420H、核芯显卡、16GB、512GB SSD、1920*1200、IPS、60Hz)

HUAWEI 华为 MateBook D 16 SE版 十三代酷睿版 16英寸 轻薄本 皓月银(酷睿i5-13420H、核芯显卡、16GB、512GB SSD、1920*1200、IPS、60Hz)

3799元起

HUAWEI 华为 MatePad 2023款 柔光版 11.5英寸 HarmonyOS 平板电脑

HUAWEI 华为 MatePad 2023款 柔光版 11.5英寸 HarmonyOS 平板电脑

1479元起

HUAWEI 华为 MateBook E Go 2023款 12.3英寸 平板电脑

HUAWEI 华为 MateBook E Go 2023款 12.3英寸 平板电脑

3699元起

HUAWEI 华为 MatePad 11 10.95英寸 HarmonyOS 平板电脑

HUAWEI 华为 MatePad 11 10.95英寸 HarmonyOS 平板电脑

1299元起

HUAWEI 华为 MatePad 柔光版 2023款 11英寸 HarmonyOS 平板电脑

HUAWEI 华为 MatePad 柔光版 2023款 11英寸 HarmonyOS 平板电脑

2180元起

HUAWEI 华为 MatePad 标准版 2023款 11英寸 HarmonyOS 平板电脑

HUAWEI 华为 MatePad 标准版 2023款 11英寸 HarmonyOS 平板电脑

1749元起

HUAWEI 华为 MatePad Pro 2021款 10.8英寸 HarmonyOS 2 平板电脑

HUAWEI 华为 MatePad Pro 2021款 10.8英寸 HarmonyOS 2 平板电脑

1623元起

HUAWEI 华为 MateBook D 14 2023款 14.0英寸 轻薄本

HUAWEI 华为 MateBook D 14 2023款 14.0英寸 轻薄本

3288元起
199评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
883
扫一下,分享更方便,购买更轻松