随身WIFI 短信转发 MQTT QQ机器人 部署指北

前言
​ 本教程使用于对Linux、Python、docker有一定基础的人群,纯小白用户有一定的上手难度,如果您为小白 请放弃本教程 请认真阅读本教程 善于利用NewBing等搜索引擎 可以在评论下方提问。

第一步 硬件准备

提示
​ 市面上随身WIFI千奇百怪,但是内部使用的方案是大差不差,本教程所使用的随身WIFI型号为 淘宝工厂版的新训随身WIFI UFI_003 512mb + 4G 组合 自带卡槽 。

1. 对棒子备份数据

​ 这段网上的教程比较多了,讲的肯定比我这个菜鸡清楚,这里推荐

高通骁龙芯片的随身wifi入门刷机教程 @伏莱兮浜 大佬的

2. 刷入Debian系统

​ 在安卓系统备份完成之后就可以刷入Debian了,首先插入棒子 在cmd输入指令 adb reboot bootloader 然后我这里刷入的是 @苏苏小亮亮 大佬 的包

​ 链接在这里:点击这里查看下载地址和文档

​ 根据介绍,直接双击 Flash.bat 就行了,然后等待棒子刷机成功。

3. 进入Debian系统

​ 刷好Debian后怎么进去呢? 我们在cmd中输入 adb shell 就可以以 root 身份进入到Debian系统,输入 sudo nmtui 可以设置棒子链接的WIFI,@苏苏小亮亮 大佬 的包里面的WIFI 配置界面是中文的,对新手比较友好。

​ 如果不想每次链接棒子都用 adb 命令,可以在链接WIFI之后输入 sudo ifconfig 查看本机的ip地址,下次进入Debian系统就可以通过ssh链接进入。

个人踩坑:

1. 刚刚刷好系统之后没有反应,输入 adb shell 或链接ssh没有反应。

​ 原因: 系统缺少USB共享网络的驱动

​ 解决办法:参考 这篇文章 中的 6.1 驱动安装 ,这里还有一个坑 可能你在 其他设备 中找不到 RNDIS 因为你的电脑把你的棒子识别成了安卓设备,需要在顶部有一个安卓设备,然后设置才能识别为 RNDIS ,之后正常装驱动就可以了。

2. 输入 sudo ifconfig 没有反应

​ 原因:在我们的环境变量里,还没有设置完整变量

​ 解决办法:

​ 如果我们输入/sbin/ifconfig/usr/bin/gcc就可以执行命令行。 为了不输入命令行的完整路径,最好给用户配置好路径。vi ~/.bash_profile里,添加PATH=$PATH:/sbin 回车 export PATH 回车 PATH=$PATH:/usr/bin 回车 export PATH。完成后,输入ifconfig后,应该就可以执行命令了,如果不行的话,可以把用户注销,然后再登录测试。

直接输入

[XXX@localhost ~]$ PATH=$PATH:/sbin
[XXX@localhost ~]$ export PATH
[XXX@localhost ~]$ PATH=$PATH:/usr/bin
[XXX@localhost ~]$ export PATH

然后再输入ifconfig就可以了。

3. 连接棒子之后卡卡顿顿

解决办法 :如果链接棒子之后卡卡顿顿,所有的原因排查过之后们可以换一个充电插头试试,可能是供电不足导致的。

4. 让系统识别到手机卡 (什么?一定要插手机卡???)

​ 这里,我参考的是这篇文章 随身wifi折腾入门(番外)-- debian优化使用 此大佬 @yanhy 这里也有使用 nmtui 链接WIFI的教程。

