把几十块钱的 USB 上网卡插到玩客云 / 树莓派 / 任意 Linux 设备,让它变成一台“云手机”。自动收短信、转发短信、网页发短信保号。
SMS-Bridge(短信通) 是一个轻量级的“云手机”方案:
-
使用二手 USB 4G 上网卡(10–20 元)。
-
插入任意 SIM 卡(Giffgaff / Helium / 中国移动保号卡皆可)。
-
利用 Python + AT 指令读取短信并转发。
-
提供现代化 Web UI,可在线发送短信保号。
-
支持 Docker / systemd 部署,适配玩客云、树莓派等设备。
核心目标: 不再需要备用机,不需要给手机一直插着 SIM 卡。
直接在电脑 / 服务器 / Telegram 里收短信!
-
📥 短信自动接收:通过 USB 4G Dongle 读取 SIM 卡短信。
-
📤 自动转发:
-
Telegram Bot
-
PushPlus(转发到微信)
-
-
📟 Web 控制面板:
-
查看所有短信
-
在线发送短信(保号)
-
一键启动 / 停止监听
-
查看实时运行状态与最近轮询时间
-
-
💾 SQLite 持久化:所有短信保存到本地数据库。
-
🐳 Docker 支持:开箱即用,适配玩客云。
-
🔧 systemd 支持:适合直接跑在 Linux 主机。
-
🔍 增强型 Modem 解析:兼容更多型号 USB 上网卡,稳定解析 AT 短信。
-
🔒 可选 Basic 认证:为 Web UI 与 API 加上用户名 / 密码,避免公网暴露被滥用。
-
⚡ 异步转发与超时控制:远程推送在后台线程执行,并对外部请求设置超时,避免阻塞短信采集。
SMS-Bridge/
├─ README.md
├─ LICENSE
├─ requirements.txt
├─ Dockerfile
├─ docker-compose.yml
├─ config.example.yaml
├─ app/
│ ├─ config.py
│ ├─ db.py
│ ├─ modem.py
│ ├─ forwarder.py
│ ├─ worker.py
│ ├─ keepalive.py
│ ├─ web.py
│ └─ templates/index.html
└─ scripts/
└─ install_systemd.sh
获取设备名称:
dmesg | grep tty常见:/dev/ttyUSB0 或 /dev/ttyACM0
复制:
cp config.example.yaml config.yaml填入串口、Telegram token、推送配置等。
安全提示:如需在公网访问,建议在
http.auth_user/http.auth_password中设置用户名和密码,启用 HTTP Basic 认证。
| 配置项 | 作用 |
|---|---|
serial_port / baudrate |
串口设备与波特率。 |
poll_interval |
轮询未读短信的间隔秒数。 |
telegram.* |
Telegram Bot 转发相关的开关、token、chat_id。 |
wechat_pushplus.* |
PushPlus(微信)转发的开关与 token。 |
keepalive.* |
是否启用保号短信、目标号码与内容。 |
database |
SQLite 数据库存放路径。 |
http.host / http.port |
Web 服务监听地址与端口。 |
http.auth_user / http.auth_password |
启用 HTTP Basic 认证的用户名/密码(可选,但公网建议开启)。 |
request_timeout |
外部转发请求的超时时间(秒),防止阻塞。 |
forwarder_workers |
异步转发线程池大小,可根据并发量调整。 |
docker build -t sms-bridge .
docker run \
--device=/dev/ttyUSB0:/dev/ttyUSB0 \
-p 8080:8080 \
-v $(pwd)/data:/data \
sms-bridge访问:http://设备IP:8080
pip install -r requirements.txt
python app/web.py-
左侧:短信记录(带方向区分)
-
右侧:发送短信、保号按钮
-
顶部:启动 / 停止监听
-
自动刷新最新短信
前端已使用轻量现代风格美化。
- Web 路由:根页面、启动/停止、保号、发送短信、
/_messages_json轮询接口均已提供,前端不会再因缺少接口报 404。 - 转发:Telegram 与 PushPlus 请求具备超时保护,并通过后台线程异步执行,不会阻塞短信采集线程。
- 安全:配置了
http.auth_user/http.auth_password时,所有 UI 与 API 都需 Basic 认证,可在公网安全访问。 - 状态:新增
/status路由,返回监听是否运行、轮询间隔与最近拉取时间,前端自动显示。 - 数据:短信持久化到 SQLite,前端轮询会自动显示最新记录。
收到短信后自动发送到你的 Telegram 机器人:
telegram:
enabled: true
bot_token: "xxxx"
chat_id: "123456"wechat_pushplus:
enabled: true
token: "xxxx"点击网页按钮即可发一条短信完成运营商“保号任务”。
-
多设备兼容
-
更 robust 的 AT 输出解析
-
支持不规范换行、不同厂商格式
-
避免漏掉短信
version: '3.8'
services:
smsbridge:
build: .
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
ports:
- "8080:8080"
volumes:
- ./data:/data
restart: unless-stopped