JasonYANG170 的 LogoYANG Docs
首页
硬件
软件
AI
3D
主站
首页
硬件
软件
AI
3D
主站
GitHub

LTE-SMS-Gateway

LTE 与 SMS 多路聚合网关,支持短信转发和 4G 网络聚合。 | Multi-channel LTE and SMS gateway with SMS forwarding and 4G network aggregation.

JavaScript2026-10-21T15:56:36Z★ 32
查看原始项目 ↗
LTE-SMS-Gateway

项目文档

简体中文 | English

LTE&SMS-Gateway 4G多路聚合网关

Static BadgeCommit ActivityLanguages CountDiscord

image

这是一项基于Cat.1模组的LTE&SMS多路聚合网关

3.2 安全更新

当前安全版本请从 main 源码部署;旧版 Release 附件不会自动更新为新代码。新装运行 npm ci --omit=dev、npm run setup 后启动,账号密码不再预设。

  • 系统设置支持 TOTP 扫码绑定、一次性恢复码、登录错误等待策略和登录失败 IP 记录。
  • 系统设置支持 HTTPS 端口、HTTP 跳转、PEM 证书链/私钥导入、自签名证书生成、证书信息/到期时间、证书热更换和恢复上一证书。生成自签证书需要 OpenSSL;浏览器信任由访问设备自行配置。私钥导入仅允许 HTTPS 或本机 SSH 隧道。
  • GitHub 更新仅接受本仓库正式 Release 的 LTE-SMS-Gateway-update.json,必须带 GitHub 计算的 SHA-256 摘要。安装要求密码及已启用的 2FA,并保存快照;拒绝本地未验证包、降级和依赖变更。依赖有变化时使用服务器端部署。
  • 公开部署需要有效的 HTTPS 证书、适当的防火墙配置和独立服务用户;HTTPS 管理不会自动开放系统防火墙端口。

旧版升级、证书管理及更新发布说明见 安全部署指南。

功能

  • ✅支持SMS-on-HTTPS转发,可将SMS内容转发至微信或邮箱
  • ✅支持SMS-on-SIM转发,可将SMS内容转发至常用SIM中
  • ✅支持4G多路上网,使用侧面USB接入电脑,可自动识别RNDIS网卡
  • ✅支持安全密钥,控制面板后台密钥加密处理
  • ✅支持入侵提醒,当后台密钥输入错误时触发IP上报
  • ✅支持SMS发送功能,可向目标SIM发送SMS
  • ✅支持信号监测,可插入不同运营商SIM,监测基站信号强度
  • ✅支持配置持久化,模块转发设置自动保存(敏感信息加密存储)
  • ✅独立页面管理主机信息、SIM 概览 / 自动解析详情、收件箱、发件箱、收藏夹、转发和通讯日志
  • ✅定时发件、周期保号、短信流式备份与恢复、主机 / SIM 存储清理及自动转存
  • ✅中文 / English、浅色 / 深色 / 跟随系统主题、移动端布局与 Release 升级包
  • 🚧Docker容器部署(待支持)

本项目无内置MCU,须搭配Linux上位机或NAS服务器使用 如遇问题,请向我提出issues

软件

LTE&SMS聚合网关管理面板:
https://github.com/JasonYANG170/LTE-SMS-Gateway 本项目管理后台基于NodeJS开发,适用于基于Linux系统的服务器使用
服务器部署后进入本地5823端口打开管理后台

手动部署(Linux)

需要 Linux 主机、USB 串口访问权限,以及 Node.js 22 或 24 LTS、npm、Git。以下以安装目录 /opt/lte-sms-gateway 为例。普通用户调试也可使用自己的目录。

git clone https://github.com/JasonYANG170/LTE-SMS-Gateway.git
cd LTE-SMS-Gateway
git checkout main
npm ci --omit=dev
npm run setup
npm start

打开 http://<主机IP>:5823/login.html。首次启动前运行 npm run setup 创建账号及至少 12 字符的密码;不再提供默认密码。已有部署请先备份并按下方迁移说明操作。自定义端口可以使用 PORT=8080 npm start,或创建不提交到 Git 的 gateway-config.json:

{"port":5823}

Linux 串口通常属于 dialout 组;为运行服务的用户添加该组,然后重新登录。可使用 ls -l /dev/ttyACM* /dev/ttyUSB* 检查模块和权限。部分 NAS 使用其他串口组,按系统实际配置调整。

sudo usermod -aG dialout "$USER"

长期运行建议使用 systemd。下面配置使用专用服务用户;请将项目复制到 /opt/lte-sms-gateway,并确保 node 在 /usr/local/bin 或 /usr/bin 中。其他位置需要修改 service 文件中的 Environment / ExecStart。