​ 可以总结一下我们即将用到的:

  1. ​ 首先,我们输入命令 ls /sys/class/leds/

    user@openstick:~$ ls /sys/class/leds/
    blue:wifi  green:internet  mmc0::  red:os  sim:en  sim:en2  sim:sel  sim:sel2
    

    如果显示有 sim:sel2 则可以用自己的卡 如果没有,则默认外置卡槽

  2. 输入指令mmcli -m 0,如果显示有内容但显示sim-missing ,此时则为卡槽模式,可插入自己的卡。

    如果出现这种情况:

    user@openstick:~$ mmcli -m 0
    error: couldn't find modem
    

    可以重启 sim 卡

    ​ 提前输入 su 进入 root 模式 密码 1

    systemctl stop ModemManager
    qmicli -d /dev/wwan0qmi0 --uim-sim-power-off=1
    qmicli -d /dev/wwan0qmi0 --uim-sim-power-on=1
    systemctl start ModemManager
    

    输入 exit 退出 root 模式

    重启之后输入 mmcli -m 0

    user@openstick:~$ mmcli -m 0
      -----------------------------------
      General  |                    path: /org/freedesktop/ModemManager1/Modem/0
               |               device id: 7b2e2bb7f85***********85d39bed2e4ae7c8
      -----------------------------------
      Hardware |            manufacturer: 1
               |                   model: 0
               |       firmware revision: UFI003_CT 20211210  1  [Nov 04 2016 02:00:00]
               |          carrier config: Commercial-CSFB-SS-CMCC
               | carrier config revision: 02011866
               |            h/w revision: 10000
               |               supported: gsm-umts, lte
               |                 current: gsm-umts, lte
               |            equipment id: 8603******0691
      -----------------------------------
      System   |                  device: qcom-soc
               |                 drivers: bam-dmux, qcom-q6v5-mss
               |                  plugin: qcom-soc
               |            primary port: wwan0qmi0
               |                   ports: wwan0 (net), wwan0at0 (at), wwan0qmi0 (qmi), wwan1 (net), 
               |                          wwan2 (net), wwan3 (net), wwan4 (net), wwan5 (net), wwan6 (net), 
               |                          wwan7 (net)
      -----------------------------------
      Numbers  |                     own: 86*********
      -----------------------------------
      Status   |                    lock: sim-pin2
               |          unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
               |                   state: connected
               |             power state: on
               |             access tech: lte
               |          signal quality: 73% (recent)
      -----------------------------------
      Modes    |               supported: allowed: 2g; preferred: none
               |                          allowed: 3g; preferred: none
               |                          allowed: 4g; preferred: none
               |                          allowed: 2g, 3g; preferred: 3g
               |                          allowed: 2g, 3g; preferred: 2g
               |                          allowed: 2g, 4g; preferred: 4g
               |                          allowed: 2g, 4g; preferred: 2g
               |                          allowed: 3g, 4g; preferred: 4g
               |                          allowed: 3g, 4g; preferred: 3g
               |                          allowed: 2g, 3g, 4g; preferred: 4g
               |                          allowed: 2g, 3g, 4g; preferred: 3g
               |                          allowed: 2g, 3g, 4g; preferred: 2g
               |                 current: allowed: 2g, 3g, 4g; preferred: 4g
      -----------------------------------
      Bands    |               supported: egsm, dcs, pcs, g850, utran-1, utran-5, utran-8, eutran-1, 
               |                          eutran-3, eutran-5, eutran-8
               |                 current: egsm, dcs, pcs, g850, utran-1, utran-5, utran-8, eutran-1, 
               |                          eutran-3
      -----------------------------------
      IP       |               supported: ipv4, ipv6, ipv4v6
      -----------------------------------
      3GPP     |                    imei: 860********691
               |           enabled locks: fixed-dialing
               |             operator id: 46000
               |           operator name: CMCC
               |            registration: home
      -----------------------------------
      3GPP EPS |    ue mode of operation: csps-1
               |     initial bearer path: /org/freedesktop/ModemManager1/Bearer/0
               |  initial bearer ip type: ipv4v6
      -----------------------------------
      SIM      |        primary sim path: /org/freedesktop/ModemManager1/SIM/0
      -----------------------------------
      Bearer   |                   paths: /org/freedesktop/ModemManager1/Bearer/1
    

    看到显示 connect 表示 sim卡已经连接,可以正常使用了。

