×

用旧安卓手机变身免费短信网关:开源项目 android-sms-gateway 完全科普指南

hqy hqy 发表于2026-03-27 16:38:15 浏览3 评论0

抢沙发发表评论

今天咱们聊聊一个特别接地气、却又超级实用的技术——把一部闲置的安卓手机,变成一台免费的短信发送和接收“中转站”。你有没有过这样的烦恼?比如家里的智能门锁需要发验证码报警、电商小店要给老客户发促销通知、或者开发者测试App的短信登录功能,却被Twilio、阿里云短信服务那些按条收费的平台坑得心疼?一条短信几分钱,听起来便宜,可批量一发就是几百上千块。更别提注册账号、实名认证、审核流程那一堆麻烦事儿。

现在,有个开源项目直接解决了这个问题:android-sms-gateway(GitHub地址:https://github.com/capcom6/android-sms-gateway)。它能把任何一部安卓5.0以上的手机,瞬间变成支持REST API的短信网关。你不用买服务器,不用租SIM卡池,不用交月费,只需要一部旧手机、一张能上网的SIM卡,就能通过HTTP请求随意收发短信,还支持Webhook实时推送。听起来像科幻?其实这就是当下开源社区最朴实的黑科技——用大家手里的“废物”,干出专业级的事儿。


图片

先从头说起:短信到底是什么?为什么还需要“网关”?

短信,全称Short Message Service(SMS),诞生于上世纪80年代末的GSM移动通信标准。1992年12月3日,英国沃达丰的工程师Neil Papworth给同事发了世界上第一条短信:“Merry Christmas”。当时谁也没想到,这短短160个字符(后来扩展到70个中文字符)的“鸡肋”功能,会在全球掀起一场通信革命。

为什么短信这么“老”却依然活得好好的?因为它有几个硬核优势:

  • • 不依赖互联网:哪怕手机没Wi-Fi、没4G/5G,只要有信号就能收到。
  • • 高可靠性:银行、政务、医疗系统都爱用它做二次验证。
  • • 全球覆盖:几乎所有运营商都支持,跨国也行。

但问题来了:个人或小团队想批量发送的时候,怎么办?手动一条条点,太累;用运营商的“企业短信”服务,又要备案、押金、审核。商业短信平台(如Twilio、MessageBird、国内的云片、融云)应运而生,它们本质上就是“短信网关”——把你的HTTP请求翻译成运营商的短信协议,再帮你发出去,顺便收手续费。

传统网关的痛点很明显:

  • • 成本高:国内一条短信0.05-0.1元,国际更贵;每月几万条就是几千块。
  • • 依赖第三方:平台宕机你就抓瞎;数据隐私还得交给别人。
  • • 灵活性差:想加Webhook推送、想多SIM卡切换、想发MMS彩信?很多平台不支持或要额外加钱。

这时候,开源社区站出来了。android-sms-gateway就是其中最亮眼的一个。它直接把“网关”搬到你手机里,让安卓手机自己当服务器,自己调用系统SmsManager API发短信,自己处理接收逻辑。等于把Twilio的云端服务,浓缩成一部掌上设备。

这个项目到底长什么样?核心功能一览

项目作者capcom6用Kotlin写了一个轻量级安卓App(APK直接下载安装),核心就两件事:本地HTTP服务器 + 云中转模式

  1. 1. 本地服务器模式(最推荐个人使用)
    手机连上Wi-Fi或热点,打开App,点“Local Server”开关。手机立刻变成一台小服务器,监听8080端口。你在局域网内(甚至公网端口映射后)用curl、Postman或者代码,就能POST请求发短信。
    示例命令超级简单(复制粘贴就能用):
    curl -X POST -u sms:你的密码 \
      -H "Content-Type: application/json" \
      -d '{"textMessage": {"text": "测试短信,来自旧手机!"}, "phoneNumbers": ["+86138xxxxxxxx"]}' \
      http://手机本地IP:8080/message

    手机屏幕上会实时显示用户名、密码、本地IP、公网IP,超级直观。

  2. 2. 云服务器模式(适合远程控制)
    如果你不在同一网络,或者想在外地控制家里的手机,打开“Cloud Server”,App会连到官方免费中转服务器(api.sms-gate.app)。同样用HTTP API,但走加密通道。适合开发者把手机放家里当“短信服务器”。

亮点功能多到让人惊喜

  • • 收发双向:不但能发,还能实时接收短信,触发Webhook(比如发到你的服务器、钉钉、微信机器人)。
  • • MMS彩信支持:能接收带图片、附件的彩信,还会通知你下载完成。
  • • 多SIM卡切换:双卡手机?轻松选卡1还是卡2发短信。
  • • 数据短信(Data SMS):发二进制Payload,适合IoT设备加密通信、智能硬件控制。
  • • 状态实时追踪:发出去的短信是“已发送”“已送达”“失败”都即时反馈。
  • • 端到端加密:消息和手机号在离开手机前就加密,防止中间人窃听。
  • • Webhook事件全覆盖:sms:received、sms:delivered、sms:failed、mms:downloaded……十几种事件,随便订阅。
  • • 支持Android 15:作者专门适配了最新系统权限变化。

而且完全免费!Apache-2.0开源协议,你想改代码就改,想自建云服务器也行。

动手实战:从零安装到第一次发短信,只需10分钟

别被“开源”吓到,这个项目上手难度比安装微信还低。准备工作:

  • • 一部安卓5.0+手机(旧小米、华为、OPPO都行,最好常插电不关机)。
  • • 一张能正常收发短信的SIM卡(最好有流量)。
  • • 电脑或另一台设备用来测试。

步骤1:下载安装
去GitHub Releases页面下最新APK(建议选“secure”安全版)。手机设置里打开“未知来源安装”,点APK安装。安装完授予权限:SEND_SMS(必须)、READ_PHONE_STATE(选卡用)、RECEIVE_SMS(Webhook用)等。权限申请界面会弹窗解释,很人性化。

步骤2:启动本地服务器
打开App,首页就是“HOME”标签。点“Local server”旁边的开关,状态从“Offline”变“Online”。屏幕立刻显示:

  • • Local address: 10.0.2.16:8080(示例)
  • • Public address: (如果有公网IP)
  • • Username: sms
  • • Password: 一串随机字符(每次重启会变,建议记下来)

步骤3:测试发短信
在电脑命令行敲上面那条curl命令,把“+86138xxxxxxxx”换成你自己的手机号。手机震动一下,短信就发出去了!对方收到“测试短信,来自旧手机!”——成功!

步骤4:进阶Webhook
想让手机收到短信后自动通知你?在App里注册Webhook:

curl -X POST -u sms:密码 \
  -d '{"id": "myhook1", "url": "https://你的服务器/webhook", "event": "sms:received"}' \
  http://手机IP:8080/webhooks

以后有人发短信到你的手机号码,Webhook就会把完整内容(发件人、时间、正文)推给你。完美实现“短信机器人”。

云模式也差不多,只不过地址换成https://api.sms-gate.app/3rdparty/v1/message,适合在外地控制。

真实应用场景:从智能家居到小生意,处处都能用

我见过好几个开发者把这部“短信网关手机”玩出花儿来:

  1. 1. 智能家居报警神器
    门磁传感器检测到入侵,用Node-RED或Home Assistant调用API发短信给主人手机:“警报!客厅门被打开了!”不用云平台,零费用,还支持多SIM备用。
  2. 2. 电商/微商验证码通知
    小店卖货需要短信验证下单?把旧手机当后端,客户下单后自动发“您的验证码是123456”。每月省下几百块平台费。
  3. 3. IoT设备远程控制
    用数据短信给户外传感器发指令(比如“开启浇水”),信号覆盖远,穿墙能力强,比LoRa还便宜。
  4. 4. 开发者测试利器
    写登录注册模块?本地手机直接模拟短信接收,再也不用等Twilio沙盒了。
  5. 5. 应急备份
    主号码欠费了?把备用手机开网关,瞬间接管所有验证短信。

真实案例里,有人用它避开了Twilio注册麻烦(回复里不少人说“No more twilio registrations”)。还有人吐槽巴西运营商有80条限制造成不兼容,但国内运营商一般一天几百条没问题(别批量营销就行)。

技术原理浅析:安卓手机如何“变身服务器”?

别以为这只是个简单App,背后技术含量不低。

安卓系统底层提供了SmsManager类(在TelephonyManager里),开发者可以调用sendTextMessage()发短信。但普通App不能直接暴露HTTP接口——这项目巧妙地用Kotlin + Jetty或类似轻量服务器,在手机上跑了一个8080端口的Web服务。

收到POST请求后:

  1. 1. 解析JSON(text + 手机号列表)
  2. 2. 调用系统API发短信(自动处理长短信分片)
  3. 3. 监听BroadcastReceiver抓取发送状态和接收事件
  4. 4. 通过Webhook把JSON推出去

加密部分更厉害:内容在离开手机前用AES加密,只有目标端解密。支持多设备负载均衡——你放三部手机连同一个云账号,短信会自动分发,相当于小型短信池。

权限管理是重点:项目严格要求用户手动授权,避免滥用。Android 6.0+的运行时权限机制在这里发挥了作用。

安全、隐私与法律注意事项:别踩坑

任何短信工具都有两面性,这个也不例外。

安全优势

  • • 本地模式全在你家Wi-Fi里,数据不出门。
  • • 加密传输,基本认证(username/password)。
  • • 开源代码可审计,不像某些闭源App偷偷发垃圾。

潜在风险

  • • 手机要24小时开机,电量、散热要注意(建议插充电器+散热垫)。
  • • 运营商反垃圾机制:一天发太多会被限速或封卡(一般个人用没事儿,营销别超500条/天)。
  • • 暴露公网IP时记得加防火墙或用Nginx反代。
  • • 别把密码泄露!项目提醒:insecure版只用于测试,生产环境必须secure版。

法律提醒(特别重要):
在中国,《个人信息保护法》和《反电信网络诈骗法》管得严。未经同意批量发营销短信属于违法,运营商会直接封号。建议只用于个人通知、验证、报警等合法场景。国外也一样,GDPR、CAN-SPAM都有规定。记住:技术无罪,用法有责。

回复里有人担心“scammers会用它发骗短信”,确实可能,但任何工具都有被滥用风险。项目本身不鼓励违法,使用者自律最重要。

和商业平台对比:省钱省心,但各有千秋

项目
android-sms-gateway
Twilio
阿里云短信
费用
完全免费(只花流量+电)
按条+月费
按条+包月
部署
10分钟装手机
云API注册
实名备案
灵活性
Webhook+多SIM+数据SMS
强大但贵
国内优化好
隐私
数据在你手机
第三方存储
平台存储
适合人群
个人、开发者、小团队
大企业
国内电商

总结:如果你每月短信量在几百到几千条以内,这项目完胜;超过万条,还是商业平台更稳。

未来展望:手机网关 + 开源,会走向哪里?

随着5G、IoT普及,短信不会消失,反而会和万物互联结合。想象一下:

  • • 每部手机都成小型Mesh节点(回复里有人提到Wi-Fi 802.11ah硬件梦想)。
  • • 开源社区继续迭代:支持eSIM、AI自动回复、跨平台(iOS难但Android生态强)。
  • • 教育场景:学校用它发家长通知,零成本。
  • • 应急通信:地震、台风时,手机网关成救命通道。

作者还在更新(支持Android 15、优化MMS),社区贡献者越来越多。开源的魅力就在这里——一个人写,全球人用,一起完善。


结语:旧手机也有春天

一部被你丢在抽屉里的旧安卓手机,其实藏着无限可能。android-sms-gateway用最简单的思路,解决了很多人头疼的短信难题:免费、开源、可控、好用。无论你是程序员想省测试成本,还是普通用户想建个智能通知系统,都值得试试。

动手吧!下载APK,插上SIM卡,十分钟后你就会感叹:“原来短信网关这么简单!”当然,用的时候记得遵守法律、保护隐私。技术是为生活服务的,别让它反过来添麻烦。

如果你已经试过这个项目,欢迎在评论区分享你的玩法——是用来监控服务器报警,还是给家人发每日天气?开源世界就是这样,大家互相启发,一起把黑科技变成日常工具。


打赏

本文链接:https://www.kinber.cn/post/6357.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客