泥潭日报 uscardforum · 内容汇总

[教程] 用 Waveshare SIM7600G-H 4G Dongle + gammu-smsd + Telegram Bot 做一个专用短信网关

内容摘要

用4G Dongle+Linux+Telegram Bot搭建专用短信网关教程

关键信息与硬件方案

楼主 uhhhh 分享了一套基于 Linux (Ubuntu Server) 和 Waveshare SIM7600G-H 4G Dongle 的短信网关方案,旨在解决国内手机号长期插电收验证码导致电池鼓包的问题。核心架构为:Dongle + gammu-smsd (后端服务) + Python Telegram Bot (前端交互)。 - 硬件:Waveshare SIM7600G-H 4G Dongle(需刷 C1S 固件以获取返现邮件)#p-7026874-h-1。推荐模块包括移远 EC20(约50元,适合美国频段)或 EG25-G(支持 VoLTE,约70元)#p-7026874-h-8, #p-7026874-h-15。 - 软件环境:Ubuntu Server 24.04 LTS,安装 gammu, gammu-smsd, python3python-telegram-bot[job-queue] #p-7026874-h-2, #p-7026874-h-61。 - 核心脚本:提供完整的 Python 脚本 (bot.py),实现短信自动转发、按关键词路由到不同 Telegram Chat/Topic、支持在 TG 内回复短信、以及 /send 命令交互式发短信 #p-7026874-h-6, #p-7026874-h-62。 - 配置逻辑:使用 files backend 将短信存入 /var/spool/gammu/inbox/,Python 脚本轮询该目录,解析文件名或文件头获取发送者号码和时间,合并长短信后通过 Telegram Bot API 转发 #p-7026874-h-5, #p-7026874-h-6。

经验与数据点

  • 电池寿命痛点:楼主连续干胀坏两台手机电池,即使使用“20%-80%”充电限制脚本或直通供电,旧手机在长期插电环境下通常撑不过半年至一年 #p-7026874-h-1, #p-7026874-h-6, #p-7026874-h-9。
  • 硬件选型建议
    • 若需打电话(VoLTE),推荐移远 EG25-G,通过美国三大运营商认证 #p-7026874-h-15。
    • 若仅收短信,Waveshare SIM7600G-H 频段最全且便宜;或闲鱼淘移远 EC20 #p-7026874-h-1, #p-7026874-h-8。
    • 树莓派供电可能不足,建议搭配外接供电 USB Hub 或使用 Dell/HP 小主机(功耗可控,性能更好)#p-7026874-h-13, #p-7026874-h-14。
  • 替代方案对比
    • 刷 OpenWrt 的安卓设备:成本极低(十几至二十元),但需较强动手能力,且部分方案仅支持转发不支持发送短信(如腾讯要求回复特定内容时失效)#p-7026874-h-39, #p-7026874-h-40。
    • 碎屏儿童手表/旧手机:虽有人尝试,但电池问题依旧存在,且安卓系统兼容性复杂 #p-7026874-h-51, #p-7026874-h-28。
    • 商业服务:淘宝上有猫池或短信转发设备,但需走第三方服务器,存在隐私泄露及服务跑路风险 #p-7026874-h-34。

争议与不同意见

  • 长期插电对电池的影响:用户 nifury 认为现代手机充满后由充电线直接供电,电池不循环充放电,20/80限制反而可能有害;但楼主实测旧手机即使如此操作也迅速鼓包 #p-7026874-h-7, #p-7026874-h-9。其他用户反馈 Pixel 或 iPhone X 长期插电数年无碍,存在个体差异 #p-7026874-h-12, #p-7026874-h-13, #p-7026874-h-27。
  • 美国频段兼容性:用户 尼古丁真 询问国内设备是否适用于美国,楼主指出 SIM7600G-H 虽频段全,但其他廉价模块可能不支持美国主要频段,导致信号差 #p-7026874-h-22, #p-7026874-h-53。
  • 计费问题:若设备放置在美国,短信费用按美国漫游或本地资费计算;若放置在国内则按国内资费 #p-7026874-h-44, #p-7026874-h-45。

风险/限制/注意事项

  • 权限配置:需将执行脚本的用户加入 gammu 组,否则无法读写 /var/spool/gammu/inbox/ 目录 #p-7026874-h-5。
  • 路径稳定性:避免使用 /dev/ttyUSBx 这种动态变化的路径,推荐使用 /dev/serial/by-id/usb-SIMCOM_... 固定路径 #p-7026874-h-3。
  • Telegram Bot 设置:需获取 Chat ID(群聊为负数,私聊为正数)和 User ID;若使用 Forum Topics,脚本会自动为每个号码创建 Topic 并映射 #p-7026874-h-2, #p-7026874-h-7。
  • 时区处理:脚本支持区分 Network Timezone(短信中心时区)和 Local Timezone,并在转发消息中同时显示两种时间,避免混淆 #p-7026874-h-7。