5. 安装Python环境以及运行程序 人生苦短,我用Python

​ 安装python环境 输入指令 sudo apt install python3

将程序上传到棒子中(这里我用的是 `Termius`):
  1. 点击这个SFTP 然后连接上自己的棒子,把我的程序(Sms.py),在自己的 home 文件夹中创建一个自己知道的文件夹,创建文件夹的时候也可以像我一样在命令行中操作
cd ~
mkdir Sms
cd Sms

然后找到自己创建的文件夹,把python文件拖进去。

# 短信转发的处理函数

def msg_forward(text):
    ret = True
    try:
        #链接服务器
        client = mqtt.Client()
        client.connect( <这里填写你的MQTT服务器的 ip 和 端口号> )
        client.publish(<这里填写你的主题>, text)
        client.disconnect()
    except Exception:
        ret = False
    return ret

这两个地方一定要填写!!!

  1. 运行程序

    user@openstick:~$ cd Sms/
    user@openstick:~/Sms$ ls
    Sms.py  test
    user@openstick:~/Sms$ sudo python3 Sms.py
    短信转发开始运行!
    

    当出现 短信转发开始运行! 的时候,说明程序运行成功了,这时我们可以向手机卡发送短信,接收到的短信会显示在终端中,但是现在还有一个问题,如果我们关闭这个终端,程序也会随之结束,应该怎么办呢?

    输入 sudo apt install screen 安装 screen

    输入 sudo screen -R Sms 创建一个名叫 Sms 的新窗口

    进去新窗口之后再重新运行程序。

    Ctrl + Alt + D 退出窗口,程序继续运行,不会停止。

第二步 QQ机器人的配置

提示
本教程默认您已经学会 NoneBot2 的基础配置,以及依赖的安装。如果需要QQ机器人方面的教程请在下方留言哦~

1. 下载/登录 go-cqhttp

(以后可能会填坑)

​ 参考 go-cqhttp 帮助中心

2. 安装 NoneBot2 启动机器人

(以后可能会填坑)

​ 参考 NoneBot 官方文档

3. 配置插件

​ 下载我的(mqtt文件夹)插件并且放在 您的机器人目录 /src/plugins/mqtt

​ 在 bot.py 主程序中 添加代码:

.....

nonebot.load_plugins("src/plugins") # 添加这一行,在if __name__ == "__main__"上面就行

.....

if __name__ == "__main__":
    nonebot.logger.warning("Always use `nb run` to start the bot instead of manually running!")
    nonebot.run(app="__mp_main__:app")

.env.* ( 这里的 * 代表的是 dev 或者 prod ,看你在 .env 中选的是什么 ) 中添加:

#MQTT 订阅 接收消息
MQTT_TOPIC="Sms"# mqtt订阅topic
MQTT_CLIENT_ID="QQBot"# mqtt订阅clientid
MQTT_HOST="*******"# mqtt broker地址
MQTT_PORT="1883"# mqtt broker端口
SMS_QQ="*****"# 要转发的qq号

MQTT_USER # mqtt 可选验证项
MQTT_PASSWORD

第三步 MQTT服务器的安装

提示
​ mqtt服务器不建议安装在一个小小的棒子上,所以,本教程更加适合那些手边有一个闲置服务器的人群, 或者您可以把您的服务布置在公益的mqtt服务器上,但是为了您的数据安全,俺强烈 建议这样做

这里推荐用docker安装

参考 EMQX官方网站

直接运行它上面的代码就行了,傻瓜式安装。

第一次的能录密码是 账号: admin 密码: public

最后叨叨

这是我第一次写这种教程,有写的不清楚的地方还请多多见谅,希望大家都可以用上自己的短信转发~

附件下载地址:蓝奏云


随身WIFI 短信转发 MQTT QQ机器人 部署指北
http://localhost:8090//archives/g49rudcK
作者
EnderKC
发布于
2024年12月23日
许可协议