虎绿林HU60.CN
发现版块
Enter
发布登录
发现版块发布我的社区荣誉
登录
虎绿林让技术讨论持续生长京ICP备18041936号-1

本站的短信验证码功能终于修好了,用AI做了个基于Termux的短信发送网关

老虎会游泳
5月30日 · 5月30日编辑公告
1.4万 22

云片不对个人用户服务了,所以短信验证码一直不能用,我只能自己做个网关用自己的手机发送验证码。

项目地址:

https://github.com/hu60t/hu60sms
https://gitee.com/hu60t/hu60sms

我设了限额,每个号码30秒只能发1条,每天最多10条,所有号码加起来每天最多100条。

目前程序运行在我的 p50pro 手机上,不知道长期运行稳不稳定,先试试看吧。


hu60sms — 基于 Termux 的 Android 短信网关

一个运行在 Android 手机上的轻量级 HTTP 短信网关,通过 Termux 环境调用 termux-sms-send 发送短信,对外暴露 RESTful API。

功能特性

  • HTTP API:通过简单的 POST 请求即可发送短信
  • API Key 认证:使用常数时间比较,防止时序攻击
  • SIM 卡槽选择:支持双卡手机指定发送卡槽
  • 频率限制:
    • 单号码发送间隔(默认 30 秒)
    • 单号码每日上限(默认 10 条/天)
    • 全局每日上限(所有号码合计)
  • 跨平台编译:提供 Linux/macOS/Windows 编译脚本

系统要求

  • Android 手机,已安装 Termux 及 Termux:API 插件
  • Go 1.21+(用于编译)
  • 已授予 Termux 短信权限

快速开始

1. 配置

编辑 config.json:

{
    "apikey": "your-api-key-here",
    "port": "8080",
    "slot": "0",
    "rate_limit_sec": 30,
    "rate_limit_daily": 10,
    "global_daily_limit": 100
}

配置项说明:

配置项 类型 说明
apikey string API 密钥,用于验证请求
port string 监听端口
slot string SIM 卡槽号。从 0 开始:卡 1 = "0",卡 2 = "1"。留空 "" 表示使用系统默认
rate_limit_sec int 同一号码两次发送间的最小间隔(秒)
rate_limit_daily int 同一号码每天最大发送条数
global_daily_limit int 全局每天最大发送条数(所有号码合计),0 表示不限制

关于 slot(卡槽):slot 编号从 0 开始:

  • "0" — SIM 卡 1
  • "1" — SIM 卡 2

留空则使用系统默认 SIM 卡。

2. 编译

在 PC 上交叉编译为 Android 可执行文件:

# Linux / macOS
./build.sh

# Windows
build.bat

编译产物为 hu60sms,目标平台为 android/arm64。

3. 部署到手机

将编译好的 hu60sms 二进制文件和 config.json 通过任意方式传输到手机,config.json 需与 hu60sms 可执行文件放在同一目录。

4. 运行

在手机 Termux 中,cd 到 hu60sms 所在目录,然后执行:

chmod +x ./hu60sms
./hu60sms

服务启动后默认监听 :8080 端口。

API 文档

发送短信

请求:

POST /sms
Content-Type: application/x-www-form-urlencoded

参数:

参数名 类型 必填 说明
apikey string 是 API 密钥,需与 config.json 中一致
mobile string 是 目标手机号
text string 是 短信内容

卡槽由服务端配置文件 slot 字段统一指定,无需在请求中传递。

示例:

curl -X POST http://172.23.0.1:8080/sms \
  -d "apikey=your-api-key-here&mobile=13800138000&text=您的验证码是123456"

响应:

{"code": 200, "message": "SMS sent successfully"}

错误响应:

HTTP 状态码 code 说明
403 403 API Key 无效
400 400 缺少必填参数
429 429 触发频率限制
500 500 短信发送失败

项目结构

