giffgaff + eSIM + Air780EP:我的海外号码自托管方案

2026-06-08

最近看到有网友爆料,说 Codex 现在开始要求短信验证码二次验证了。

看到这个消息的时候,我第一反应不是验证码本身,而是接码平台估计要越来越难用了。接码本来就不是什么长久方案,一方面很多平台本身就处于灰色地带,另一方面越来越多服务开始识别虚拟号码和共享号码。平时注册个论坛还行,真要绑定重要账号,心里多少还是有点发虚。

既然如此,那干脆搞个自己的号码。

其实我以前是有一张 giffgaff 的。当年折腾海外服务的时候办的,后来用得越来越少,结果某天想起来的时候,号码已经被回收了。现在回头看,当时还是太年轻,总觉得号码放在那里不会跑,结果它真的跑了。

既然以前用过,这次第一反应自然还是 giffgaff。结果一查资料发现,现在和以前完全不一样了。以前申请最大的成本是等邮寄,现在的问题是压根邮寄不了了。网上倒是还有人在卖库存卡,但价格已经被炒到八十多块钱一张。我盯着那个价格看了好几秒,总觉得哪里不太对劲——八十多块钱买张原本免费申请的 SIM 卡,这事多少有点魔幻。

于是继续查资料。

后来发现一个有意思的方案:现在居然可以直接申请 eSIM。更巧的是,招商银行万事达储蓄卡用户可以直接在 APP 里面购买。本来看到这里挺高兴,结果下一秒又想起来,我手机不支持 eSIM。属于那种标准的“问题解决了一半”。

不过问题不大。既然手机不支持,那就让 SIM 卡支持。

于是我买了一张 eUICC 白卡。简单理解的话,可以把它看成一张能够写入 eSIM 配置的空白 SIM 卡。很多原本不支持 eSIM 的设备,通过这种方式也能间接使用 eSIM。

eUICC 白卡

接下来参考了一篇文章,通过修改版 giffgaff 客户端直接获取 eSIM 激活码,然后写入 eUICC 卡中。

参考文章:

Giffgaff eSIM直装版:直接获取eSIM激活码 https://simonmy.com/posts/giffgaff-esim-mod-apk.html

整个过程比我想象得顺利,没多久我就重新拥有了一张英国原生手机号。

本来到这里,这件事应该已经结束了。

结果新的问题很快出现。

我的手机两个卡槽本来就已经满了,而且即使有空位,我其实也不太想把这张卡长期插在手机里。因为验证码这种东西有个特点:平时几年都用不上一次,真要用的时候,偏偏发现卡不在身边。

于是我开始思考另一个方案。

既然服务器是 24 小时在线的,那能不能把号码也变成 24 小时在线?

说干就干。

随后我买了一个 Air780EP 通信模块。简单来说,就是一个能插手机卡的“小基站”,接到家里的NAS之后,可以通过串口收发短信。

Air780EP

本来以为插上设备、装个软件、配置一下就结束了,结果事情并没有那么简单。ModemManager、mmcli、Gammu 之类的方案都试了一圈,兼容性始终不太理想。最后还是回到了最原始的办法——直接通过 AT 指令和模块通信。

虽然过程比预想中折腾一些,但好处也很明显:简单、稳定、可控。

短信收发打通以后,后面的事情就简单了。

毕竟现在都什么年代了,写脚本这种事情当然交给 AI。

我直接把需求丢给 Codex。

第一个脚本负责监听短信。服务器收到短信后,自动通过 Server酱推送到微信。这样以后验证码到了服务器,我人在外面也能第一时间收到通知。

第二个脚本则是专门用来保号。

因为上一次 giffgaff 被回收的经历实在印象深刻,所以这次我不打算再把希望寄托在自己的记忆力上。根据 giffgaff 的保号规则,只要定期产生一次使用行为即可保持号码活跃。于是我又让 Codex 写了一个定时任务,每隔 170 天自动给我自己的手机发一条短信。

这样既完成了一次活跃记录,也相当于给自己发了一条提醒。

至此,整件事情终于闭环了。

最开始,我只是想解决一个验证码的问题。

最后却变成了一套完整的海外号码基础设施:

架构图

回头看,这套东西对于绝大多数人来说确实有点折腾过头了。

但对于经常接触海外服务的人来说,一张稳定、长期、可控,而且不会突然消失的手机号,本身就是一种基础设施。

很多有趣的项目其实都是这样开始的。

最初只是为了解决一个很小的问题。

结果解决着解决着,问题越来越大,系统越来越复杂,最后莫名其妙搭出了一套自己都没想到会去做的东西。

这次,就是从一条验证码短信开始的。