核心用法
Android SMS Gateway 是一套将 Android 手机转化为本地 SMS 网关的自动化工具集,支持通过 HTTP API 收发短信。用户需在手机上安装 SMS Gateway 类应用(如 itsmeichigo/SMSGateway、capcom6/android-sms-gateway 等),配置本地服务器后,即可通过命令行脚本完成短信收发、批量发送、状态检查等操作。
主要功能模块
- 发送短信:支持单条、批量发送,可通过环境变量、配置文件或命令行参数指定网关地址与认证信息
- 接收短信:轮询或 webhook 方式获取新消息,支持时间戳过滤
- 网关状态监控:检查设备在线状态与 API 可用性
- 双应用生态:同时支持经典脚本(itsmeichigo/SMSGateway)与新一代方案(capcom6/android-sms-gateway)
显著优点
1. 完全自主可控:无需 Twilio、阿里云等第三方短信服务商,避免账户封禁、价格变动与数据跨境风险
2. 成本极低:复用闲置 Android 设备,仅需承担基础话费
3. 隐私优先:短信内容不经过第三方服务器(本地模式),capcom6 方案还支持端到端加密
4. 灵活部署:支持纯内网、VPN 隧道、公网端口转发、私有云服务器等多种网络架构
5. 开发者友好:REST API 接口,配套 Shell 脚本与 JSON 配置,易于集成到 CI/CD、监控告警、2FA 等场景
潜在缺点与局限性
- 硬件依赖:必须保持 Android 设备开机、有信号、联网,电池续航与硬件寿命成为瓶颈
- 单点故障:单台手机不可用时,短信服务中断,缺乏高可用机制
- 速率限制:受运营商与硬件限制,发送频率约 1 条/秒,不适合大规模营销短信
- 网络复杂度高:若需远程访问,需配置 VPN 或端口转发,增加运维负担
- 安全边界模糊:HTTP API 若暴露于公网且认证薄弱,易成为攻击入口;文档虽提及防火墙与 HTTPS,但未强制要求
适合人群
- 安全团队与红队:需要自建 2FA、告警通知、C2 通信通道,避免依赖外部基础设施
- 隐私敏感用户:不愿将手机号与短信内容托管至云服务商
- IoT/边缘计算开发者:需要低成本、离线可用的短信网关
- 小型组织:短信量低、预算有限,希望完全掌控通信链路
常规风险
- 中间人攻击:默认 HTTP 传输(尤其经典方案),若未强制 HTTPS/TLS,存在窃听与篡改风险
- 认证绕过:弱口令、硬编码 token、配置文件权限不当(
chmod 600仅为建议)可能导致未授权访问 - 设备失窃/破解:Android 手机物理安全若失守,短信历史与 API 凭证可能泄露
- 合规隐患:批量发送未经请求的短信可能违反当地电信法规(如 GDPR、CAN-SPAM 对应条款)
- 供应链风险:依赖第三方开源 APK,若上游仓库被投毒(如 releases 附件篡改),将直接影响网关安全
安全建议
- 优先选用 capcom6 方案,启用端到端加密与私有服务器模式
- 强制使用 HTTPS 或 WireGuard/Tailscale 等 VPN 隧道,避免公网直接暴露 8080 端口
- 定期轮换 API token,采用 32 位以上随机字符串,禁止复用
- 配置文件严格设置
0600权限,避免环境变量泄露至进程列表 - 监控网关访问日志,设置异常流量告警(如短时间内大量发送请求)