sudo cp -a "$PWD" /opt/lte-sms-gateway
sudo useradd --system --user-group --home-dir /opt/lte-sms-gateway --shell /usr/sbin/nologin lte-sms-gateway
sudo usermod -aG dialout lte-sms-gateway
sudo chown -R lte-sms-gateway:lte-sms-gateway /opt/lte-sms-gateway
sudo chmod 750 /opt/lte-sms-gateway/scripts/restart-systemd.sh
sudo cp /opt/lte-sms-gateway/deploy/lte-sms-gateway.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now lte-sms-gateway

若要使用网页安装含后端的升级包,gateway-config.json 还需配置重启入口:

{"port":5823,"restartScript":"/opt/lte-sms-gateway/scripts/restart-systemd.sh"}

此脚本配合 service 的 Restart=always 工作。使用宝塔、PM2 或其他进程管理器时,需要提供对应的重启脚本,不应直接使用此 systemd 配置。

一键脚本部署

适用于运行 systemd 的 Debian / Ubuntu,支持 x86_64 和 aarch64 / arm64。首次执行需要 curl 和 sudo / root 权限。脚本自动安装系统依赖,从 Node.js 官方下载 Node.js 24.21.0 并校验 SHA-256,部署指定版本,配置串口权限和 systemd 开机自启动。

curl -fL https://raw.githubusercontent.com/JasonYANG170/LTE-SMS-Gateway/main/scripts/install.sh -o install.sh
sudo bash install.sh

可选安装位置和端口:

sudo bash install.sh --dir /opt/lte-sms-gateway --port 8080 --ref main

默认安装路径 /opt/lte-sms-gateway,专用 Node.js 路径 /opt/lte-sms-gateway-node,服务名 lte-sms-gateway。脚本不替换系统原有 Node.js;已有目标目录、专用运行时或同名服务时拒绝覆盖,旧部署请使用网页升级功能。bash install.sh --check 仅检查基础环境和参数,不安装或修改文件。

sudo systemctl status lte-sms-gateway
sudo journalctl -u lte-sms-gateway -n 100
sudo systemctl restart lte-sms-gateway

Release 升级包与数据保留

在 GitHub Releases 下载:

  • LTE-SMS-Gateway-update.json:工作台升级包,在侧边栏“应用升级”中本地导入,或通过在线检查更新安装。
  • LTE-SMS-Gateway-v<version>.tar.gz:源码部署包,适用于手动安装;不是网页升级包。
  • install.sh:一键部署脚本。
  • SHA256SUMS.txt:上述附件的完整性校验值;在下载目录执行 sha256sum -c SHA256SUMS.txt。

升级包不包含账号、设备配置、短信、备份或日志。安装前校验文件路径、SHA-256 和 JavaScript 语法并保存快照。已有 v2.x 安装没有新升级接口,需要停服后备份并手动替换应用源码、安装依赖、启动服务;保留以下数据,不要用新安装目录覆盖它们:

credentials.json          notification.json        module-settings.json
gateway-config.json       keep-alive.json          auto-clear-sim.json
disk-sms/                 workspace-data/          ui-backups/

运行目录应由服务用户拥有,敏感文件限制读取权限。备份下载包含短信明文。历史版本使用兼容的固定加密方案,文件加密不能替代主机文件权限;不要提交运行数据或将运行目录暴露为静态文件服务。

源码打包和隔离测试:

npm install
npm run test:workspace
npm run test:ui        # 需要本机 Chrome,可用 UI_BROWSER_PATH 指定可执行文件
npm run package:update

升级包生成于 dist/LTE-SMS-Gateway-update.json。测试使用模拟串口,不发送真实短信。

后台界面图

以下截图来自本地隔离演示环境。手机号仅显示掩码,SIM 标识为 DEMO,短信均为示例;不包含真实账号、手机号、卡片标识、主机地址或业务短信。

登录页面浅色网关概览
登录页面,账号和密码为空浅色网关概览,使用演示 SIM 数据
收件箱发件箱与保号
收件箱,号码掩码与演示短信发件箱、定时发送与保号配置
深色网关概览手机页面
深色网关概览手机收件箱,演示数据

硬件

立创硬件开源平台 https://oshwhub.com/jasonyang17/sms-receive

项目参数

  • 本设计采用AIR780E模组,以实现LTE功能支持;
  • 本设计采用CH344Q转换芯片,以实现4路AT收发;
  • 本设计采用CH334P芯片,以实现4路RNDIS网卡;
  • 本项目采用JW5359电源芯片,以实现独立供电;

本项目建议电源供应12V5A DC电源

开源协议

本项目遵循CC BY-NC-SA 4.0开源协议,使用本程序时请注明出处
本项目仅供研究与学习,严禁非授权的商业获利,严禁用于违法违规用途
如果您有更好的建议,欢迎PR

硬件实物图

正面RNDIS测试
imageimage
外壳内部成品
imageimage

喜欢这个项目,请为我点个Star ⭐

Star History Chart

首页/软件项目