hu60sms/
├── main.go        # 主程序(HTTP 服务 + 短信发送逻辑)
├── config.json    # 配置文件
├── go.mod         # Go 模块定义
├── build.sh       # Linux/macOS 编译脚本
└── build.bat      # Windows 编译脚本

许可证

MIT License

登录后收藏
楼层讨论

22 条回复

默认正序
张小强5月30日
#1
最好是不要这样搞,会触发风控的,应该改成用户向你的号码,发送指定的验证码,而不是用你的号码给用户发送短信
嚻5月30日
#2
@老虎会游泳,https://www.mysubmail.com/
用这家的短信服务呗,运营4、5年了至少
老虎会游泳5月31日
#3

@张小强,本站的短信量非常少,估计一个月都没有几条,我觉得不会怎么样的。
如果真的风控我就换成 @嚻 推荐的这家。

怒放家族de霖5月31日
#4

@老虎会游泳,微信啊
虎友高配版(绿色)

晨曦5月31日
#5
终于修好了
我是晨曦,我喂自己袋盐!
老虎会游泳6月1日
#6

@怒放家族de霖,WXPusher推送功能一直都在正常发送,只是微信那边限制了消息接收,所以收不到消息了而已。安装单独的推送接收app就能正常收到推送。
WxPusher APP 已经全面支持主流手机系统后台推送,并且还有原生鸿蒙版。
screenshot_20260601_110949_com.smjcco.wxpusher.hm.jpg(187.23 KB)

张小强6月4日
#7
0753e2f8-f936-404c-bd08-850e39214ea5.png(1.24 MB)
logo好换了
老虎会游泳6月4日
#8

2026-06-04 09-12-22屏幕截图.png(26.86 KB)
这个不错

罐
罐子6月4日
#9
@老虎会游泳,咋图没了。
老虎会游泳6月4日
#10

@罐子,系统重启后ossfs没有自动挂载。已修复

罐
罐子6月4日
#11

@罐子,
一加8Pro

卷心菜6月5日
#12

小米13上发送一直阻塞,命令回车后没反应,也没发出去

老虎会游泳6月6日
#13

@卷心菜,你安装termux api这个apk了吗,安装了的话,在系统设置里给这个包开启发送短信的权限

老虎会游泳6月6日
#14

@卷心菜,可以通过以下命令测试短信发送功能:

termux-sms-send -n 号码 "内容"

要先安装这个apk https://f-droid.org/packages/com.termux.api/
给它发送短信的权限
然后执行

pkg install termux-api

安装对应的命令

罐
罐子6月7日
#15

@卷心菜,下载地址 : http://f.odata.cc/HnN9Rp0jRo/app-release.apk
用ai使用flutter.重构这个功能实现。

一加8Pro

罐
罐子6月7日
#16

https://github.com/guanzi008/hu60-sms-flutter-gateway
一加8Pro

罐
罐子6月7日
#17

https://github.com/guanzi008/hu60-sms-flutter-gateway/releases/download/v1.2.1/app-release.apk
一加8Pro

卷心菜6月8日
#18

@老虎会游泳,
Screenshot_2026-06-08-19-32-44-505_com.miui.packageinstaller.jpg(118.75 KB)

装不上

pingloc6月9日
#19

@张小强,同样会风控啊,大量收短信。哈哈
全球Ping https://www.pingloc.com

蛋
蛋黄派6月13日
#20
我有不少合宙 air724ug 模块,4G Cat.1,可以贡献出来一个,比手机稳定
hik6月14日
#21

终于修好短信验证码功能了,注册登录更方便了,点赞!

罐
罐子6月15日
#22

@蛋黄派,嫖一个。
一加8Pro

加入这场讨论登录后即可参与讨论
登录并回复
关于作者老虎会游泳创世

你好,这里是虎绿林。

查看用户主页
帖子信息
发布于2026/05/30 12:52
最后更新2026/06/15 13:45
阅读1.4万