logo NodeSeekbeta

分享个自托管多 SIM 网关:读卡器就能跑 VoWiFi,还能直接写 eSIM

手里海外卡一多就绕不开一个问题:人不在当地,卡基本就是废的。

我这边美国卡英国卡各有那么几张。插卡机开漫游要么搜不到网要么贵,验证码收不到,套餐还得月月保号。

正解一直是 VoWiFi(WiFi Calling)——IMS 注册上了,收短信打电话跟人在当地没区别。难的从来不是原理,是自己搓 IKEv2/IPsec 那套太费劲,还得保证出口 IP 落在归属国。

最近在用 MDD Sim Gateway,把「模块/读卡器 + 国家出口 + IMS 注册 + 短信/通话」整条链串成了一个 Web 面板,记一下。

一个面板管所有线路

概览

我这边三条线同时在线:

  • 一块大疆/Quectel EC25 模块,跑一张美国卡
  • 一个 Alcor Link AK9563 读卡器,跑一张英国卡
  • 一个三体 SCR Prime 读卡器,再一张英国卡

注意 EC25 那台4G 是关的,只开 VoWiFi 照样注册上了。这块分得很清楚:4G 开关只控数据承载,飞行模式单独控射频,VoWiFi 独立启停,每个模块各存各的状态。

对手里卡多的人,更实在的是后两条——普通 PC/SC 读卡器插张卡就是一条线,不需要模块。读卡器只跑 VoWiFi 不跑 4G,但收验证码打电话足够了,成本比模块低一大截。大疆 EC25 那种模块它会自动识别并建所需的虚拟读卡通道;三体 SCR Prime(04d9:c001)安装时会打 patchprime 驱动补丁,这块作者说是实机验证过的。

出口按国家走,而且强制过 UDP

这块我觉得是最见功力的地方。

网络出口

填 Clash 订阅,按国家配出口:关键词匹配的是订阅里的节点名(GB, UK, 英国 这种),匹配上的进 sing-box 的 urltest 池。关键在于——候选节点必须先通过 UDP 健康检查,才会被 VoWiFi 使用。

玩过的都懂:VoWiFi 走 IKEv2/ESP 的 NAT 穿越,吃 UDP 500/4500,而机场节点十个有八个不好好转发 UDP。自己搭的时候那种「配置全对就是注册不上」,十有八九栽在这。这里直接把 UDP 验证做成前置条件,卡片上挂个「UDP 已验证」,省了大把瞎猜的时间。

还有两点:

  • 每个国家起一条独立 TUN,只有对应 SIM 的 ePDG 路由进那条口子,不会串到别的国家,也不影响宿主机其他流量
  • 没有健康出口时按 SIM 故障关闭——只停这张卡的 VoWiFi,4G 不动,不是整个服务一起躺平

收短信、打电话

通话

短信跨模块统一在一个页面按会话看,能收能发。通话是浏览器软电话,注册状态直接写在上面(registered),拨号盘拨出去、来电也能接,带通话记录。另外还开了局域网 SIP,想拿自己的话机接也行。

真正解决「人在国内」的是通知这块:Webhook / PushPlus / Telegram 都有,而且 Telegram 机器人是双向的——同一个 bot 既推来电和短信,也吃 /sms、/call、/hangup、/status 这些指令,直接回复那条来信通知就能给对方回短信。等于卡在家里吃灰,手机上照常用。只有白名单里的 chat/user ID 能下指令,每次操作都写审计。

能直接写 eSIM

eSIM

面板里集成了 lpac(安装时固定版本本地构建),读卡器插 eUICC 卡就能读 EID、下 profile、启用/禁用/改名/删除,需要显式选安全元件的双 SE 卡也支持。我那张上面挂了两个 profile,切换点一下,不用拔卡不用插手机。

细节做得挺克制:因为 lpac 要独占 PC/SC,点「读取」之前它会先提示这条线的 VoWiFi 正在跑、读取会停线路,而不是默默把你正在用的线掐了。

安全那块

几个点还算让人放心:

  • 用真 SIM/eSIM 走 EAP-AKA 和 IMS-AKA,不读也不存 Ki/OP/OPc,也没有软件 Milenage 那条路,AKA 密钥留在卡里
  • 管理端默认 HTTPS,首次设置管理员密码(scrypt 加盐),CSRF、防爆破、审计都有
  • 导出支持包会把 IMSI / ICCID / EID / 号码 / Token / 激活码这些抹掉

但有一句必须念出来:在管理员账号建立之前,任何能碰到管理端口的客户端都可以申领第一个管理员。所以装完第一件事就是在可信内网或 VPN 里把管理员建掉,别裸奔在公网上。

装起来

Debian / Ubuntu / Armbian ARM64,要 systemd + Docker + USB:

git clone https://github.com/MddIdd/mdd-sim-gateway.git
cd mdd-sim-gateway
sudo ./install.sh install

脚本会自己装 pcscd、ModemManager / NetworkManager,按架构拉 sing-box 并校验 SHA-256,本地构建 lpac,最后装 systemd 服务。已有的 Docker 不会被它升级或重配,只管带自己标记的容器——这点挺讲究。装完开 https://<网关地址>:8443 建管理员。

几句实在话

  • 项目很新(8 月初开的仓库,现在 1.2.2),GPL-3.0,底子是 SWu-IKEv2 + Asterisk + sing-box + lpac 这几个成熟件拼起来的,致谢和第三方许可写得很清楚。想上生产的自己掂量
  • 出口 IP 得干净,运营商侧是会看的
  • 主叫这块留个心眼:个别卡的运营商在 VoWiFi 下不放行呼出,呼叫会被直接挡回来。这是运营商侧策略,跟软件没关系,买卡前最好先搜搜有没有人跑通过
  • 最终能不能注册上,还是看套餐、区域、设备身份和运营商策略,这个谁也保证不了

地址:https://github.com/MddIdd/mdd-sim-gateway

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有71795位seeker

🎉欢迎新用户🎉