VOXI + eSIM + Vocat + DJ4G Wi-Fi Calling 部署笔记
这周在研究Esim的使用,但是折腾过程发现,网上教程都比较散乱,Esim卡托购买和使用,Esim申请,WifiCalling唤起与使用,Esim服务软件的用法,都没有一个整合教程,我这边抛砖引玉,分享一下折腾教程。
本文整理 VOXI 办理、eSIM 写卡、DJI 4G 模块改为通用 Quectel USB 身份、Vocat Docker 部署,以及 Wi-Fi Calling、短信保号和常见故障处理方法。
【Esim卡托-常用管理软件】
电脑(MiniLPA)
安卓手机(EasyEUICC 或 NLPA M)
作用:
控制Esim号码 写入、启用/禁用、删除
注意:
1 电脑需要购买Esim读卡器才能使用
2 安卓手机需要自测兼容性、部分老手机可能无法使用上面管理软件
【全文费用汇总】
Krak信用卡:0元
Voxi:7元
Esim卡托-LoveEsim:30元
大疆4G模块:80元
Linux电脑:自备
累计:
117元
零、整体工作流程
整个方案可以概括为:
申请 VOXI
│
▼
获得 VOXI eSIM
│
▼
写入小白卡 / LoveSIM 等 eSIM 卡托
│
▼
插入 DJI 4G / EC20 / EC25 / EG25-G
│
▼
如果是 DJI 4G 一代
修改 USB VID/PID
2ca3:4006 → 2c7c:0125
│
▼
Linux 正确识别 Quectel 模块
│
▼
Docker 部署 Vocat
│
▼
Vocat 管理 SIM / 蜂窝网络
│
├── Wi-Fi Calling
├── 接收短信
├── 发送短信
└── 定时短信保号
一、前置准备
1. Visa 支付卡
用途:
用于办理 VOXI 时添加支付方式。
例如:
Krak 等可正常用于 VOXI 支付的 Visa 卡
2. eSIM 卡托
常见方案:
小白卡
LoveSIM
其他支持写入 eSIM Profile 的实体卡
购买渠道:
用途:
将 eSIM Profile 写入实体 eSIM 卡托,然后插入 4G 模块使用。
3. 支持 Wi-Fi Calling 的设备
实测可使用的设备包括:
DJI 4G 模块
Quectel EC20
Quectel EC25
Quectel EG25-G 等兼容型号
其中 DJI 4G 模块实测可以直接激活 Wi-Fi Calling。
购买渠道:
EC20 / EC25 等二手模块价格目前大约在几十元至 80 元左右,实际价格以购买时为准。
4. Vocat 服务
主要用途:
管理 eSIM / SIM
管理蜂窝网络
使用 Wi-Fi Calling
接收短信验证码
发送短信
创建定时短信任务
定期发送短信进行 SIM 保号
二、VOXI 办理与充值
1. 办理参考视频
Bilibili:
哔哩哔哩
免费保号!giffgaff封号别慌,转网VOXI继续用:Calling激活eSIM+APN设置教程_哔哩哔哩_bilibili
请大家一键三连,后续为大家提供更多技术教程博客地址:https://gaojilingjuli.blogspot.com/免费资源:通过网盘分享的文件:人人懂AI之从机器学习到大模型链接: https://pan.baidu.com/s/1nSTRDU3lZIIpSW6ZQjmhJg 提取码: phvy, 视频播放量 8896、弹幕量 3、点赞数 103、投硬币枚数 45、收藏人数 308、转发人数 41, 视频作者 搞机零距离-, 作者简介 欢迎来到【搞机零距离】! ...
2. 办理核心注意事项
① 购买优惠码
论坛等渠道通常可以购买 VOXI 优惠码。
价格一般约:
7~9 元
具体价格会随时间变化。
② 先添加优惠码,再添加支付方式
建议顺序:
选择套餐
↓
填写资料
↓
添加优惠码
↓
确认优惠后金额
↓
添加支付方式
↓
完成订购
↓
暂停计划改为按使用支付
重点是:
添加支付方式之前先使用优惠码。
如果优惠活动能够把首笔订单金额降至:
£0
即可按 £0 完成首期订购。
③ 不要使用网页翻译
办理过程中建议:
不开启浏览器整页翻译
不刷新页面
尽量一次完成整个订购流程
否则可能导致网页状态、优惠码或订单流程异常。
三、VOXI 号码与余额查询
VOXI 账户后台
https://www.voxi.co.uk/account
可用于查看账户及手机号信息。
余额 / Payment 页面
https://www.voxi.co.uk/account/payment
四、VOXI / Vodafone 充值
充值地址:
https://vestapay.vodafone.co.uk/VodafoneUKMobileWebUI/UI?ACTION=AT
手机号通常可以尝试以下两种格式。
国际格式
447351248xxx
英国本地格式
07351248xxx
两种格式选择其中一种即可。
五、DJI 4G 模块修改设备类型
本步骤为可选操作。
DJI 第一代 4G 模块硬件性价比较高,二手价格通常约:
70~90 元
早期甚至有约 25 元的价格。
与裸板 EC20 / EC25 相比,DJI 模块还有完整外壳,使用起来更方便。
1. 为什么需要修改?
DJI 第一代 4G 模块内部实际上使用:
Quectel EG25-G
但 DJI 修改了 USB VID / PID。
原始 USB ID:
2ca3:4006
属于 DJI 自己的 USB 身份。
这可能导致部分 Linux 软件无法按照标准 Quectel EC20 / EC25 / EG25 模块识别。
可以通过 AT 指令修改 USB 配置,将模块修改成 Quectel 常见 USB ID:
2c7c:0125
这样很多基于 Quectel 模块开发的软件即可直接识别。
六、修改 DJI 4G 模块 USB VID/PID
建议在 Linux 系统中操作,并暂时拔掉其他 USB 蜂窝模块,避免选错设备。
首先安装 socat:
sudo apt-get update
sudo apt-get install socat -y
1. 加载 option 驱动
sudo modprobe option
2. 临时将 DJI VID/PID 加入 option 驱动
echo 2ca3 4006 | sudo tee /sys/bus/usb-serial/drivers/option1/new_id
成功后,Linux 应该生成类似:
/dev/ttyUSB0
/dev/ttyUSB1
/dev/ttyUSB2
/dev/ttyUSB3
等串口设备。
3. 修改 USB 配置
通过 /dev/ttyUSB2 发送 AT 指令:
echo 'AT+QCFG="usbcfg",0x2C7C,0x0125,1,1,1,1,1,0,0' | socat - /dev/ttyUSB2,crnl
该命令会把设备 USB VID/PID 修改为:
VID: 2C7C
PID: 0125
4. 重启模块
执行:
echo 'AT+CFUN=1,1' | socat - /dev/ttyUSB2,crnl
模块会进行软重启。
等待设备重新枚举后执行:
lsusb
正常情况下应该看到类似:
2c7c:0125 Quectel Wireless Solutions Co., Ltd.
此时模块即可按标准 Quectel EC20 / EC25 / EG25 类型被 Linux 识别。
七、旧版 Vohive 一键安装方式
如果使用 Vohive,可以执行:
curl -fsSL https://raw.githubusercontent.com/iniwex5/vohive-release/master/install.sh | bash
默认安装目录:
主程序
/opt/vohive/bin/vohive
配置文件
/opt/vohive/config/config.yaml
数据目录
/opt/vohive/data
日志目录
/opt/vohive/logs
默认管理页面:
http://服务器IP:7575
默认账号:
用户名:admin
密码:admin
安装完成后建议立即修改默认密码。
八、Docker 部署 Vocat
目前推荐使用 Vocat Docker 镜像部署。
1. 拉取镜像
docker pull ghcr.io/mengmengcode/vocat:latest
2. 创建管理员账号
执行:
read -rsp "管理员密码: " VOCAT_BOOTSTRAP_PASSWORD; echo
printf '%s\n' "$VOCAT_BOOTSTRAP_PASSWORD" | docker run --rm -i \
--user 0:0 \
-v vocat-data:/opt/vocat/data \
--entrypoint /opt/vocat/bin/vocat \
ghcr.io/mengmengcode/vocat:latest bootstrap-admin
unset VOCAT_BOOTSTRAP_PASSWORD
此处输入的密码即之后登录 Vocat 后台使用的管理员密码。
默认管理员用户名:
admin
3. 启动 Vocat
docker run -d \
--name vocat \
--restart unless-stopped \
--network host \
--privileged \
--user 0:0 \
-v vocat-data:/opt/vocat/data \
-v /dev:/dev \
-v /sys:/sys:ro \
ghcr.io/mengmengcode/vocat:latest
4. 打开管理后台
例如服务器 IP 为:
192.168.1.xxx
则访问:
http://192.168.1.xxx:7575/
用户名:
admin
密码:
执行 bootstrap-admin 时输入的密码
九、Vocat Docker 缺少 qmicli
Vocat 的部分蜂窝网络控制功能依赖:
qmicli
qmicli 属于 libqmi / qmi-utils 工具集。
因为 Vocat 运行在 Docker 容器中,所以仅在宿主机安装 qmicli 通常没有作用。
必须让:
qmicli
存在于 Vocat 容器内部 。
1. 查看容器系统
执行:
docker exec vocat sh -c 'cat /etc/os-release'
确认 Vocat 镜像使用的 Linux 发行版。
2. Alpine Linux
如果显示为 Alpine,可执行:
docker exec -u 0 vocat apk add --no-cache qmi-utils
安装完成后重启:
docker restart vocat
验证:
docker exec vocat qmicli --version
同时检查 QMI 设备:
docker exec vocat ls -l /dev/cdc-wdm0
如果两项均正常,再重新执行 Vocat 定时任务。
十、qmicli 临时安装的缺点
直接执行:
docker exec -u 0 vocat apk add --no-cache qmi-utils
修改的是当前正在运行的 Docker 容器。
因此:
docker restart vocat
通常不会丢失。
但是如果执行:
docker rm vocat
然后重新创建容器,安装的 qmi-utils 就会消失。
同样,重新创建/更新镜像产生的新容器也不会自动保留这个修改。
因此更推荐创建自定义镜像。
十一、Vocat 定时任务常见错误
错误 1:SMS 一小时发送数量超限
示例:
EG25G-QDC507
失败
2026/8/19 18:49:51
send SMS failed (HTTP 429):
Global SMS limit reached:
at most 10 messages may be submitted in a rolling one-hour window.
原因
Vocat 存在全局短信发送频率限制:
滚动 1 小时窗口最多提交 10 条短信
超过限制后服务器返回:
HTTP 429
也就是:
Too Many Requests
解决方法
错开定时任务执行时间。
例如不要让大量 SIM 同时执行保号短信任务,而是分批发送。
十二、Vocat 无法恢复蜂窝数据状态
错误示例:
EG25G-QDC507
失败
2026/8/19 18:43:00
task completed but card policy restoration failed:
stop cellular data:
cellular data backend is unavailable:
install libqmi-utils to control /dev/cdc-wdm0
注意:
task completed
意味着主要任务可能已经执行成功。
真正失败的是:
card policy restoration
即任务完成后恢复 SIM / 蜂窝网络策略时失败。
原因
Vocat 想通过:
/dev/cdc-wdm0
控制 Quectel 模块的数据连接。
但是容器内部没有:
qmicli
因此无法执行 QMI 网络控制。
解决方法
首先检查:
docker exec vocat qmicli --version
如果提示:
qmicli: not found
则安装 qmi-utils。
Alpine:
docker exec -u 0 vocat apk add --no-cache qmi-utils
docker restart vocat
然后检查:
docker exec vocat qmicli --version
docker exec vocat ls -l /dev/cdc-wdm0
两项正常后重新执行任务。
十三、故障排查速查
现象
常见原因
处理方法
DJI 4G 模块不能被正常识别
DJI 私有 VID/PID
修改 2ca3:4006 → 2c7c:0125
没有 /dev/ttyUSB*
option 驱动未绑定
modprobe option + new_id
Vocat 找不到模块
/dev 没有映射或权限不足
使用 --privileged、-v /dev:/dev
Vocat 无法控制蜂窝数据
容器缺少 qmicli
安装 qmi-utils / libqmi-utils
找不到 /dev/cdc-wdm0
USB/QMI 驱动或模块 USB 配置异常
检查宿主机 USB 与 QMI 驱动
定时短信报 HTTP 429
一小时短信数量超过限制
将任务错峰执行
task completed but card policy restoration failed
主任务完成,但网络状态恢复失败
检查 qmicli 和 /dev/cdc-wdm0
容器重建后 qmicli 消失
使用 docker exec 临时安装
创建带 qmi-utils 的自定义镜像
十四、常用诊断命令
查看 USB 设备
lsusb
查看 Quectel 串口
ls -l /dev/ttyUSB*
查看 QMI 设备
ls -l /dev/cdc-wdm*
查看 Vocat 容器状态
docker ps -a --filter name=vocat
查看 Vocat 日志
docker logs --tail 200 vocat
实时查看:
docker logs -f vocat
查看容器系统
docker exec vocat cat /etc/os-release
检查 qmicli
docker exec vocat qmicli --version
检查容器是否能访问 QMI 设备
docker exec vocat ls -l /dev/cdc-wdm0
十五、关键注意事项
DJI 4G 模块修改 USB VID/PID 属于持久化设备配置操作。
发送 AT 指令前应确认串口对应的是目标模块,避免操作错误设备。
Vocat 使用 Docker 硬件访问模式时需要访问宿主机 USB 设备。
当前部署方式使用:
--network host
--privileged
-v /dev:/dev
-v /sys:/sys:ro
宿主机安装 qmicli ≠ 容器内安装 qmicli。
Vocat 调用的是容器内部的程序,因此必须保证容器内部存在 qmicli。
docker exec apk add 只适合作为快速修复。
如果准备长期运行,建议创建带 qmi-utils 的自定义 Vocat 镜像。
短信任务应错峰。
当前出现的限制为:
滚动 1 小时最多 10 条
因此多卡保号时不要把所有定时任务设置在同一分钟执行。
VOXI 的套餐、优惠、支付规则和网页流程可能调整。
实际办理时应以 VOXI 当时页面显示的信息为准。