Homing 用网关的方案
不需要服务器 · 不需要账号

两台 iPhone 之间的
短信中继

把国内卡留在家里那台 iPhone 上。它收到的每条短信,自动经 iMessage 转到你身边这台;反过来,你也能远程让它用那张卡发短信、回报电量和位置。

全程只有一条快捷指令。没有服务器、没有后台、没有账号, 也没有任何第三方经手你的验证码——消息只在你自己这两台设备之间走。

它是怎么跑起来的

iOS 的快捷指令有一种自动化叫「收到通知时」。把它的触发 App 选成「信息」, 那么备用机每收到一条短信,这条快捷指令就被系统自动唤起一次—— 它读得到这条通知的发件人和正文,然后原样用 iMessage 发给你。

反过来那一半用的是同一个入口:你发给备用机的 iMessage 也会触发它。 于是只要正文以你设的口令开头,它就不当普通消息转发,而是当指令执行。

银行 / 平台发来验证码
普通短信
备用机 · 放在家里插着国内卡,装了这条快捷指令
iMessage两台都是 iPhone,不花钱
主力机 · 在你身边不用装任何东西
主力机发一条 口令>>sms>>…
iMessage
备用机认出口令,改为执行指令
用国内卡发出
任意手机号对方看到的是你那张国内卡的号码
为什么走 iMessage 而不是别的

两台都是 iPhone 时它是免费的,而且不依赖任何第三方服务器。 更要紧的是:备用机断网的时候,苹果会自动退回成普通短信—— 家里宽带挂了、路由器重启了,验证码照样到得了你手上(那一条走运营商,要钱)。 这一点是它最实在的优势。

能做到什么

① 短信自动转发

备用机收到任何短信,几秒内出现在你手机上, 带着发件人。银行验证码、快递、运营商通知,一条不落地跟着你走。

② 远程指挥备用机

用那张国内卡发短信给任意号码; 或者让它报一次现状——设备名、专注模式、电量、充没充电、网络、当前位置。

开始之前:三个前提

1

两台都必须是 iPhone

这套方案完全建立在 iMessage 和快捷指令上,安卓两样都没有。 主力机不用装任何东西,也没有系统版本要求——它只负责收发消息。

2

两台要能用不同的 iMessage 收发号码

它们必须是两个能互相发信的独立地址——同一个地址等于自己给自己发,中继不成立。 地址可以是手机号,也可以是邮箱。

怎么查? ▾

两台手机分别打开 「设置」→ 搜索 iMessage → 看「通过下列方式收发 iMessage 信息」和 「开始新对话时使用」。要点是两台的「开始新对话时使用」选的不是同一个

把那个地址一字不差地抄下来, 带 +86+81 这种国号的, 国号也要抄进去。

主力机的 iMessage 设置页,开始新对话时使用选的是地址 A
主力机:这台「开始新对话时使用」选的是 +81 那个
备用机的 iMessage 设置页,开始新对话时使用选的是另一个地址 B
备用机:这台选的是 +86 那个——和上面那台不是同一个

两台共用一个 Apple 账户也没关系—— 上面那张「能收发的全部地址」里列着好几个是正常的, 要紧的只是下面「开始新对话时使用」那一项各选各的

3

备用机需要 iOS 27.0 或以上

快捷指令从这一版起变化很大,更早的版本上这条装不起来、或者触发器加不上。 只要求备用机——主力机什么版本都行。

怎么查? ▾

备用机上「设置」→「通用」→ 「关于本机」→ 看「iOS 版本」,需要 ≥ 27.0

装起来:四步

1

备用机上安装快捷指令

用备用机打开下面这个链接,按提示添加。 一定要在备用机上装——主力机不需要装任何东西。

在备用机上打开这个链接 →

装的时候不会弹问题问你

iOS 的「导入提问」在快捷指令被编辑过之后就不跟着走了,所以这份装完是直接进列表的。 两个要填的东西留在快捷指令里面,下一步就去改它们。

2

打开它,改掉两个文本框

长按刚装好的「Homing双机中继」→ 编辑。往下滚,有两个「文本」动作, 把里面的占位文字整段删掉换成你自己的:

第 1 个文本控制机(主力机)的 iMessage 地址
就是前提 ② 里抄下来的那个「开始新对话时使用」,带国号。 转发和回报都发去这里。
第 2 个文本一个只有你知道的控制口令
一长串随机字母数字,别用生日、别用 0000。 它是唯一的门。

