如果您需要确保系统访问安全,并正在寻找如何在 multiOTP 中配置发送短信 (send SMS) 以发送双重身份验证 (2FA) 验证码,那么您来对地方了。在本指南中,我们将详细向您展示如何将 multiOTP 与 MySMSGate 集成,利用您自己的 Android 手机和 SIM 卡发送短信,从而避开像 Twilio 等传统供应商的高昂费用和繁琐的监管限制。
什么是 multiOTP?为什么选择与 MySMSGate 集成?
multiOTP 是最受欢迎且功能强大的开源工具之一,用于在网络基础设施、VPN 服务器、Windows 登录和 Active Directory 系统中实现双重身份验证 (2FA)。然而,为了使通过短信发送一次性密码 (OTP) 的身份验证功能正常运行,multiOTP 需要连接到外部短信网关。
传统上,系统管理员会求助于 Twilio 或 Plivo 等巨头。但当前的问题是,这些平台为中小企业设置了巨大的准入门槛:强制性的活动注册 (A2P 10DLC)、长达数周的审批周期、虚拟号码的月租费,以及按 160 字符段计费的方式,这会让账单迅速飙升。如果您想探索其他选择,建议阅读我们的 2026 年 Twilio 替代方案 对比。
这正是 MySMSGate 的优势所在。作为一个通信桥梁,它允许您直接使用本地 SIM 卡从自己的 Android 手机发送消息。这具有无可比拟的优势:
- 无需监管审批: 您无需注册 A2P 活动,也无需等待运营商授权。直接从用户已熟知的您自己的电话号码发送。
- 透明的固定费率: 每成功发送一条短信仅需支付 $0.02。没有月费、没有最低合同,也没有隐藏费用。此外,如果短信发送失败,余额会自动退还。
- 简化计费: 与 Twilio 不同,无论消息长度如何,我们按条计费,避免了因消息超过 160 个字符而导致的账单意外。
配置前的准备工作
在开始技术集成之前,请确保已准备好以下要素:
- 一个活跃的 MySMSGate 账号: 您可以从我们的 免费账户注册 页面快速注册。
- 一部装有活跃 SIM 卡的 Android 手机: 该设备将作为您的物理短信网关。建议手机信号良好并拥有合适的短信套餐。
- 已安装 MySMSGate 应用程序: 在您的 Android 手机上下载我们的应用,通过扫描控制面板中的二维码登录,手机即可瞬间绑定。有关此步骤的更多详细信息,请参阅我们的指南:如何 通过 API 从 Android 手机发送短信。
- 已安装 multiOTP: 无论是命令行版本 (CLI),还是集成在 pfSense、OPNsense 或 Active Directory 中的版本。
分步操作:通过自定义脚本在 multiOTP 中配置发送短信
multiOTP 允许运行外部命令或自定义脚本来发送短信。由于 MySMSGate API 需要带有 JSON 格式的安全 HTTP POST 请求,因此最整洁、最稳健的集成方式是创建一个中间小脚本,每当 multiOTP 需要分发 OTP 码时就会执行该脚本。
第 1 步:创建 PHP 或 Bash 发送脚本
下面,我们提供一个 PHP 脚本示例,它接收 multiOTP 传递的参数(电话号码和文本消息)并将其传输到 MySMSGate API:
<?php
// 将此文件保存为 /usr/local/bin/send-mysmsgate.php
if ($argc < 3) {
echo "用法: php send-mysmsgate.php [telefono] [mensaje]\n";
exit(1);
}
$phone = $argv[1];
$message = $argv[2];
$token = "TU_API_KEY_DE_MYSMSGATE"; // 替换为您的真实 Token
$url = "https://mysmsgate.net/api/v1/send";
$data = [
"token" => $token,
"to" => $phone,
"message" => $message
];
$options = [
"http" => [
"header" => "Content-Type: application/json\r\n",
"method" => "POST",
"content" => json_encode($data),
"ignore_errors" => true
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) {
echo "连接 MySMSGate API 失败。\n";
exit(1);
}
$response = json_decode($result, true);
if (isset($response['success']) && $response['success'] === true) {
echo "短信发送成功。\n";
exit(0);
} else {
echo "发送失败: " . ($response['error'] ?? '未知错误') . "\n";
exit(1);
}
?>别忘了使用命令 chmod +x /usr/local/bin/send-mysmsgate.php 为服务器上的脚本授予执行权限。
第 2 步:在 multiOTP 中绑定脚本
脚本准备就绪并测试通过后,您必须指示 multiOTP 将其用作默认的消息提供商。打开配置了 multiOTP 的终端,执行以下配置命令:
multiotp -config sms-sender-path="/usr/local/bin/send-mysmsgate.php" sms-sender-parameters="%NUMBER% %TEXT%"完成此设置后,每当用户尝试进行身份验证并需要一次性代码时,multiOTP 都会自动调用您的脚本,将用户的电话号码传入 %NUMBER% 参数,将生成的代码传入 %TEXT% 参数。
深入了解 mss web api 如何配置
如果您专门搜索 mss web api 如何配置,那么理解如何直接与我们的端点交互以实现除 multiOTP 之外的自定义集成至关重要。MySMSGate 的 REST API 设计得极其简单直接,非常适合系统管理员和独立开发者。
MySMSGate API 暴露了一个用于发送消息的主要端点:
- 端点 (Endpoint):
POST https://mysmsgate.net/api/v1/send - 数据格式: JSON
以下是使用命令行 cURL 配置直接请求的示例:
curl -X POST https://mysmsgate.net/api/v1/send \
-H "Content-Type: application/json" \
-d '{
"token": "您的API_KEY",
"to": "+8613800000000",
"message": "您的 multiOTP 验证码是: 582910"
}'如果您使用的是支持双卡双待的手机,您甚至可以通过在 JSON 主体中添加可选参数 "sim_slot": 1 或 "sim_slot": 2 来指定从哪个 SIM 卡槽发送消息。这允许您根据目标运营商的不同费率来优化成本。
高级管理:如何配置 Webhook 以从 SIM 卡发送短信
许多管理员会问 如何配置 Webhook 以从 SIM 卡发送短信,以便实时跟踪交付状态或捕获用户回复。MySMSGate 不仅能发送消息,还支持双向通信。
当您通过 Android SIM 卡发送短信时,消息会经历不同的状态(排队中、已发送、已送达或失败)。要在您的 multiOTP 或监控服务器上接收这些状态更新,您可以从 MySMSGate 控制面板配置交付 Webhook:
- 登录 mysmsgate.net 并前往“API 配置”部分。
- 在 交付状态 Webhook 字段中,输入您的服务器 URL(例如:
https://your-domain.com/webhooks/sms-status)。 - 每当物理 Android 设备上的短信状态发生变化时,MySMSGate 都会实时发送一个 POST 请求。
同样,如果用户回复了验证短信或向您的 SIM 卡发送了文本消息,MySMSGate 会捕获该上行消息并自动转发到您配置的 Webhook,从而直接从您的 Web 控制台实现完整的交互性。
成本与功能对比:MySMSGate vs. Twilio
对于小型企业、诊所、培训学校和本地商家来说,传统网关的固定成本很难证明其合理性。让我们分析一下在低中等业务量(每月约 500 条用于警报和 OTP 的短信)场景下,MySMSGate 与市场标准方案的对比:
| 功能 / 成本 | MySMSGate | Twilio / 传统供应商 |
|---|---|---|
| 单条短信发送成本 | $0.02 (固定费率) | $0.05 - $0.08 + 运营商费用 |
| 号码月租费 | $0.00 (使用您自己的号码) | 每月 $1.15 - $2.00 |
| 活动注册 (A2P 10DLC) | 不需要 | 需要 (注册费 + 月费) |
| 按消息长度计费 | 单条完整消息统一费率 | 按 160 字符段计费 |
| 双卡支持 / 多设备 | 支持,可连接无限设备 | 不支持 (仅限虚拟号) |
| 网络故障退款 | 支持,余额自动退还 | 不支持,按发送尝试计费 |
如表所示,对于寻求简单性、完全控制发件人身份以及可预测预算且无长期合同的小型企业,MySMSGate 脱颖而出,成为 最便宜的小型企业短信 API。
常见问题
以下是我们针对配置双重身份验证系统和基于 Android 的短信网关的用户最常见疑问的解答。
通过 MySMSGate 使用 Android 手机发送 OTP 码安全吗?
是的,完全安全。您的 multiOTP 服务器、MySMSGate API 和您的 Android 设备之间的通信通过安全的 HTTPS 协议加密。此外,通过您自己的物理 SIM 卡发送消息,可以避开经常拦截大型 A2P 供应商虚拟号码的垃圾邮件过滤器。
如果我的 Android 手机进入睡眠或休眠模式会怎样?
MySMSGate 移动应用具有通过 Google 推送通知优化的自动唤醒系统。这确保了即使设备为了省电进入深度休眠模式,在收到 multiOTP 服务器的发送指令时也会立即激活。
我可以将多部 Android 手机连接到同一个 multiOTP 账号吗?
可以。在 MySMSGate 面板中,您可以将无限数量的 Android 设备连接到一个账号。在进行 API 请求时,您可以指定 device_id 参数,以动态决定通过哪部手机和地理号码传输验证码。
MySMSGate 的余额和支付如何管理?
我们采用极其简单的预付费模式,没有循环订阅。您可以根据需要充值余额包(例如:$5.00 购买 250 条短信,$10.00 购买 500 条短信,或 $20.00 购买 1000 条短信)。余额永不过期,只有当消息成功传输到您的电信运营商时才会扣费。
Comments (0)
Be the first to comment!