
说句实在话Claude Code 和 Codex 这类命令行 AI 编程工具你只要用过几天就会上瘾——出活儿快还能扔在后台自己跑。但它们的尴尬点也很明显都绑在一台电脑上。你人一离开工位手机想看一眼任务跑到哪了、临时改个 prompt、甚至让模型继续修 bug就全抓瞎了。我最近大半个星期都在折腾手机远程连 Claude Code / Codex这件事前后试了不下七八种姿势最后沉淀出 4 套真正能落地、稳定性也过得去的方案。这篇文章不讲虚的直接上方案、上步骤、上配置顺便把我在实操里踩过的坑和排查思路一并整理出来。适合谁看不管你是会用 Termius 连服务器但没试过手机开发的老手还是刚从 Claude Code 入门、想知道怎么在户外继续调度任务的新人照着选一套配置起来就行。1. 先说清楚手机远程连的核心思路1.1 为什么要远程连、远程的是哪一层先厘清一个概念手机远程连接 Claude Code 和 Codex本质不是在手机上跑模型而是让手机变成一台终端/浏览器界面去控制你电脑上正在跑的 CLI 进程。Claude Code 和 Codex 本体都是一个命令行程序依赖 Node.js 或 Python 运行时需要调 API、读写本地文件、执行 Git 操作。手机装不了完整的开发环境也没必要装。你真正要做的是把手机接到那台运行着这些 CLI 的电脑上然后通过 SSH 或 Web 界面把命令输入进去、把输出拉回来。所以方案的核心永远是网络通道 终端/编辑器访问层。1.2 四套方案的定位与选型我把最终留用的 4 套方案按使用体验和门槛排了个序先看这张对比表后面再逐套展开方案访问层是否需要公网 IP上手难度适合场景方案一Termius / Blink Shell SSH 直连原生终端局域网内不需要外网需要内网穿透或组网低日常快速操作、纯命令行控场方案二code-server 浏览器 IDEWeb 版 VSCode需要可用 Tunnel/反代解决中想看文件结构、写点 prompt、有鼠标键盘体验方案三VS Code Remote Tunnels vscode.dev官方 Web 编辑器不需要走微软隧道低主力推荐浏览器访问、零公网暴露方案四私有组网/隧道网关自定义需要一台有公网的跳板或用组网工具中高长期稳定自用、多设备同时接入选型上我的个人建议是不做前端界面美化、只求快选方案一想获得完整 IDE 体验又不想折腾公网选方案三需要完全自控、数据不想经过第三方隧道就上方案四。code-server 则适合你已经有一台服务器、想顺手把 Web IDE 也部署上去的情况。1.3 动手前的安全基线检查这步在最前面但最容易被人跳过。远程连接意味着你的电脑多了一个暴露面以下三条是底线密码登录必须关只用 SSH 公钥认证。真要用密码也至少把 PermitRootLogin 设为 no。Claude Code 和 Codex 的 API 密钥基本都存在本机配置文件里如 ~/.claude/settings.json 和 ~/.codex/auth.json远程连接后等于密钥可以被手机端间接访问所以绝对不要把你的 SSH 私钥再传给其他人。如果走公网一定要给服务加一层 HTTPS 或至少用 Token 鉴权别裸奔。2. 方案一Termius / Blink Shell 手机终端 SSH 直连2.1 Mac/Windows/Linux 服务端怎么开 SSH这套方案的核心是让电脑先跑起 SSH 服务。Mac 最简单系统设置 - 通用 - 共享 - 打开远程登录然后启用当前用户即可。Windows 需要去设置 - 系统 - 可选功能安装 OpenSSH 服务器再启动 sshd 服务Linux 一般是sudo systemctl enable --now ssh。开完之后先在电脑本地验证一下ssh localhost能通再往下走。然后生成密钥对。我习惯在电脑上用ssh-keygen -t ed25519 -C mobile-access生成再把公钥追加到~/.ssh/authorized_keys。手机端只保存私钥这样即使手机丢了电脑上也能随时把那条公钥删掉而不需要改密码。2.2 手机端配置与日常连接步骤手机端我用 TermiusAndroid 和 iOS 都有它比系统自带终端好用的地方是支持密钥管理、片段发送、以及多主机分组。iOS 上还有 Blink Shell 和 Termius 二选一但 Blink Shell 对 Mosh 支持更原生。配置步骤非常简单新建 HostIP 填电脑的局域网地址或公网地址端口默认 22。认证方式选 Key把上一步生成的私钥粘贴进去。保存后连一次试试。连上后直接敲claude或codex就能进交互界面。实操中我最常用的组合是 Termius tmux。tmux new -s work开一个会话然后手机锁屏、断网都不怕回来看tmux attach -t work接着聊。Claude Code 长时间跑任务时尤其需要这层保护——有一次我信号断了SSH 直接断开但 tmux 里的 Claude Code 还在后台跑重新连上后像什么都没发生一样继续输出这点非常关键。2.3 弱网环境怎么保持连接不中断手机在户外用 4G/5G 时SSH 经常因为网络切换导致断连。解决办法是给 Termius 开 Mosh需要服务端也安装 mosh它能自动处理 IP 漂移和弱网丢包。Linux 上apt install mosh就行Mac 上可以brew install mosh。iOS 的 Blink Shell 内置 Mosh 客户端Termius 也已经支持 Mosh直接在连接配置里切换协议。但注意Mosh 只适合跑交互式终端Claude Code 的流式输出体验很好如果要用编辑器Mosh 没办法转发端口所以端口转发场景还是得回到 SSH。另外手机输入法的回车键有时会发不出换行我把 Termius 的发送回车映射成蓝牙键盘的快捷键或者直接在片段里存好常用 prompt 模板能省不少事。3. 方案二code-server 自建 Web IDE3.1 为什么还需要一个 Web 版编辑器SSH 终端适合敲命令但 Claude Code 这种工具经常会输出大段 diff、多文件改动终端里看结构很累。这时候你就想打开一个 Web 版 VSCode 界面左边是文件树右边是 AI 生成的代码 diff视觉体验完全不一样。code-serverCoder 社区维护的开源项目就是把 VSCode 网页化的成熟方案你可以在浏览器里直接获得接近桌面版 VSCode 的体验。而且它自带终端面板集成终端里可以直接跑claude等于既有 IDE 又有 CLI手机端一个浏览器全搞定。3.2 服务端部署和 systemd 托管以一台 Linux 服务器或你本机 Ubuntu 为例部署命令建议直接用官方安装脚本然后通过 systemd 实现开机自启curl -fsSL https://code-server.dev/install.sh | sh sudo systemctl enable --now code-server$USER启动后它会默认监听127.0.0.1:8080第一次访问会让你填密码密码在~/.config/code-server/config.yaml里。我这里强烈建议不要直接改监听地址成 0.0.0.0 就完事因为 HTTP 裸奔到公网很容易被扫描器盯上。正确做法是保持本地监听再用 Caddy 或 Nginx 反代并自动加 HTTPS。我用 Caddy 比较多配置非常短code.example.com { reverse_proxy 127.0.0.1:8080 }Caddy 会自动申请证书浏览器访问就是 HTTPS手机端不会再出现剪贴板不可用或麦克风权限被拒这类烦人问题。3.3 手机浏览器端使用体验与限制手机上用 Safari/Chrome 打开 code-server 地址登录后就能看到完整编辑界面。我实测下来Claude Code 的对话流在网页终端里渲染速度正常文件树点起来也没迟滞。但有三个体验问题需要提前知道手机屏幕小建议开横屏同时把浏览器书签加到主屏幕全屏效果会好很多。部分 VSCode 扩展在网页端不可用尤其是依赖 Node 原生模块的语言服务器装之前先看扩展有没有 Web 支持。输入法冲突偶发比如中文输入法导致快捷键被吃掉我一般直接切英文键盘写 prompt或者用手机蓝牙键盘。code-server 还支持?folder/path/to/project直接打开指定目录我会把项目中常用的几个目录存成书签点开就是工作区省去每次都找路径的时间。4. 方案三VS Code Remote Tunnels 手机浏览器强烈推荐4.1 这个方案的原理和最大优势如果你不想自己维护服务器、又想要纯粹 VSCode 体验Remote Tunnels 是最省心的选择。它的原理是在电脑上装一个 CLIcode tunnel它会主动和微软的隧道服务建立加密连接之后你不需要公网 IP、不需要端口映射手机或任何设备的浏览器访问vscode.dev/tunnel/你的机器名就能打开同一份工作区。最大优势是零公网暴露。电脑上没有开放任何入站端口数据走的是微软托管的加密隧道比自己在路由器上做端口转发安全得多。对我这种经常不在家、又不想把家庭网络暴露给公网的人来说这点太重要了。4.2 从零开始配置 Remote Tunnels步骤极少但有些坑。先在电脑上确保装的是最新版 VS Code然后命令面板输入Remote-Tunnels: Turn on Remote Tunnel Access按提示登录 GitHub 账号它会生成一个机器名并显示确认码。浏览器打开https://vscode.dev/tunnel/机器名用同一个 GitHub 账号登录即可连通。如果你更喜欢命令行方式code tunnel它会自动输出一个链接和验证码在任意浏览器输入验证码就能绑定。这个 CLI 方式对无桌面环境、只有 SSH 的服务器同样适用。还有一点需要提醒code tunnel进程必须保持运行SSH 断开或关掉终端会导致隧道失效。我建议给它在 systemd 里挂个用户服务这样重启后也能自动拉起。4.3 集成终端里跑 Claude Code / Codex 的实战配置连接成功后远程端会自动变成你电脑的目录然后按Ctrl J打开集成终端输入claude或codex就能直接进入交互界面。我通常会把工作区直接设成项目根目录这样 Claude Code 能拿到完整的 Git 上下文改代码时自动 diff 也正常。这个方案还有一个隐性的好处你可以在手机上看 Claude Code 生成的完整文件内容甚至直接编辑文件让 AI 重新读取。比如有一次我在外面Claude Code 改了个配置文件格式乱了我直接在网页编辑器里手动修了一下再让它继续整个过程流畅到不可思议。如果你的 Claude Code 里配了 MCP 服务或自定义 slash 命令Remote Tunnels 也不会影响因为终端上下文和本地运行完全一致。但要注意如果项目太大手机浏览器首次加载会比较慢建议只打开小目录或者用内置的文件搜索功能快速定位。5. 方案四私有组网/隧道网关方案5.1 什么时候必须上组网方案三虽然省心数据链路有一点经过第三方。如果你在意的不是方不方便而是数据不能出自己网络那就得走私有组网或自建隧道。我自己是在需要频繁访问多台机器、且其中有一台服务器位于公司内网时才切换到这套方案。这里的工具有几个选项Tailscale 这类组网工具可以把你所有设备组成一个虚拟局域网手机装上客户端后直接访问电脑的内网地址frp 则适合你有一台带公网 IP 的服务器把内网电脑的端口转发出去。两者应对的场景不同但都能达到手机在外网也能像在局域网内一样访问服务的效果。5.2 用组网方式实现 SSH code-server 双接入以 Tailscale 为例配置非常简单在你电脑上安装 Tailscale 客户端并登录。手机安装对应客户端并登录同一个账号。电脑会获得一个 100.x.x.x 的虚拟局域网地址手机端直接用这个地址 SSH不需要任何公网端口映射。如果你也想用 Web IDE就在电脑上把 code-server 起在某个端口然后手机浏览器访问http://100.x.x.x:8080即可。这样电脑上干净的只有一个组网接口没有对外开放任何端口安全性主要由组网工具的身份认证保证。我建议在组网管理后台开启仅限账户内设备访问这样即使别人的设备乱扫也进不了你的网络。5.3 非对称网络下的端口转发与防火墙注意事项如果组网工具不适合比如被办公网络策略限制再用 frp 自建隧道。frp 的配置思路是公网服务器运行 frps内网电脑运行 frpc 把 SSH 或 code-server 端口映射出去。frpc 配置大致这样的形式[common] server_addr your-server-ip server_port 7000 token your-token [ssh] type tcp local_ip 127.0.0.1 local_port 22 remote_port 6222 [code-server] type tcp local_ip 127.0.0.1 local_port 8080 remote_port 8443然后公网服务器防火墙记得只放行对应端口并在 frps 里开启认证。相比组网自建隧道多了一台公网服务器的维护成本但最大好处是不依赖第三方。这套方案我最后提醒一句访问控制一定要做好。别用默认 token别把端口范围开太大建议只映射你需要的那几个端口。踩过坑的人都知道公网扫描器比你想象的勤快。6. 实操中的常见问题与避坑速查6.1 连不上、连上就断优先排查这三处手机远程连接出了状况大多数时候不是工具问题而是下面几个最基础的环节没弄干净SSH 认证失败检查是不是公钥没追加到 authorized_keys私钥权限是不是 600忘了chmod 600在手机端可以直接粘贴字段但服务器端会拒绝。端口被防火墙挡云服务器厂商的安全组、Windows 防火墙、Linux ufw 都要确认放行。Mac 的远程登录如果开了但连不上去系统设置里面看下仅允许管理员的开关。家宽网络没有公网 IP这是现在很普遍的情况。光猫拨号后子网是运营商 NAT 的手机在外面根本访问不到你内网地址。这种场景下别死磕端口映射老老实实走组网或隧道方案。6.2 Claude Code 相关报错的排查思路热词里常出现cc switch local proxy failed while handling codex endpoint /responses... provider这类报错。这个问题的本质是国内环境配置了多个 AI CLI 的切换工具如 CC Switch时本地代理服务没起来或配置的 endpoint 地址不可达导致 Claude Code 请求路由到 Codex endpoint 时失败。排查步骤给一个通用路线先看 CC Switch 自身服务是否在运行、端口是否被占用再确认所选 provider 的 base URL 是否填写正确最后把网络代理模式关掉直接用直连试试。如果问题依旧就用 Claude Code 原生的/status看当前配置清掉不用的环境变量。这类问题大多数是配置没写对和本地进程没起来切到无代理模式反而能快速定位。6.3 Codex 使用中常见的登录、启动失败问题Codex CLI 作为 OpenAI 的官方命令行工具手机远程连上后最容易遇到的问题有两类。一类是登录态失效手机终端里如果网络切换频繁Codex 的 auth token 可能因 IP 漂移而失效重新codex login就行建议把浏览器打开的认证 URL 记住方便在手机上完成授权。另一类是启动时报缺库或版本不对比如 Python 版本不匹配直接导致进程启动即退出。这种我建议先确认命令行里用的是哪个 Python必要时用虚拟环境隔离一份 Codex 的运行环境避免和系统 Python 打架。6.4 远程显示和键位相关的小毛病如果你用方案二或方案三可能会遇到分辨率、字体、键盘映射之类的体验问题。Windows 远程桌面RDP那类退出远程后分辨率变小的问题在手机浏览器方案里不常见但用 Tailscale RDP 之类组合时会出现。我一般会在被控端固定一个 1280x800 的虚拟分辨率手机横屏看刚好也不至于字体太小。终端里如果claude输出偶尔出现花屏多半是终端宽度不够导致换行错乱把终端字体调小或横屏即可。键盘方面手机自带键盘的回车键经常不是真正的 Enter蓝牙键盘或终端 App 的快捷键映射能解决 90% 的痛点。7. 我最后想分享的几点使用心得折腾这一圈下来我的选择其实是方案一 方案三并行日常快速看一眼任务进度、跑个简单命令用 Termius 的 SSH需要完整 IDE 体验、要直接在手机上改文件或者检查 diff就用 Remote Tunnels 打开 vscode.dev。方案二和方案四保留着给不同的网络环境做备选。另外有个小建议不管最终选哪套都先在家里的局域网把整套链接跑通一次再出门试公网。很多人一上来就纠结公网怎么穿透结果连局域网内都没通白白浪费时间。还有就是要养成用 tmux 的习惯Claude Code 长时间任务全靠它兜底这比任何方案本身的稳定性都重要。远程连接这件事本质上比拼的不是工具多炫而是在外面能不能随时接管自己的开发环境。希望这 4 套方案能帮你找到最适合的那一条路。