想用手机接着改电脑上的 ChatGPT Codex,桌面端弹出「无法更新远程控制状态」。我把 ChatGPT 退掉重开,提示换成了「无法获取配对码」。
浏览器能开 chatgpt.com,Clash Verge 的系统代理也开着,「虚拟网卡模式」还点过。看起来都开了,手机还是配不上。后面才发现,手机根本不是连云端会话,而是遥控这台已经打开的 Mac。电脑这边的中继没连上,扫码、重装 App 都没用。
手机连的是这台电脑
官方说明在 Remote connections。手机里没有单独的 Codex App,用的是 ChatGPT 里的 Remote。代码、终端、权限、本机文件都还在电脑上,手机只是接着改。
配对要从电脑发起。Mac 上打开 ChatGPT 桌面版,保持唤醒、别合盖,进 设置 → 连接 → 控制此 Mac,打开「允许其他设备连接」。出现二维码以后,手机用同一个账号、同一个 workspace 去扫,再进 Remote 选这台机器。
CLI 和 IDE 插件发不出这套手机配对。桌面版已经在跑时,也不要再开一份 codex remote-control start,会和现有进程抢通道。合盖、休眠、关掉 ChatGPT,手机这边都会断。插着电、打开「插电时保持远程控制唤醒」稳一点;真要合盖,外接显示器。
旧配对如果 6 月 8 日之后没用过,得重新扫。退出登录会把 Remote Control 关掉,配对还在,重新登录后再把开关打开就行。
第一句报错其实是中继没连上
本机是 ChatGPT 桌面版,Codex 嵌在里面,不是以前那个独立 Codex.app。进设置里的连接,开关转一下就弹出「无法更新远程控制状态」。
这时候别先去重装手机。电脑日志在 ~/Library/Logs/com.openai.codex/,按日期找最新的 codex-desktop-*.log。我这边反复出现 remoteControl/enable、remoteControl/status/read,中继地址是:
wss://chatgpt.com/backend-api/wham/remote/control/server
错误是 Connection refused。桌面端在向 OpenAI 登记「这台电脑可以被遥控」,WebSocket 没连上,状态写不回去。界面那句话就是这次失败。
聊天能走代理,远程控制还在直连
同一时刻测了两条路。走 Clash Verge 的系统代理,chatgpt.com 能打开;加上 --noproxy '*' 直连 443,超时。
主窗口能聊天,是因为普通 HTTPS 走了系统代理。远程控制那条 WebSocket 没跟走,自己打公网,所以被拒。Clash 的「系统代理」只覆盖会读系统代理的程序,ChatGPT 能聊,不代表中继已经通。
要把这种不走 HTTP 代理的连接也送进 Clash,得开 虚拟网卡模式,也就是 Tun。内核会建一块 utun,从路由层接管流量。本机 Clash Verge Rev 是 2.5.2,「内置增强」不是 Tun,那是配置合并,早就开着。真正管流量的是虚拟网卡。
开之前先确认当前节点能上网,免得整机断掉。设置里先看服务模式装好没有,没装的话网卡后面起不来。然后回首页打开虚拟网卡模式。macOS 可能要密码;系统如果提示 Clash Verge 被拦,去隐私与安全性,或者登录项与扩展里放行。菜单栏猫咪图标里也能开关。
开完不要只看开关是不是亮。终端里跑:
ifconfig utun1024
Clash Verge 默认网卡名就是这个。看得到这块接口,再测直连:
curl --noproxy '*' -I --max-time 8 https://chatgpt.com
以前超时、现在能通,Tun 才算接管了。系统代理可以继续开着。
提示变了,配对并没有开始
我以为 Tun 开好了,把 ChatGPT 完全退出再打开。第一句报错没了,换成「无法获取配对码」。新日志里 remoteControl/enable 成功了,设备列表大约 800 毫秒也返回了,可是没有 remoteControl/pairing/start。
HTTP 已经能走系统代理,所以「无法更新状态」消失了。点添加设备时,桌面端觉得远程控制还没注册完,直接不发码。配对根本没开始,不是码生成失败。
注册靠的还是前面那条 WebSocket。REST 通了,中继没通,二维码就不会出来。
开关亮着,网卡其实没起来
回头再看 Clash Verge,虚拟网卡模式是开的,配置里也写了 enable。ifconfig 里却没有 utun1024,默认路由还在普通网卡上。内核日志就一句:
Start TUN listening error: configure tun interface: Connect: operation not permitted
macOS 创建虚拟网卡、改路由,必须先有服务权限。服务没装好,或者系统扩展没放行,开关可以亮,网卡起不来。直连继续超时,Codex 中继也就继续失败。「我开过 Tun」不够,得看接口在不在、直连通不通。
卸掉以后,安装入口在扳手里
为了重装服务,我把虚拟网卡相关服务卸了。卸完设置里找不到「安装虚拟网卡」这种大按钮。2.5.2 把安装收在虚拟网卡那一行旁边:卸载是垃圾桶,卸完变成蓝色扳手,鼠标放上去写「安装服务」。
首页网络设置里,先点虚拟网卡模式那个标签,开关右侧就是扳手。同一页的系统信息里,运行模式如果显示「用户模式」,点这几个字也会装服务并重启内核,装好应变成「服务模式」。设置里的系统设置,虚拟网卡那一行同样有扳手。
装好后扳手变回垃圾桶,别再点。然后输入密码,必要时去系统设置放行,完全退出 Clash Verge 再打开,打开虚拟网卡,再跑 ifconfig 和直连 curl。
网卡真起来了,再去拿配对码
确认运行模式是服务模式、utun1024 在、直连 chatgpt.com 不再超时之后,再完全退出并重开 ChatGPT。Tun 起来之前开着的进程,中继可能还在直连。
然后进设置 → 连接 → 控制此 Mac → 添加。出码了再用手机扫,账号和 workspace 必须一致。Remote 里能看到这台 Mac,而不是一直停在「正在寻找桌面」,才算配上。
Tun 没起来之前反复点添加,只会继续报无法获取配对码。手机重装、清缓存补不上电脑这边的中继。桌面版已经在跑时,也不要再开一份 codex remote-control。