顺便确认最上面那块触发器还在,并且 App 选的是「信息」。改完直接返回,会自动保存。

快捷指令顶部的自动化触发器,App 选的是「信息」
顶上这块要在,而且 App 是「信息」
两个文本动作,分别填控制机地址和控制口令
往下滚,两个「文本」:上面填地址(带国号),下面填口令
3

去「自动化」里确认它是开着

切到快捷指令 App 底部的「自动化」,找到 我收到信息的通知时 · Homing双机中继, 确认右边的开关是绿的

顺手点进去把「运行前询问」关掉——开着的话锁屏时它等于不会跑, 而备用机绝大部分时间都是锁着的。

自动化列表里这条的开关是打开的
开关必须是绿的,不然一条都不会转
4

把「信息」的通知放行(强烈建议)

这条快捷指令完全依赖「信息」App 弹出通知才会被唤起。通知被挡住的那一刻, 那条验证码就永远没有第二次机会——而且不会有任何东西告诉你漏了

备用机上要做两件事:

· 「设置」→「通知」→「信息」,确认通知全部打开(锁定屏幕、通知中心、横幅都要)。

· 「设置」→「专注模式」,每一个专注模式(含「勿扰模式」「睡眠」)里都把 「信息」加进允许通知的名单。

睡眠模式是最容易栽的那个

它往往是自动按时段开启的,于是表现成「白天好好的,半夜的验证码一条都不来」, 而你第二天早上看什么都正常。

怎么用

① 短信转发(自动,不用管)

备用机收到任何短信,会自动转成一条 iMessage 发到你主力机上,格式是:

【发件人】短信正文

发件人一定会带上——你主力机那头所有转发都来自同一个会话(备用机), 不写发件人的话,银行、快递、运营商挤在一起分不清谁是谁。

② 让备用机发一条短信

用主力机给备用机发这样一条 iMessage:

口令>>sms>>+8613800138000>>短信内容写在这里
分隔符是两个半角的「大于号」

必须是英文输入法下的 >>。中文输入法打出来的全角 >> 匹配不上,那条会被当成普通消息转发回来—— 两者在屏幕上几乎看不出区别。

短信内容里不能出现 >>

出现一次,后面的内容就被截断了。

号码尽量写完整的国际格式

比如 +8613800138000。不带国号也能发(按备用机那张卡的归属地算), 但千万别用中文输入法打那个「-」——全角连字符和半角长得一模一样, 而错一位就是发给了另一个人。

③ 问备用机现在怎么样

第一次用之前,必须先在备用机上手动跑一次

这条指令要取当前位置,而取位置排在发消息之前——没给权限的话整条就断在那儿, 你什么都收不到(不是少一行位置,是一条都不回)。而自动化在后台跑的时候, 没人能点那个授权弹框。
所以:打开这条快捷指令,手动运行一次,把定位权限的框弹出来选「始终允许」。 之后就不用再管了。

口令>>bat

它会回一条消息,里面是设备名、专注模式、电量、充没充电、网络, 末尾带当前位置和一个地图链接。

它做不到什么

这些不是暂时的缺陷,是这个方案的形状决定的。知道了再决定用不用:

没有补传通知没弹出来(专注模式拦了、自动化被系统关了、手机重启后没解锁), 那条短信就永远没了,不会补。
没有任何告警坏了不会有人告诉你。你只会在某天等不到验证码的时候才发现, 而那往往是最要紧的时候。
没有历史和检索所有东西都躺在「信息」的一个会话里。 想找三个月前那条、想按号码筛、想只转发验证码——都做不到。
没有规则全转,或者不转。没法「只转银行的」「广告不推送」「夜里静音」。
来电和 App 通知不管只有短信。备用机上有人打电话、微信来消息,这边一无所知。
要上面这些,就得有一台服务器

Homing 是同一件事的另一种做法: 把卡插在一台闲置安卓机上,长连接上报到你自己的小服务器,再按规则分发到 Telegram / Bark / 通知。有历史、能搜索、能设规则、掉线会告警——代价是你得自己有一台 VPS。

看看那个方案 →

这一页讲的方案和 Homing 本身没有关系,不需要账号、不经过这台服务器, 放在这里只是因为它解决的是同一个问题,而且对只有两台 iPhone 的人来说足够了。

快捷指令的源码在 开源仓库scripts/ios/relay.mjs,是人读得懂的 JS,不是二进制黑箱—— 你可以自己看它到底做了什么、自己重新生成一份。

Homing 首页 · 通知